]> git.itanic.dy.fi Git - maemo-mapper/blobdiff - src/cmenu.c
Added AGPS set/override, and fixed seg fault in Add POI.
[maemo-mapper] / src / cmenu.c
index 46b5ccd9f3ec6f92c6039a1a1441098e334bed33..1c5612def3474d62bf4f9b0fcd7e80cbefed50ca 100644 (file)
@@ -30,6 +30,7 @@
 #include <string.h>
 #include <math.h>
 #include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
 
 #ifndef LEGACY
 #    include <hildon/hildon-note.h>
 #include "poi.h"
 #include "util.h"
 
+#define GCONF_SUPL_KEY_PREFIX "/system/osso/supl"
+#define GCONF_KEY_SUPL_LAT GCONF_SUPL_KEY_PREFIX"/pos_latitude"
+#define GCONF_KEY_SUPL_LON GCONF_SUPL_KEY_PREFIX"/pos_longitude"
+#define GCONF_KEY_SUPL_TIME GCONF_SUPL_KEY_PREFIX"/pos_timestamp"
 
 static void
 cmenu_show_latlon(gint unitx, gint unity)
@@ -259,6 +264,16 @@ cmenu_cb_loc_set_gps(GtkMenuItem *item)
     /* Move mark to new location. */
     map_refresh_mark(_center_mode > 0);
 
+    GConfClient *gconf_client = gconf_client_get_default();
+    GTimeVal curtime;
+
+    gconf_client_set_float(gconf_client, GCONF_KEY_SUPL_LON, _gps.lon, NULL);
+    gconf_client_set_float(gconf_client, GCONF_KEY_SUPL_LAT, _gps.lat, NULL);
+    g_get_current_time(&curtime);
+    gconf_client_set_float(gconf_client, GCONF_KEY_SUPL_TIME, curtime.tv_sec, NULL);
+
+    g_object_unref(gconf_client);
+
     vprintf("%s(): return TRUE\n", __PRETTY_FUNCTION__);
     return TRUE;
 }