diff --git a/android/jni/main.c b/android/jni/main.c index ed3fb5d..f19d08d 100644 --- a/android/jni/main.c +++ b/android/jni/main.c @@ -278,12 +278,8 @@ void main_event () { t1 = time(NULL); if (t1 != t2) { t2 = t1; - if (gps_isrunning () > 0) { - if ((gpspos = gps_loop ())) { - drawgps_set_pos (gpspos); - } - } - } + app_loop (); + } } /** diff --git a/gtk/gtk_main_wnd.c b/gtk/gtk_main_wnd.c index 97148e8..024e977 100644 --- a/gtk/gtk_main_wnd.c +++ b/gtk/gtk_main_wnd.c @@ -107,18 +107,12 @@ static gboolean main_wnd_delete_event(GtkWidget *widget, GdkEvent *event, gpoint * callback function for the cyclic loop */ gboolean main_wnd_cyclicloop (gpointer data) { - struct gps_data *gpspos; - +// d_printf ("%s:%d main_wnd_cyclicloop", __FILE__, __LINE__); + while (gtk_events_pending()) // make sure we handle also other GTK events.. gtk_main_iteration(); - if (gps_isrunning () > 0) { - if ((gpspos = gps_loop ())) { - drawgps_set_pos (gpspos); - } - } - - draw_mouseloop (); + app_loop (); return TRUE; }; diff --git a/gui/gui.h b/gui/gui.h index bb48a18..0236ac5 100644 --- a/gui/gui.h +++ b/gui/gui.h @@ -227,6 +227,7 @@ extern void gui_search_show (); extern void gui_fav_show (); extern void gui_mainmenu_show (); extern void gui_buttons_show (); +extern char *gui_sfile_show (char *startpath); extern void gui_config_show (); extern void gpswin_show (); extern void wnd_routing_show (); diff --git a/main/gui_selectfile.c b/main/gui_selectfile.c index 8b66344..0c4042d 100644 --- a/main/gui_selectfile.c +++ b/main/gui_selectfile.c @@ -58,7 +58,7 @@ char *gui_sfile_show (char *startpath) { if (wsf_flist == NULL) wsf_flist = gui_list_new (10, 55, 200, 140); GUI_LIST_T (wsf_flist)->callback_selectitem = gui_sfile_clicklist; - GUI_LIST_T (wsf_flist)->data = wsf_flist; + GUI_LIST_T (wsf_flist)->data = wsf_list; gui_window_item_add (&wsfile, wsf_flist); gui_sfile_update (); @@ -102,7 +102,7 @@ void gui_sfile_clicklist (int nr) { if (GUI_ENTRY_T(wsf_file)->text[strlen (GUI_ENTRY_T(wsf_file)->text)-1] == DIR_SEP) snprintf (fname, LEN_FILENAME, "%s%s", GUI_ENTRY_T(wsf_file)->text, wsf_list[nr]); else - snprintf (fname, LEN_FILENAME, "%s%c%s", GUI_ENTRY_T(wsf_file)->text, DIR_SEP, wsf_file[nr]); + snprintf (fname, LEN_FILENAME, "%s%c%s", GUI_ENTRY_T(wsf_file)->text, DIR_SEP, wsf_list[nr]); gui_entry_settext (wsf_file, fname); } diff --git a/main/main.c b/main/main.c index 08b3fa8..4355333 100644 --- a/main/main.c +++ b/main/main.c @@ -36,7 +36,7 @@ int app_shutdown () { gps_stop (); route_stop (); #endif - + config_save (); map_save_all (); @@ -44,6 +44,21 @@ int app_shutdown () { }; +int app_loop () { +#ifdef SPOSMROUTE + struct gps_data *gpspos; + + if (gps_isrunning () > 0) { + if ((gpspos = gps_loop ())) { + drawgps_set_pos (gpspos); + } + } + draw_mouseloop (); +#endif + return 0; +}; + + /****************************************************************************** * update stausbar */ diff --git a/main/osmroute.h b/main/osmroute.h index 1f1fc20..491b49e 100644 --- a/main/osmroute.h +++ b/main/osmroute.h @@ -175,6 +175,7 @@ extern struct appdata app; extern int app_init (int argc, char **argv); extern int app_shutdown (); extern void app_status (char *text, int progress); +extern int app_loop (); extern void config_init (); extern void config_draw_load (char *fn); diff --git a/main/routing.c b/main/routing.c index d7a30ea..9110b77 100644 --- a/main/routing.c +++ b/main/routing.c @@ -143,7 +143,7 @@ void rtrl_addwayname (struct rtdata *r, struct rtreflist *rtrl, struct map_way * int nr; // segment number int i, n; struct rtref *ref; // pointer to reference data - static struct rtwayid _rtrl_wlist [RTRL_MAXWAYS]; // only create this once, saves time.. +// static struct rtwayid _rtrl_wlist [RTRL_MAXWAYS]; // only create this once, saves time.. int _rtrl_wlist_cnt = 0; // re-init with zero elements d_printf (" rtrl_addwayname '%s' id:%lld:%d mw->ref:%s", name, mw->id, mw->subid, mw->ref); @@ -202,7 +202,7 @@ void rtrl_addwayname (struct rtdata *r, struct rtreflist *rtrl, struct map_way * struct map_way *mwtmp = NULL; struct rtwayid fromdir[2]; /* 0.. left, 1.. right */ struct map_way *mwdir[2] = {NULL, NULL}; - int pnrdir[2] = {-1, -1}; /* pnr: where we entered the way */ +// int pnrdir[2] = {-1, -1}; /* pnr: where we entered the way */ int dir; d_printf (" found closest way nr:%d way:%lld:%d dist:%f", @@ -237,11 +237,11 @@ void rtrl_addwayname (struct rtdata *r, struct rtreflist *rtrl, struct map_way * /* found way */ if (mwdir[0] == NULL) { mwdir[0]= mwtmp1; - pnrdir[0] = mwtmp->n[i].d_pnr; +// pnrdir[0] = mwtmp->n[i].d_pnr; } else if (mwdir[1] == NULL) { mwdir[1]= mwtmp1; - pnrdir[1] = mwtmp->n[i].d_pnr; +// pnrdir[1] = mwtmp->n[i].d_pnr; } else { d_printf ("%s:%d %s: why there are three connecting referneces? ignoring way:%lld:%d", @@ -272,7 +272,7 @@ void rtrl_addwayname (struct rtdata *r, struct rtreflist *rtrl, struct map_way * if (map_way_getdistance (mwtmp1, &ref->ways[nr].pos, NULL) * 1.5 < dist) { fromdir[dir].id = mwdir[dir]->id; fromdir[dir].sid = mwdir[dir]->subid; - pnrdir[dir] = mwdir[dir]->n[i].d_pnr; +// pnrdir[dir] = mwdir[dir]->n[i].d_pnr; mwdir[dir] = mwtmp1; } else mwdir[dir] = NULL; diff --git a/sdlgl/sdl_main.c b/sdlgl/sdl_main.c index 0f2f464..cadc744 100644 --- a/sdlgl/sdl_main.c +++ b/sdlgl/sdl_main.c @@ -96,13 +96,7 @@ void test_draw () { Uint32 msdl_timercallback (Uint32 interval, void *param) { - struct gps_data *gpspos; - - if (gps_isrunning () > 0) { - if ((gpspos = gps_loop ())) { - drawgps_set_pos (gpspos); - } - } + app_loop (); d_printf ("timer %d", interval);