--- maemo-mapper-1.1-aw-2/src/maemo-mapper.c	2006-07-28 22:26:32.000000000 +0200
+++ maemo-mapper-1.1-aw-3/src/maemo-mapper.c	2006-07-29 21:14:27.000000000 +0200
@@ -148,8 +148,13 @@
 #define GCONF_KEY_RCVR_MAC GCONF_KEY_PREFIX"/receiver_mac"
 #define GCONF_KEY_RCVR_CHAN GCONF_KEY_PREFIX"/receiver_channel"
 #define GCONF_KEY_MAP_URI_FORMAT GCONF_KEY_PREFIX"/map_uri_format"
+#define GCONF_KEY_MAP_URI_FORMAT_1 GCONF_KEY_PREFIX"/map_uri_format_1"
+#define GCONF_KEY_MAP_URI_FORMAT_2 GCONF_KEY_PREFIX"/map_uri_format_2"
 #define GCONF_KEY_MAP_ZOOM_STEPS GCONF_KEY_PREFIX"/map_zoom_steps"
 #define GCONF_KEY_MAP_DIR_NAME GCONF_KEY_PREFIX"/map_cache_dir"
+#define GCONF_KEY_MAP_DIR_NAME_1 GCONF_KEY_PREFIX"/map_cache_dir_1"
+#define GCONF_KEY_MAP_DIR_NAME_2 GCONF_KEY_PREFIX"/map_cache_dir_2"
+#define GCONF_KEY_MAP_SETTING GCONF_KEY_PREFIX"/map_setting"
 #define GCONF_KEY_AUTO_DOWNLOAD GCONF_KEY_PREFIX"/auto_download"
 #define GCONF_KEY_CENTER_SENSITIVITY GCONF_KEY_PREFIX"/center_sensitivity"
 #define GCONF_KEY_ANNOUNCE_NOTICE GCONF_KEY_PREFIX"/announce_notice"
@@ -683,7 +688,12 @@
 static struct sockaddr_rc _rcvr_addr = { 0 };
 static gchar *_rcvr_mac = NULL;
 static gchar *_map_dir_name = NULL;
+static gchar *_map_dir_name_1 = NULL;
+static gchar *_map_dir_name_2 = NULL;
 static gchar *_map_uri_format = NULL;
+static gchar *_map_uri_format_1 = NULL;
+static gchar *_map_uri_format_2 = NULL;
+static guint _map_setting = 1;
 static gchar *_route_dir_uri = NULL;
 static gchar *_track_file_uri = NULL;
 static CenterMode _center_mode = CENTER_LEAD;
@@ -1727,6 +1737,12 @@
     if(_map_uri_format)
         gconf_client_set_string(gconf_client,
                 GCONF_KEY_MAP_URI_FORMAT, _map_uri_format, NULL);
+    if(_map_uri_format_1)
+        gconf_client_set_string(gconf_client,
+	    	GCONF_KEY_MAP_URI_FORMAT_1, _map_uri_format_1, NULL);
+    if(_map_uri_format_2)
+        gconf_client_set_string(gconf_client,
+	    	GCONF_KEY_MAP_URI_FORMAT_2, _map_uri_format_2, NULL);
 
     /* Save Map Download Zoom Steps. */
     gconf_client_set_int(gconf_client,
@@ -1736,7 +1752,17 @@
     if(_map_dir_name)
         gconf_client_set_string(gconf_client,
             GCONF_KEY_MAP_DIR_NAME, _map_dir_name, NULL);
+    if(_map_dir_name_1)
+        gconf_client_set_string(gconf_client,
+            GCONF_KEY_MAP_DIR_NAME_1, _map_dir_name_1, NULL);
+    if(_map_dir_name_2)
+        gconf_client_set_string(gconf_client,
+            GCONF_KEY_MAP_DIR_NAME_2, _map_dir_name_2, NULL);
 
+    /* Save setting 1/2 */
+    gconf_client_set_int(gconf_client,
+	    GCONF_KEY_MAP_SETTING, _map_setting, NULL);
+    
     /* Save Auto-Download. */
     gconf_client_set_bool(gconf_client,
             GCONF_KEY_AUTO_DOWNLOAD, _auto_download, NULL);
@@ -1887,6 +1913,7 @@
             GCONF_KEY_COLOR_ROUTE_NEXTWAY, buffer, NULL);
 
     g_object_unref(gconf_client);
