}
gboolean
-config_save_home(void)
+config_load_position(Position *pos, const gchar *key)
{
g_assert(gconf_client);
-/* Save home lat/lon. */
-gconf_client_set_float(gconf_client, GCONF_KEY_HOME_LAT, _home.lat, NULL);
-gconf_client_set_float(gconf_client, GCONF_KEY_HOME_LON, _home.lon, NULL);
+pos->valid=gconf_client_get_pair(gconf_client, key, GCONF_VALUE_FLOAT, GCONF_VALUE_FLOAT, &pos->lat, &pos->lon, NULL);
+if (!pos->valid) {
+ pos->lat=NAN;
+ pos->lon=NAN;
+} else if (pos->lat==NAN || pos->lon==NAN)
+ pos->valid=FALSE;
+return pos->valid;
+}
-gconf_client_suggest_sync(gconf_client, NULL);
-return TRUE;
+gboolean
+config_save_position(Position *pos, const gchar *key)
+{
+g_assert(gconf_client);
+
+return gconf_client_set_pair(gconf_client, key, GCONF_VALUE_FLOAT, GCONF_VALUE_FLOAT, &pos->lat, &pos->lon, NULL);
}
gboolean
_gps->data.lat=mapper_gconf_get_float(GCONF_KEY_LAT, 60.20);
_gps->data.lon=mapper_gconf_get_float(GCONF_KEY_LON, 22.20);
-/* Home */
-_home.valid=TRUE;
-value = gconf_client_get(gconf_client, GCONF_KEY_HOME_LAT, NULL);
-if (value) {
- _home.lat = gconf_value_get_float(value);
- gconf_value_free(value);
-} else {
- _home.valid=FALSE;
-}
-
-value = gconf_client_get(gconf_client, GCONF_KEY_HOME_LON, NULL);
-if (value) {
- _home.lon = gconf_value_get_float(value);
- gconf_value_free(value);
-} else {
- _home.valid=FALSE;
-}
-
-/* Turku is default */
-if (_home.valid==FALSE) {
- _home.lat=64.20;
- _home.lon=22.20;
- _home.valid=TRUE;
-}
+/* Special positions Home and Dest */
+config_load_position(&_home, GCONF_KEY_POSITION_HOME);
+config_load_position(&_dest, GCONF_KEY_POSITION_DEST);
/* Get last center point. */
{
#include "filter.h"
#include "mapper-types.h"
#include "map-repo.h"
+#include "path.h"
GConfClient *gconf_client;
void config_init(void);
+gboolean config_save(void);
+
gboolean config_save_repo(void);
gboolean config_load_repo(void);
RepoData *config_parse_repo(gchar *str);
-gboolean config_save_home(void);
-gboolean config_save(void);
-void config_update_proxy(void);
-gboolean config_load_string_list(const gchar *gconf_key, GSList **list, GtkListStore **model);
+gboolean config_load_position(Position *pos, const gchar *key);
+gboolean config_save_position(Position *pos, const gchar *key);
+
gboolean config_save_filter(GpsTrackFilter *f);
+gboolean config_load_string_list(const gchar *gconf_key, GSList **list, GtkListStore **model);
+
+void config_update_proxy(void);
+
#endif