X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=util.c;h=0cda59d4750d84d9cf407899d92da5705dc611bd;hb=HEAD;hp=63d644ad8a5d8a7375238429db9db7a72b4fafde;hpb=986209c0aa39e42b8b67ad2728327c541af63a6c;p=speedometer diff --git a/util.c b/util.c index 63d644a..0cda59d 100644 --- a/util.c +++ b/util.c @@ -16,31 +16,47 @@ along with this program. If not, see . ****/ +#include #include #include #include "util.h" #include "appdata.h" #include "callbacks.h" - -void start_gps(AppData* appdata) { +#include "ui.h" #ifdef __arm__ - // gps device - LocationGPSDevice *device; - device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL); - - g_signal_connect(device, "changed", G_CALLBACK(location_changed), appdata); - - LocationGPSDControl *control; + static LocationGPSDevice *device = NULL; + static LocationGPSDControl *control = NULL; +#endif +void start_gps() { +#ifdef __arm__ + if(!device) { + device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL); + g_signal_connect(device, "changed", G_CALLBACK(location_changed), NULL); + } control = location_gpsd_control_get_default(); - location_gpsd_control_start(control); + location_gpsd_control_request_status(control); + if(control->can_control) { + location_gpsd_control_start(control); + } #endif // __arm__ +} +void stop_gps() { +#ifdef __arm__ + control = location_gpsd_control_get_default(); + location_gpsd_control_request_status(control); + if(control->can_control) { + location_gpsd_control_stop(control); + } +#endif // __arm__ } -void stop_gps(AppData* appdata) { +/* Loads the settings from GConf + * + */ +void load_settings() { } -