+    hildon_banner_show_information(_window, NULL, "Config saved.");
 
     vprintf("%s(): return\n", __PRETTY_FUNCTION__);
 }
@@ -2269,8 +2296,10 @@
     GtkWidget *label;
     GtkWidget *txt_rcvr_mac;
     GtkWidget *num_rcvr_chan;
-    GtkWidget *txt_map_uri_format;
-    GtkWidget *txt_map_dir_name;
+    GtkWidget *txt_map_uri_format_1;
+    GtkWidget *txt_map_uri_format_2;
+    GtkWidget *txt_map_dir_name_1;
+    GtkWidget *txt_map_dir_name_2;
     GtkWidget *num_zoom_steps;
     GtkWidget *num_center_ratio;
     GtkWidget *num_lead_ratio;
@@ -2282,9 +2311,11 @@
     GtkWidget *chk_always_keep_on;
     GtkWidget *cmb_units;
     GtkWidget *btn_scan;
-    GtkWidget *btn_browse;
+    GtkWidget *btn_browse_1;
+    GtkWidget *btn_browse_2;
     GtkWidget *btn_colors;
-    BrowseInfo browse_info = {0, 0};
+    BrowseInfo browse_info_1 = {0, 0};
+    BrowseInfo browse_info_2 = {0, 0};
     ScanInfo scan_info = {0};
     gboolean rcvr_changed = FALSE;
     printf("%s()\n", __PRETTY_FUNCTION__);
@@ -2348,43 +2379,78 @@
             table = gtk_table_new(2, 3, FALSE),
             label = gtk_label_new(_("Maps")));
 
-    /* Map download URI. */
+    /* Map download URI 1. */
     gtk_table_attach(GTK_TABLE(table),
-            label = gtk_label_new(_("URI Format")),
-            0, 1, 0, 1, GTK_FILL, 0, 2, 4);
+            label = gtk_label_new(_("URI Format 1")),
+            1, 2, 0, 1, GTK_FILL, 0, 2, 4);
     gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
     gtk_table_attach(GTK_TABLE(table),
-            txt_map_uri_format = gtk_entry_new(),
-            1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+            txt_map_uri_format_1 = gtk_entry_new(),
+            2, 3, 0, 1, GTK_EXPAND | GTK_FILL, 0, 2, 4);
 
-    /* Zoom Steps. */
+    /* Map Directory 1. */
     gtk_table_attach(GTK_TABLE(table),
-            label = gtk_label_new(_("Zoom Steps")),
-            0, 1, 1, 2, GTK_FILL, 0, 2, 4);
+            label = gtk_label_new(_("Cache Dir. 1")),
+            1, 2, 1, 2, GTK_FILL, 0, 2, 4);
     gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
     gtk_table_attach(GTK_TABLE(table),
-            label = gtk_alignment_new(0.f, 0.5f, 0.f, 0.f),
-            1, 2, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4);
-    gtk_container_add(GTK_CONTAINER(label),
-            num_zoom_steps = hildon_controlbar_new());
-    hildon_controlbar_set_range(HILDON_CONTROLBAR(num_zoom_steps), 1, 4);
-    force_min_visible_bars(HILDON_CONTROLBAR(num_zoom_steps), 1);
+            hbox = gtk_hbox_new(FALSE, 4),
+            2, 3, 1, 2, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+    gtk_box_pack_start(GTK_BOX(hbox),
+            txt_map_dir_name_1 = gtk_entry_new(),
+            TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox),
+            btn_browse_1 = gtk_button_new_with_label(_("Browse...")),
+            FALSE, FALSE, 0);
 
