]> err.no Git - mapper/blobdiff - src/mapper.c
Fix GPS settings dialog so it works.
[mapper] / src / mapper.c
index b285c0cbab5ae50c57d7180a6ab5295da0223a80..60374a704a3b8a48afa64fab2f56cd5b41d42773 100644 (file)
@@ -61,7 +61,6 @@
 #include "map.h"
 #include "route.h"
 #include "track.h"
-#include "bt.h"
 #include "ui-common.h"
 #include "db.h"
 #include "osm-db.h"
@@ -99,7 +98,6 @@ enum {
        MAPPER_INIT_START=0,
        MAPPER_INIT_MISC,
        MAPPER_INIT_CONFIG,
-       MAPPER_INIT_GPS,
        MAPPER_INIT_DB,
        MAPPER_INIT_POI,
        MAPPER_INIT_OSM,
@@ -114,6 +112,87 @@ guint mis=MAPPER_INIT_START;
 static GtkWidget *init_progress;
 static GtkWidget *init_dialog;
 
+/**
+ * Initialize arrays
+ */
+static void 
+variables_init(void)
+{
+UNITS_TEXT[UNITS_KM] = _("km");
+UNITS_TEXT[UNITS_MI] = _("mi.");
+UNITS_TEXT[UNITS_NM] = _("n.m.");
+
+INFO_FONT_TEXT[INFO_FONT_XXSMALL] = "xx-small";
+INFO_FONT_TEXT[INFO_FONT_XSMALL] = "x-small";
+INFO_FONT_TEXT[INFO_FONT_SMALL] = "small";
+INFO_FONT_TEXT[INFO_FONT_MEDIUM] = "medium";
+INFO_FONT_TEXT[INFO_FONT_LARGE] = "large";
+INFO_FONT_TEXT[INFO_FONT_XLARGE] = "x-large";
+INFO_FONT_TEXT[INFO_FONT_XXLARGE] = "xx-large";
+
+CUSTOM_KEY_GCONF[CUSTOM_KEY_UP] = GCONF_KEY_PREFIX "/key_up";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_DOWN] = GCONF_KEY_PREFIX "/key_down";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_LEFT] = GCONF_KEY_PREFIX "/key_left";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_RIGHT] = GCONF_KEY_PREFIX "/key_right";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_SELECT] = GCONF_KEY_PREFIX "/key_select";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_INCREASE] = GCONF_KEY_PREFIX "/key_increase";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_DECREASE] = GCONF_KEY_PREFIX "/key_decrease";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_FULLSCREEN] = GCONF_KEY_PREFIX "/key_fullscreen";
+CUSTOM_KEY_GCONF[CUSTOM_KEY_ESC] = GCONF_KEY_PREFIX "/key_esc";
+
+CUSTOM_KEY_ICON[CUSTOM_KEY_UP] = HWK_BUTTON_UP;
+CUSTOM_KEY_ICON[CUSTOM_KEY_LEFT] = HWK_BUTTON_LEFT;
+CUSTOM_KEY_ICON[CUSTOM_KEY_DOWN] = HWK_BUTTON_DOWN;
+CUSTOM_KEY_ICON[CUSTOM_KEY_RIGHT] = HWK_BUTTON_RIGHT;
+CUSTOM_KEY_ICON[CUSTOM_KEY_SELECT] = HWK_BUTTON_SELECT;
+CUSTOM_KEY_ICON[CUSTOM_KEY_INCREASE] = HWK_BUTTON_INCREASE;
+CUSTOM_KEY_ICON[CUSTOM_KEY_DECREASE] = HWK_BUTTON_DECREASE;
+CUSTOM_KEY_ICON[CUSTOM_KEY_FULLSCREEN] = HWK_BUTTON_VIEW;
+CUSTOM_KEY_ICON[CUSTOM_KEY_ESC] = HWK_BUTTON_CANCEL;
+
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_UP] = CUSTOM_ACTION_PAN_NORTH;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_LEFT] = CUSTOM_ACTION_PAN_WEST;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_DOWN] = CUSTOM_ACTION_PAN_SOUTH;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_RIGHT] = CUSTOM_ACTION_PAN_EAST;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_SELECT] = CUSTOM_ACTION_TOGGLE_AUTOCENTER;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_INCREASE] = CUSTOM_ACTION_ZOOM_IN;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_DECREASE] = CUSTOM_ACTION_ZOOM_OUT;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_FULLSCREEN] = CUSTOM_ACTION_TOGGLE_FULLSCREEN;
+CUSTOM_KEY_DEFAULT[CUSTOM_KEY_ESC] = CUSTOM_ACTION_TOGGLE_TRACKS;
+
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_PAN_NORTH] = _("Pan North");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_PAN_WEST] = _("Pan West");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_PAN_SOUTH] = _("Pan South");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_PAN_EAST] = _("Pan East");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_AUTOCENTER] = _("Toggle Auto-Center");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_FULLSCREEN] = _("Toggle Fullscreen");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_ZOOM_IN] = _("Zoom In");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_ZOOM_OUT] = _("Zoom Out");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_TRACKS] = _("Toggle Tracks");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_SCALE] = _("Toggle Scale");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_POI] = _("Toggle POIs");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_CHANGE_REPO] = _("Select Next Repository");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_ROUTE_DISTNEXT] = _("Show Distance to Next Waypoint");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_ROUTE_DISTLAST] = _("Show Distance to End of Route");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TRACK_BREAK] = _("Insert Track Break");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TRACK_DISTLAST] = _("Show Distance from Last Break");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TRACK_DISTFIRST] = _("Show Distance from Beginning");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_GPS] = _("Toggle GPS");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_GPSINFO] = _("Toggle GPS Info");
+CUSTOM_ACTION_TEXT[CUSTOM_ACTION_TOGGLE_SPEEDLIMIT] = _("Toggle Speed Limit");
+
+COLORABLE_GCONF[COLORABLE_MARK] = GCONF_KEY_PREFIX "/color_mark";
+COLORABLE_GCONF[COLORABLE_MARK_VELOCITY] = GCONF_KEY_PREFIX "/color_mark_velocity";
+COLORABLE_GCONF[COLORABLE_MARK_OLD] = GCONF_KEY_PREFIX "/color_mark_old";
+COLORABLE_GCONF[COLORABLE_TRACK] = GCONF_KEY_PREFIX "/color_track";
+COLORABLE_GCONF[COLORABLE_TRACK_MARK] = GCONF_KEY_PREFIX "/color_track_mark";
+COLORABLE_GCONF[COLORABLE_TRACK_BREAK] = GCONF_KEY_PREFIX "/color_track_break";
+COLORABLE_GCONF[COLORABLE_ROUTE] = GCONF_KEY_PREFIX "/color_route";
+COLORABLE_GCONF[COLORABLE_ROUTE_WAY] = GCONF_KEY_PREFIX "/color_route_way";
+COLORABLE_GCONF[COLORABLE_ROUTE_BREAK] = GCONF_KEY_PREFIX "/color_route_break";
+COLORABLE_GCONF[COLORABLE_POI] = GCONF_KEY_PREFIX "/color_poi";
+}
+
 /**
  * Save state and destroy all non-UI elements created by this program in
  * preparation for exiting.
@@ -123,11 +202,13 @@ mapper_destroy(void)
 {
 config_save();
 config_save_repo();
-rcvr_disconnect();
 map_download_deinit();
+map_poi_deinit();
 #if defined (WITH_GST) && defined (WITH_ESPEAK)
 speak_deinit();
 #endif
+gps_disconnect(_gps);
+gps_free(_gps);
 osm_deinit();
 db_close(&_db);
 track_deinit();
@@ -201,9 +282,11 @@ gchar *w="Starting";
 
 switch (mis) {
        case MAPPER_INIT_START:
-               _conn_state = RCVR_OFF;
                curl_global_init(CURL_GLOBAL_NOTHING);
                gnome_vfs_init();
+               /* XXX: Load GPS configuration, then create gps */
+               _gps=gps_new(GPS_IO_SIMULATION);
+               _gps->connection_retry=gps_retry_connection;
                timezone_init();
                gpx_init();
                variables_init();
