]> err.no Git - mapper/blobdiff - src/config-gconf.c
Remove old map sources
[mapper] / src / config-gconf.c
index cfd804cf1d1ac3a87a24779df5f5c1f4e7484992..5739f9f15327ab33d2fde88c9bbff8bf8b529446 100644 (file)
 #include "utils.h"
 #include "mapper-types.h"
 #include "latlon.h"
-#include "map.h"
 #include "route.h"
 #include "db.h"
 #include "poi.h"
 #include "gps.h"
 #include "ui-common.h"
 #include "settings.h"
-#include "gpx.h"
 #include "filter.h"
 #include "dialogs.h"
+#include "map-tile-repo.h"
 
 #define PROXY_PORT (8080)
 
@@ -117,67 +116,15 @@ g_slist_free(temp_list);
 return TRUE;
 }
 
-RepoData *
-config_parse_repo(gchar * str)
-{
-       /* Parse each part of a repo, delimited by newline characters:
-        * 1. name
-        * 2. url
-        * 3. cache_dir
-        * 4. dl_zoom_steps
-        * 5. view_zoom_steps
-        */
-gchar *token, *error_check;
-
-RepoData *rd = g_new0(RepoData, 1);
-
-/* Parse name. */
-token = strsep(&str, "\n\t");
-if (token)
-       rd->name = g_strdup(token);
-
-/* Parse URL format. */
-token = strsep(&str, "\n\t");
-if (token)
-       rd->url = g_strdup(token);
-
-/* Parse cache dir. */
-token = strsep(&str, "\n\t");
-if (token)
-       rd->cache_dir = gnome_vfs_expand_initial_tilde(token);
-
-/* Parse download zoom steps. */
-token = strsep(&str, "\n\t");
-if (!token || !*token || !(rd->dl_zoom_steps = atoi(token)))
-       rd->dl_zoom_steps = 2;
-
-/* Parse view zoom steps. */
-token = strsep(&str, "\n\t");
-if (!token || !*token || !(rd->view_zoom_steps = atoi(token)))
-       rd->view_zoom_steps = 1;
-
-/* Parse double-size. */
-token = strsep(&str, "\n\t");
-if (token)
-       rd->double_size = atoi(token);  /* Default is zero (FALSE) */
-
-/* Parse next-able. */
-token = strsep(&str, "\n\t");
-if (!token || !*token
-    || (rd->nextable = strtol(token, &error_check, 10), token == str))
-               rd->nextable = TRUE;
-
-set_repo_type(rd);
-return rd;
-}
-
 static void
 config_default_repo(void)
 {
+RepoData *repo;
+
 g_assert(gconf_client);
 
 /* We have no repositories - create a default one. */
-RepoData *repo = g_new(RepoData, 1);
+repo=map_tile_repo_new();
 
 /* Get Map Cache Dir.  Default is REPO_DEFAULT_CACHE_DIR. */
 repo->cache_dir = gconf_client_get_string(gconf_client, GCONF_KEY_MAP_DIR_NAME, NULL);
@@ -199,9 +146,9 @@ repo->name = g_strdup(REPO_DEFAULT_NAME);
 repo->view_zoom_steps = REPO_DEFAULT_VIEW_ZOOM_STEPS;
 repo->double_size = FALSE;
 repo->nextable = TRUE;
-set_repo_type(repo);
+map_tile_repo_set_type(repo);
 
-_repo_list = g_list_append(_repo_list, repo);
+_repo_list=g_list_append(_repo_list, repo);
 repo_set_curr(repo);
 }
 
@@ -216,7 +163,7 @@ curr_repo_index = gconf_client_get_int(gconf_client, GCONF_KEY_CURRREPO, NULL);
 list = gconf_client_get_list(gconf_client, GCONF_KEY_REPOSITORIES, GCONF_VALUE_STRING, NULL);
 
 for (curr = list; curr != NULL; curr = curr->next) {
-       RepoData *rd = config_parse_repo(curr->data);
+       RepoData *rd = map_tile_repo_new_from_string(curr->data);
        _repo_list = g_list_append(_repo_list, rd);
        if (!curr_repo_index--)
                repo_set_curr(rd);
@@ -224,23 +171,32 @@ for (curr = list; curr != NULL; curr = curr->next) {
 }
 g_slist_free(list);
 
-if (_repo_list == NULL)
+if (_repo_list==NULL)
        config_default_repo();
 
 return TRUE;
 }
 
 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
@@ -301,6 +257,11 @@ gconf_client_set_int(gconf_client, GCONF_KEY_DRAW_WIDTH, _draw_width, NULL);
 /* Save Announce Advance Notice Ratio. */
 gconf_client_set_int(gconf_client, GCONF_KEY_ANNOUNCE_NOTICE, _announce_notice_ratio, NULL);
 