-    /* Map Directory. */
+    /* Map download URI 2. */
     gtk_table_attach(GTK_TABLE(table),
-            label = gtk_label_new(_("Cache Dir.")),
-            0, 1, 2, 3, GTK_FILL, 0, 2, 4);
+            label = gtk_label_new(_("URI Format 2")),
+            1, 2, 2, 3, GTK_FILL, 0, 2, 4);
+    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
+    gtk_table_attach(GTK_TABLE(table),
+            txt_map_uri_format_2 = gtk_entry_new(),
+            2, 3, 2, 3, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+
+    /* Map Directory 2. */
+    gtk_table_attach(GTK_TABLE(table),
+            label = gtk_label_new(_("Cache Dir. 2")),
+            1, 2, 3, 4, GTK_FILL, 0, 2, 4);
     gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
     gtk_table_attach(GTK_TABLE(table),
             hbox = gtk_hbox_new(FALSE, 4),
-            1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+            2, 3, 3, 4, GTK_EXPAND | GTK_FILL, 0, 2, 4);
     gtk_box_pack_start(GTK_BOX(hbox),
-            txt_map_dir_name = gtk_entry_new(),
+            txt_map_dir_name_2 = gtk_entry_new(),
             TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(hbox),
-            btn_browse = gtk_button_new_with_label(_("Browse...")),
+            btn_browse_2 = gtk_button_new_with_label(_("Browse...")),
             FALSE, FALSE, 0);
 
+    /* Radio-Button 1/2*/
+    GtkWidget *radio1, *radio2, *entry;
+    radio1 = gtk_radio_button_new_with_label(NULL, "1");
+    radio2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio1), "2");
+    gtk_table_attach(GTK_TABLE(table), radio1, 0, 1, 0, 2, GTK_FILL, 0, 2, 4);
+    gtk_table_attach(GTK_TABLE(table), radio2, 0, 1, 2, 4, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+    if (_map_setting == 1)
+	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio1), TRUE);
+    else
+	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio2), TRUE);
+
+    /* Zoom Steps. */
+    gtk_table_attach(GTK_TABLE(table),
+            label = gtk_label_new(_("Zoom Steps")),
+            1, 2, 4, 5, GTK_FILL, 0, 2, 4);
+    gtk_misc_set_alignment(GTK_MISC(label), 1.f, 0.5f);
+    gtk_table_attach(GTK_TABLE(table),
+            label = gtk_alignment_new(0.f, 0.5f, 0.f, 0.f),
+            2, 3, 4, 5, GTK_EXPAND | GTK_FILL, 0, 2, 4);
+    gtk_container_add(GTK_CONTAINER(label),
+            num_zoom_steps = hildon_controlbar_new());
+    hildon_controlbar_set_range(HILDON_CONTROLBAR(num_zoom_steps), 1, 4);
+    force_min_visible_bars(HILDON_CONTROLBAR(num_zoom_steps), 1);
+
 
     /* Auto-Center page. */
     gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
@@ -2510,10 +2576,14 @@
     scan_info.txt_rcvr_mac = txt_rcvr_mac;
     g_signal_connect(G_OBJECT(btn_scan), "clicked",
                       G_CALLBACK(scan_bluetooth), &scan_info);
-    browse_info.dialog = dialog;
-    browse_info.txt_map_dir_name = txt_map_dir_name;
-    g_signal_connect(G_OBJECT(btn_browse), "clicked",
-                      G_CALLBACK(settings_dialog_browse), &browse_info);
+    browse_info_1.dialog = dialog;
+    browse_info_1.txt_map_dir_name = txt_map_dir_name_1;
+    g_signal_connect(G_OBJECT(btn_browse_1), "clicked",
+                      G_CALLBACK(settings_dialog_browse), &browse_info_1);
+    browse_info_2.dialog = dialog;
+    browse_info_2.txt_map_dir_name = txt_map_dir_name_2;
+    g_signal_connect(G_OBJECT(btn_browse_2), "clicked",
+                      G_CALLBACK(settings_dialog_browse), &browse_info_2);
     g_signal_connect(G_OBJECT(btn_colors), "clicked",
                       G_CALLBACK(settings_dialog_colors), dialog);
 
@@ -2522,11 +2592,15 @@
         gtk_entry_set_text(GTK_ENTRY(txt_rcvr_mac), _rcvr_mac);
     hildon_number_editor_set_value(HILDON_NUMBER_EDITOR(num_rcvr_chan),
             _rcvr_addr.rc_channel);
-    if(_map_uri_format)
-        gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format), _map_uri_format);
+    if(_map_uri_format_1)
+        gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format_1), _map_uri_format_1);
+    if(_map_uri_format_2)
+        gtk_entry_set_text(GTK_ENTRY(txt_map_uri_format_2), _map_uri_format_2);
     hildon_controlbar_set_value(HILDON_CONTROLBAR(num_zoom_steps), _zoom_steps);