@@ -217,16 +300,10 @@ switch (mis) {
        case MAPPER_INIT_CONFIG:
                config_init();
                map_download_init();
-               mis=MAPPER_INIT_GPS;
+               mis=MAPPER_INIT_DB;
                p=0.2;
                w="Config";
        break;
-       case MAPPER_INIT_GPS:
-               gps_init();
-               mis=MAPPER_INIT_DB;
-               p=0.3;
-               w="GPS";
-       break;
        case MAPPER_INIT_DB:
                if (db_connect(&_db, _mapper_db)) {
                        mis=MAPPER_INIT_POI;
@@ -263,6 +340,7 @@ switch (mis) {
                /* Initialize D-Bus system connection. */
                if (NULL == (dbus_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error))) {
                        g_printerr("Failed to open connection to D-Bus: %s.\n", error->message);
+                       popup_error(_window, "Failed to connect to D-Bus.");
                        error = NULL;
                }
 
@@ -271,12 +349,6 @@ switch (mis) {
                osso_hw_set_event_cb(_osso, NULL, osso_cb_hw_state, NULL);
                #endif
 
-               #ifdef WITH_HILDON_DBUS_BT
-               if (NULL == (_rfcomm_req_proxy = dbus_g_proxy_new_for_name(dbus_conn, BTCOND_SERVICE, BTCOND_REQ_PATH, BTCOND_REQ_INTERFACE))) {
-                       g_printerr("Failed to open connection to %s.\n", BTCOND_REQ_INTERFACE);
-                       popup_error(_window, "Bluetooth connection handling failed.");
-               }
-               #endif
                mis=MAPPER_INIT_UI;
                p=0.9;
                w="Misc";
@@ -298,6 +370,8 @@ switch (mis) {
        break;
        case MAPPER_INIT_DONE:
                progress_dialog_remove(init_dialog);
+               if (_enable_gps)   
+                       gps_connect_now(_gps);
                return FALSE;
        break;
 }