+/* Set announcement flags */
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_WAYPOINTS, _announce_waypoints, NULL);
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_OVERSPEED, _announce_overspeed, NULL);
+gconf_client_set_bool(gconf_client, GCONF_KEY_ANNOUNCE_DESTINATION, _announce_destination, NULL);
+
 /* Save Enable Voice flag. */
 gconf_client_set_bool(gconf_client, GCONF_KEY_ENABLE_VOICE, _enable_voice, NULL);
 
@@ -331,7 +292,6 @@ gconf_client_set_float(gconf_client, GCONF_KEY_LAT, _gps->data.lat, NULL);
 gconf_client_set_float(gconf_client, GCONF_KEY_LON, _gps->data.lon, NULL);
 
 /* Save last center latitude/longitude. */
-unit2latlon(_center.unitx, _center.unity, center_lat, center_lon);
 gconf_client_set_float(gconf_client, GCONF_KEY_CENTER_LAT, center_lat, NULL);
 gconf_client_set_float(gconf_client, GCONF_KEY_CENTER_LON, center_lon, NULL);
 
@@ -429,7 +389,7 @@ GConfValue *value;
 gchar *config_dir;
 gchar *str;
 gint i;
-CenterMode _center_mode = CENTER_LEAD;
+GtkMapCenterMode _center_mode = CENTER_LEAD;
 UnitType _units = UNITS_KM;
 guint _degformat = DDPDDDDD;
 InfoFontSize _info_font_size = INFO_FONT_MEDIUM;
@@ -460,18 +420,22 @@ _lead_ratio=mapper_gconf_get_int(GCONF_KEY_LEAD_AMOUNT, 5);
 _draw_width=mapper_gconf_get_int(GCONF_KEY_DRAW_WIDTH, 4);
 
 /* Invalidate destination */
-_dest.valid=FALSE;
+_dest->valid=FALSE;
 
 /* Get Announce Advance Notice - Default is 30. */
 _announce_notice_ratio=mapper_gconf_get_int(GCONF_KEY_ANNOUNCE_NOTICE, 8);
 
+_announce_waypoints=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_WAYPOINTS, TRUE);
+_announce_overspeed=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_OVERSPEED, FALSE);
+_announce_destination=mapper_gconf_get_boolean(GCONF_KEY_ANNOUNCE_DESTINATION, FALSE);
+
 /* Get Enable Voice flag.  Default is TRUE. */
 _enable_voice=mapper_gconf_get_boolean(GCONF_KEY_ENABLE_VOICE, TRUE);
 _voice_pitch=mapper_gconf_get_bound_int(GCONF_KEY_VOICE_PITCH, 50, 10, 99);
 _voice_speed=mapper_gconf_get_bound_int(GCONF_KEY_VOICE_SPEED, 120, 80, 370);
 
 /* Get Always Keep On flag.  Default is FALSE. */
-_always_keep_on =mapper_gconf_get_boolean(GCONF_KEY_ALWAYS_KEEP_ON, FALSE);
+_always_keep_on=mapper_gconf_get_boolean(GCONF_KEY_ALWAYS_KEEP_ON, FALSE);
 
 filter.enabled = gconf_client_get_bool(gconf_client, GCONF_KEY_GPS_FILTER, NULL);
 filter.hdop = gconf_client_get_float(gconf_client, GCONF_KEY_GPS_FILTER_HDOP, NULL);
@@ -548,30 +512,9 @@ _auto_download=mapper_gconf_get_boolean(GCONF_KEY_AUTO_DOWNLOAD, FALSE);
 _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. */
 {
@@ -594,8 +537,6 @@ if (_home.valid==FALSE) {
        } else {
                center_lon = _gps->data.lon;
        }
-
-       latlon2unit(center_lat, center_lon, _center.unitx, _center.unity);
 }
 
 config_load_repo();
@@ -603,13 +544,12 @@ config_load_repo();
 /* Get last Zoom Level.  Default is 12. */
 value = gconf_client_get(gconf_client, GCONF_KEY_ZOOM, NULL);
 if (value) {
-       _zoom = gconf_value_get_int(value) / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
+       _zoom=gconf_value_get_int(value) / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
        gconf_value_free(value);
 } else {
-       _zoom = 12 / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
+       _zoom=12 / _curr_repo->view_zoom_steps * _curr_repo->view_zoom_steps;
 }
-BOUND(_zoom, 0, MAX_ZOOM - 1);
-_world_size_tiles = unit2tile(WORLD_SIZE_UNITS);
+BOUND(_zoom, 0, 20);
 
 /* Get Route Directory.  Default is NULL. */
 _route_dir_uri = gconf_client_get_string(gconf_client, GCONF_KEY_ROUTEDIR, NULL);