-    if(_map_dir_name)
-        gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name), _map_dir_name);
+    if(_map_dir_name_1)
+        gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name_1), _map_dir_name_1);
+    if(_map_dir_name_2)
+        gtk_entry_set_text(GTK_ENTRY(txt_map_dir_name_2), _map_dir_name_2);
     hildon_controlbar_set_value(HILDON_CONTROLBAR(num_center_ratio),
             _center_ratio);
     hildon_controlbar_set_value(HILDON_CONTROLBAR(num_lead_ratio),
@@ -2549,13 +2623,6 @@
 
     while(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(dialog)))
     {
-        if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(
-                gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name)))))
-        {
-            popup_error(dialog, _("Could not create Map Cache directory."));
-            continue;
-        }
-
         /* Set _rcvr_mac if necessary. */
         if(!*gtk_entry_get_text(GTK_ENTRY(txt_rcvr_mac)))
         {
@@ -2594,14 +2661,68 @@
             rcvr_changed = TRUE;
         }
 
-        if(_map_uri_format)
-            g_free(_map_uri_format);
-        if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format))))
-            _map_uri_format = g_strdup(gtk_entry_get_text(
-                        GTK_ENTRY(txt_map_uri_format)));
+        if(_map_uri_format_1)
+            g_free(_map_uri_format_1);
+        if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_1))))
+            _map_uri_format_1 = g_strdup(gtk_entry_get_text(
+                        GTK_ENTRY(txt_map_uri_format_1)));
+        else
+            _map_uri_format_1 = NULL;
+
+        if(_map_uri_format_2)
+            g_free(_map_uri_format_2);
+        if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_uri_format_2))))
+            _map_uri_format_2 = g_strdup(gtk_entry_get_text(
+                        GTK_ENTRY(txt_map_uri_format_2)));
         else
-            _map_uri_format = NULL;
+            _map_uri_format_2 = NULL;
 
+        if(_map_dir_name_1)
+		g_free(_map_dir_name_1);
+	if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_1))))
+		_map_dir_name_1 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_1)));
+	else
+		_map_dir_name_1 = NULL;
+	
+        if(_map_dir_name_2)
+		g_free(_map_dir_name_2);
+	if(strlen(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_2))))
+		_map_dir_name_2 = g_strdup(gtk_entry_get_text(GTK_ENTRY(txt_map_dir_name_2)));
+	else
+		_map_dir_name_2 = NULL;
+	
+	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1)))
+	{
+		printf("setting 1\n");
+		_map_setting = 1;
+		if(strlen(_map_uri_format_1))
+			_map_uri_format = g_strdup(_map_uri_format_1);
+		else
+			_map_uri_format = NULL;
+		if(strlen(_map_dir_name_1))
+			_map_dir_name   = g_strdup(_map_dir_name_1);
+		else
+			_map_dir_name = NULL;
+		}
+	else
+	{
+		printf("setting 2\n");
+		_map_setting = 2;
+		if(strlen(_map_uri_format_2))
+			_map_uri_format = g_strdup(_map_uri_format_2);
+		else
+			_map_uri_format = NULL;
+		if(strlen(_map_dir_name_2))
+			_map_dir_name   = g_strdup(_map_dir_name_2);
+		else
+			_map_dir_name = NULL;
+	}
+	if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(_map_dir_name)))
+	{
+		popup_error(_window, "Could not create Map Cache directory.");
+		continue;
+	}
+	
         _zoom_steps = hildon_controlbar_get_value(
                 HILDON_CONTROLBAR(num_zoom_steps));
 
@@ -2680,17 +2801,35 @@
     /* Get Map Download URI Format.  Default is NULL. */
     _map_uri_format = gconf_client_get_string(gconf_client,
             GCONF_KEY_MAP_URI_FORMAT, NULL);
