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() {
}
-