-
-    /* Get Map Download Zoom Steps.  Default is 2. */
-    _zoom_steps = gconf_client_get_int(gconf_client,
-            GCONF_KEY_MAP_ZOOM_STEPS, NULL);
-    if(!_zoom_steps)
-        _zoom_steps = 2;
+    _map_uri_format_1 = gconf_client_get_string(gconf_client,
+            GCONF_KEY_MAP_URI_FORMAT_1, NULL);
+    _map_uri_format_2 = gconf_client_get_string(gconf_client,
+            GCONF_KEY_MAP_URI_FORMAT_2, NULL);
+
+    /* Get Map Cache Directories. */
+    _map_dir_name_1 = gconf_client_get_string(gconf_client, GCONF_KEY_MAP_DIR_NAME_1, NULL);
+    _map_dir_name_2 = gconf_client_get_string(gconf_client, GCONF_KEY_MAP_DIR_NAME_2, NULL);
+
+    /* Get Map setting 1/2 */
+    _map_setting = gconf_client_get_int(gconf_client,
+		    GCONF_KEY_MAP_SETTING, NULL);
+    if (_map_setting < 1)
+	    _map_setting = 1;
+    if (_map_setting > 2)
+	    _map_setting = 2;
 
     /* Get Map Cache Directory.  Default is "~/apps/maemo-mapper". */
     {
-        gchar *tmp = gconf_client_get_string(gconf_client,
-                GCONF_KEY_MAP_DIR_NAME, NULL);
+        gchar *tmp;
+	if (_map_setting == 1) {
+		tmp = g_strdup(_map_dir_name_1);
+		_map_uri_format=g_strdup(_map_uri_format_1);
+	}
+	else
+       	{
+		tmp = g_strdup(_map_dir_name_2);
+		_map_uri_format=g_strdup(_map_uri_format_2);
+	}
         if(!tmp)
             tmp = g_strdup("~/apps/maemo-mapper");
         if(!config_set_map_dir_name(gnome_vfs_expand_initial_tilde(tmp)))
@@ -2703,6 +2842,12 @@
         g_free(tmp);
     }
 
+    /* Get Map Download Zoom Steps.  Default is 2. */
+    _zoom_steps = gconf_client_get_int(gconf_client,
+            GCONF_KEY_MAP_ZOOM_STEPS, NULL);
+    if(!_zoom_steps)
+        _zoom_steps = 2;
+
     /* Get Auto-Download.  Default is FALSE. */
     _auto_download = gconf_client_get_bool(gconf_client,
             GCONF_KEY_AUTO_DOWNLOAD, NULL);
@@ -3393,6 +3538,7 @@
 map_convert_coords_to_quadtree_string(int x, int y, int zoomlevel,gchar *buffer)
 {
     static const gchar *const quadrant = "qrts";
+    vprintf("%s()\n", __PRETTY_FUNCTION__);
     gchar *ptr = buffer;
     int n;
     *ptr++ = 't';
@@ -3403,6 +3549,7 @@
         *ptr++ = quadrant[xbit + 2 * ybit];
     }
     *ptr++ = '\0';
+    vprintf("%s(): return\n", __PRETTY_FUNCTION__);
 }
 
 /**
@@ -3414,6 +3561,7 @@
 static void
 map_construct_url(gchar *buffer, guint tilex, guint tiley, guint zoom)
 {
+    vprintf("%s()\n", __PRETTY_FUNCTION__);
     if(strstr(_map_uri_format, "%s"))
     {
         /* This is a satellite-map URI. */
@@ -3424,6 +3572,8 @@
     else
         /* This is a street-map URI. */
         sprintf(buffer, _map_uri_format, tilex, tiley, zoom);
+    printf("URI=%s\n", buffer);
+    vprintf("%s(): return\n", __PRETTY_FUNCTION__);
 }
 
 
@@ -3452,6 +3602,7 @@
         return FALSE;
     }
     sprintf(buffer, "%s/%u/%u/%u.jpg", _map_dir_name, zoom, tilex, tiley);
+    vprintf("buffer=$s\n", buffer);
     dest = gnome_vfs_uri_new(buffer);
     if(gnome_vfs_uri_exists(dest))
     {
@@ -3544,6 +3695,7 @@
             sprintf(buffer, "%s/%u/%u/%u.jpg",
                     _map_dir_name, _zoom + zoff,
                     (tilex >> zoff), (tiley >> zoff));
+	    vprintf("buffer=%s\n", buffer);
             pixbuf = gdk_pixbuf_new_from_file(buffer, &error);
             if(error)
             {

