summaryrefslogtreecommitdiff
path: root/navit
diff options
context:
space:
mode:
authorsingesang <singesang@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-01-21 22:24:45 +0000
committersingesang <singesang@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-01-21 22:24:45 +0000
commit77e1c344764c61eafa08c935937324fa31787854 (patch)
treec2678b75a05fac491e9b3c18a539d78bf2fef631 /navit
parentc673800111d45fc36a3f4565d27302a00fbbca8f (diff)
downloadnavit-77e1c344764c61eafa08c935937324fa31787854.tar.gz
Add:Core: Function to toggle the navigation announcer
Add:OSD: Element to toggle navigation announcer git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1960 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit')
-rw-r--r--navit/navit.c26
-rw-r--r--navit/navit.h1
-rw-r--r--navit/osd/core/osd_core.c202
-rw-r--r--navit/xpm/Makefile.am4
-rw-r--r--navit/xpm/gui_sound_32.xpm204
-rw-r--r--navit/xpm/gui_sound_off.svg771
-rw-r--r--navit/xpm/gui_sound_off_32.xpm198
7 files changed, 1336 insertions, 70 deletions
diff --git a/navit/navit.c b/navit/navit.c
index 2de6d7483..7a8f79e0a 100644
--- a/navit/navit.c
+++ b/navit/navit.c
@@ -584,6 +584,7 @@ navit_new(struct attr *parent, struct attr **attrs)
navit_command_register(this_, "zoom_in", callback_new_3(callback_cast(navit_zoom_in), this_, (void *)2, NULL));
navit_command_register(this_, "zoom_out", callback_new_3(callback_cast(navit_zoom_out), this_, (void *)2, NULL));
navit_command_register(this_, "navit_set_attr", callback_new_1(callback_cast(navit_set_attr_cmd), this_));
+ navit_command_register(this_, "navit_announcer_toggle", callback_new_1(callback_cast(navit_announcer_toggle), this_));
return this_;
}
@@ -997,6 +998,22 @@ navit_say(struct navit *this_, char *text)
}
void
+navit_announcer_toggle(struct navit *this_)
+{
+ struct attr attr, speechattr;
+ if(!navit_get_attr(this_, attr_speech, &speechattr, NULL))
+ return;
+ if(!speech_get_attr(speechattr.u.speech, attr_active, &attr, NULL))
+ return;
+
+ attr.u.num = !attr.u.num;
+
+ if(!speech_set_attr(speechattr.u.speech, &attr))
+ return;
+ callback_list_call_attr_0(this_->attr_cbl, attr_speech);
+}
+
+void
navit_speak(struct navit *this_)
{
struct navigation *nav=this_->navigation;
@@ -1401,6 +1418,12 @@ navit_set_attr(struct navit *this_, struct attr *attr)
attr_updated=1;
}
break;
+ case attr_speech:
+ if(this_->speech && this_->speech != attr->u.speech) {
+ attr_updated=1;
+ this_->speech = attr->u.speech;
+ }
+ break;
case attr_tracking:
if (this_->tracking_flag != !!attr->u.num) {
this_->tracking_flag=!!attr->u.num;
@@ -1514,6 +1537,9 @@ navit_get_attr(struct navit *this_, enum attr_type type, struct attr *attr, stru
case attr_route:
attr->u.route=this_->route;
break;
+ case attr_speech:
+ attr->u.speech=this_->speech;
+ break;
case attr_tracking:
attr->u.num=this_->tracking_flag;
break;
diff --git a/navit/navit.h b/navit/navit.h
index fa96c0e57..10e7e4796 100644
--- a/navit/navit.h
+++ b/navit/navit.h
@@ -67,6 +67,7 @@ void navit_add_bookmark(struct navit *this_, struct pcoord *c, const char *descr
void navit_say(struct navit *this_, char *text);
int navit_speech_estimate(struct navit *this_, char *str);
void navit_speak(struct navit *this_);
+void navit_announcer_toggle(struct navit *this_);
void navit_window_roadbook_destroy(struct navit *this_);
void navit_window_roadbook_new(struct navit *this_);
struct navit_window_items *navit_window_items_new(const char *name, int distance);
diff --git a/navit/osd/core/osd_core.c b/navit/osd/core/osd_core.c
index 1705f9104..ce9fed85c 100644
--- a/navit/osd/core/osd_core.c
+++ b/navit/osd/core/osd_core.c
@@ -319,11 +319,7 @@ osd_compass_init(struct compass *this, struct navit *nav)
graphics_gc_set_foreground(this->green, &c);
graphics_gc_set_linewidth(this->green, 2);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_compass_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_compass_draw), attr_position_coord_geo, this));
osd_compass_draw(this, nav, NULL);
}
@@ -339,10 +335,7 @@ osd_compass_new(struct navit *nav, struct osd_methods *meth,
this->osd_item.h = 80;
this->osd_item.font_size = 200;
osd_set_std_attr(attrs, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_compass_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_compass_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -469,10 +462,7 @@ osd_eta_init(struct osd_eta *this, struct navit *nav)
{
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast(osd_eta_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_eta_draw), attr_position_coord_geo, this));
osd_eta_draw(this, nav, NULL);
}
@@ -499,9 +489,7 @@ osd_eta_new(struct navit *nav, struct osd_methods *meth,
else
this->test_text = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast(osd_eta_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_eta_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -629,10 +617,7 @@ osd_speed_new(struct navit *nav, struct osd_methods *meth,
else
this->test_text = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_speed_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_speed_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -748,10 +733,7 @@ osd_sats_new(struct navit *nav, struct osd_methods *meth,
else
this->test_text = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_sats_init), attr_navit,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_sats_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -862,11 +844,7 @@ osd_nav_distance_to_target_init(struct osd_nav_distance_to_target *this,
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_distance_to_target_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_distance_to_target_draw), attr_position_coord_geo, this));
osd_nav_distance_to_target_draw(this, nav, NULL);
@@ -895,10 +873,7 @@ osd_nav_distance_to_target_new(struct navit *nav, struct osd_methods *meth,
else
this->test_text = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_distance_to_target_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_distance_to_target_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -1002,11 +977,7 @@ osd_nav_distance_to_next_init(struct osd_nav_distance_to_next *this,
struct navit *nav)
{
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_distance_to_next_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast (osd_nav_distance_to_next_draw), attr_position_coord_geo, this));
osd_nav_distance_to_next_draw(this, nav, NULL);
}
@@ -1032,10 +1003,7 @@ osd_nav_distance_to_next_new(struct navit *nav, struct osd_methods *meth,
else
this->test_text = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_distance_to_next_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_distance_to_next_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -1143,11 +1111,7 @@ static void
osd_street_name_init(struct osd_street_name *this, struct navit *nav)
{
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_street_name_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_street_name_draw), attr_position_coord_geo, this));
osd_street_name_draw(this, nav, NULL);
}
@@ -1173,10 +1137,7 @@ osd_street_name_new(struct navit *nav, struct osd_methods *meth,
this->active = -1;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_street_name_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_street_name_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -1357,11 +1318,7 @@ static void
osd_nav_next_turn_init(struct nav_next_turn *this, struct navit *nav)
{
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_next_turn_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_next_turn_draw), attr_position_coord_geo, this));
osd_nav_next_turn_draw(this, nav, NULL);
}
@@ -1404,10 +1361,7 @@ osd_nav_next_turn_new(struct navit *nav, struct osd_methods *meth,
g_strjoin(NULL, getenv("NAVIT_SHAREDIR"),
"/xpm/%s_32.xpm", NULL);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_next_turn_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_next_turn_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -1512,11 +1466,7 @@ osd_nav_next_street_name_init(struct nav_next_street_name *this,
{
osd_set_std_graphic(nav, &this->osd_item);
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_next_street_name_draw),
- attr_position_coord_geo,
- this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_next_street_name_draw), attr_position_coord_geo, this));
osd_nav_next_street_name_draw(this, nav);
}
@@ -1545,10 +1495,123 @@ osd_nav_next_street_name_new(struct navit *nav, struct osd_methods *meth,
this->active = -1;
this->last_street_name = NULL;
- navit_add_callback(nav,
- callback_new_attr_1(callback_cast
- (osd_nav_next_street_name_init),
- attr_navit, this));
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_next_street_name_init), attr_navit, this));
+ return (struct osd_priv *) this;
+}
+
+struct nav_toggle_announcer
+{
+ int w,h;
+ struct callback *navit_init_cb;
+ struct osd_item item;
+ char *icon_src;
+ int icon_h, icon_w, active, last_state;
+};
+
+static void
+osd_nav_toggle_announcer_draw(struct nav_toggle_announcer *this, struct navit *navit, struct vehicle *v)
+{
+ struct point p;
+ int do_draw = 0;
+ struct graphics_image *gr_image;
+ char *path;
+ char *gui_sound_off = "gui_sound_off";
+ char *gui_sound_on = "gui_sound";
+ struct attr attr, speechattr;
+
+ if (this->last_state == -1)
+ {
+ if (!navit_get_attr(navit, attr_speech, &speechattr, NULL))
+ if (!speech_get_attr(speechattr.u.speech, attr_active, &attr, NULL))
+ attr.u.num = 1;
+ this->active = attr.u.num;
+ }
+ this->active = !this->active;
+
+ if(this->active != this->last_state)
+ {
+ this->last_state = this->active;
+ do_draw = 1;
+ }
+
+ if (do_draw)
+ {
+ graphics_draw_mode(this->item.gr, draw_mode_begin);
+ p.x = 0;
+ p.y = 0;
+ graphics_draw_rectangle(this->item.gr, this->item.graphic_bg, &p, this->item.w, this->item.h);
+
+ if (this->active)
+ path = g_strdup_printf(this->icon_src, gui_sound_on);
+ else
+ path = g_strdup_printf(this->icon_src, gui_sound_off);
+
+ gr_image = graphics_image_new_scaled(this->item.gr, path, this->icon_w, this->icon_h);
+ if (!gr_image)
+ {
+ g_free(path);
+ path = g_strjoin(NULL, getenv("NAVIT_SHAREDIR"), "/xpm/unknown.xpm", NULL);
+ gr_image = graphics_image_new_scaled(this->item.gr, path, this->icon_w, this->icon_h);
+ }
+
+ dbg(1, "gr_image=%p\n", gr_image);
+
+ if (gr_image)
+ {
+ p.x = (this->item.w - gr_image->width) / 2;
+ p.y = (this->item.h - gr_image->height) / 2;
+ graphics_draw_image(this->item.gr, this->item.graphic_fg_white, &p, gr_image);
+ graphics_image_free(this->item.gr, gr_image);
+ }
+
+ g_free(path);
+ graphics_draw_mode(this->item.gr, draw_mode_end);
+ }
+}
+
+static void
+osd_nav_toggle_announcer_init(struct nav_toggle_announcer *this, struct navit *nav)
+{
+ osd_set_std_graphic(nav, &this->item);
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_toggle_announcer_draw), attr_speech, this));
+ navit_add_callback(nav, this->navit_init_cb = callback_new_attr_1(callback_cast(osd_std_click), attr_button, &this->item));
+ osd_nav_toggle_announcer_draw(this, nav, NULL);
+}
+
+static struct osd_priv *
+osd_nav_toggle_announcer_new(struct navit *nav, struct osd_methods *meth, struct attr **attrs)
+{
+ struct nav_toggle_announcer *this = g_new0(struct nav_toggle_announcer, 1);
+ struct attr *attr;
+ char *command = "navit_announcer_toggle";
+
+ this->item.w = 48;
+ this->item.h = 48;
+ this->item.p.x = -64;
+ this->item.p.y = 76;
+
+ osd_set_std_attr(attrs, &this->item);
+
+ this->icon_w = -1;
+ this->icon_h = -1;
+ this->last_state = -1;
+
+ attr = attr_search(attrs, NULL, attr_icon_src);
+ if (attr) {
+ struct file_wordexp *we;
+ char **array;
+ we = file_wordexp_new(attr->u.str);
+ array = file_wordexp_get_array(we);
+ this->icon_src = g_strdup(array[0]);
+ file_wordexp_destroy(we);
+ } else
+ this->icon_src =
+ g_strjoin(NULL, getenv("NAVIT_SHAREDIR"),
+ "/xpm/%s_32.xpm", NULL);
+
+ this->item.command = g_strdup(command);
+
+ navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_nav_toggle_announcer_init), attr_navit, this));
return (struct osd_priv *) this;
}
@@ -1569,6 +1632,7 @@ plugin_init(void)
plugin_register_osd_type("button", osd_button_new);
plugin_register_osd_type("vehicle_gps_satnum", osd_sats_new);
plugin_register_osd_type("vehicle_speed", osd_speed_new);
+ plugin_register_osd_type("toggle_announcer", osd_nav_toggle_announcer_new);
/*
plugin_register_osd_type("position_max_speed", osd_position_max_speed_new);
diff --git a/navit/xpm/Makefile.am b/navit/xpm/Makefile.am
index 7cf674027..e8f772a42 100644
--- a/navit/xpm/Makefile.am
+++ b/navit/xpm/Makefile.am
@@ -95,7 +95,9 @@ svgs += gui_map.svg
svgs += gui_maps.svg
svgs += gui_rules.svg
svgs += gui_settings.svg
-svgs += gui_sound.svg gui_tools.svg
+svgs += gui_sound.svg
+svgs += gui_sound_off.svg
+svgs += gui_tools.svg
svgs += gui_fullscreen.svg
svgs += gui_leave_fullscreen.svg
svgs += gui_quit.svg gui_stop.svg
diff --git a/navit/xpm/gui_sound_32.xpm b/navit/xpm/gui_sound_32.xpm
new file mode 100644
index 000000000..a348492a0
--- /dev/null
+++ b/navit/xpm/gui_sound_32.xpm
@@ -0,0 +1,204 @@
+/* XPM */
+static char *gui_sound______[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 166 2",
+" c black",
+". c gray1",
+"X c #070707",
+"o c #03070C",
+"O c #050C15",
+"+ c #050C16",
+"@ c #141413",
+"# c #141514",
+"$ c #161615",
+"% c #141616",
+"& c #161716",
+"* c #171716",
+"= c #161818",
+"- c #171919",
+"; c #181818",
+": c #191919",
+"> c #191A19",
+", c #191B1B",
+"< c #1C1C1B",
+"1 c #1C1D1C",
+"2 c #1F201F",
+"3 c #222321",
+"4 c #232424",
+"5 c #232525",
+"6 c #242626",
+"7 c #252727",
+"8 c #272726",
+"9 c #282827",
+"0 c #272B2C",
+"q c #292A29",
+"w c #2D2E2D",
+"e c #2A2F30",
+"r c #2B2F30",
+"t c #303231",
+"y c #333533",
+"u c #343635",
+"i c #343636",
+"p c #373737",
+"a c #383A38",
+"s c #383A39",
+"d c #3B3C3A",
+"f c #393D3C",
+"g c #3C3E3D",
+"h c #3F3F3F",
+"j c #193A69",
+"k c #1B3F73",
+"l c gray25",
+"z c #404241",
+"x c #454544",
+"c c #444744",
+"v c #464645",
+"b c #454948",
+"n c #4A4B4A",
+"m c #4A4E4D",
+"M c #4E504F",
+"N c #50514E",
+"B c #4C5050",
+"V c #505452",
+"C c #555957",
+"Z c #575A56",
+"A c #595B56",
+"S c #585B5A",
+"D c #5C5D59",
+"F c #5D5E5B",
+"G c #5B5F5D",
+"H c gray36",
+"J c #5F605B",
+"K c #636561",
+"L c #606462",
+"P c #656564",
+"I c #656764",
+"U c #656866",
+"Y c #686A67",
+"T c #676A69",
+"R c #6B6D68",
+"E c #6E6F6D",
+"W c gray43",
+"Q c #737571",
+"! c #747874",
+"~ c #767A78",
+"^ c #7A7B7A",
+"/ c #787C7A",
+"( c #7B7E7A",
+") c #7D7E7D",
+"_ c #7E7F7C",
+"` c #7D807B",
+"' c #7F817A",
+"] c #7F807E",
+"[ c #204A87",
+"{ c #838683",
+"} c #868686",
+"| c #898D89",
+" . c #8C8E8B",
+".. c #8F938F",
+"X. c #91938A",
+"o. c #90918F",
+"O. c #949793",
+"+. c #959793",
+"@. c #959695",
+"#. c #969795",
+"$. c #959894",
+"%. c gray61",
+"&. c #9D9F9C",
+"*. c #9DA099",
+"=. c #A1A1A0",
+"-. c #A2A5A1",
+";. c #A5A8A5",
+":. c #A9ACA8",
+">. c #ADAEAB",
+",. c #AEB0AD",
+"<. c #B0B2AE",
+"1. c gray69",
+"2. c #B1B3B0",
+"3. c #B4B5B5",
+"4. c #B7B8B5",
+"5. c #BABDB6",
+"6. c #BBBEB7",
+"7. c #B9B9B8",
+"8. c #B9BAB9",
+"9. c #B9BABA",
+"0. c gray73",
+"q. c #BCBCBC",
+"w. c #BDC0B9",
+"e. c #BEC1BC",
+"r. c #BFC0BE",
+"t. c #BFC1BE",
+"y. c #C1C5BE",
+"u. c #C2C4BF",
+"i. c #C4C5C2",
+"p. c #C5C5C4",
+"a. c #C6C6C6",
+"s. c #C6C7C6",
+"d. c #C8C9C7",
+"f. c #CBCFC7",
+"g. c #CACBCA",
+"h. c #CDCFCD",
+"j. c #D0D1CF",
+"k. c #D1D3CE",
+"l. c #D1D4CD",
+"z. c #D1D2D1",
+"x. c #D2D2D1",
+"c. c #D3D5D1",
+"v. c #D5D6D5",
+"b. c #D9DAD8",
+"n. c #D9DAD9",
+"m. c #DCDCDA",
+"M. c #DDDEDD",
+"N. c #DFE0DD",
+"B. c #DFE1DE",
+"V. c #E0E1DF",
+"C. c #E1E2E0",
+"Z. c #E1E3E0",
+"A. c #E4E5E3",
+"S. c #E5E6E3",
+"D. c #E5E6E4",
+"F. c #E5E6E5",
+"G. c #E6E7E5",
+"H. c #E7E8E7",
+"J. c #E9E9E7",
+"K. c #EAEBEA",
+"L. c #ECEDEA",
+"P. c #EDEDEB",
+"I. c #EEEFED",
+"U. c #F0F0EF",
+"Y. c #FAFBFA",
+"T. c None",
+/* pixels */
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.[ T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.y.w.T.T.T.T.T.T.T.T.T.T.[ T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.' f.w.T.T.T.T.T.T.T.T.T.T.T.[ T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.I l.6.T.T.T.T.T.T.[ T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.n y.K.i.T.T.T.T.T.T.T.T.T.T.T.T.[ T.T.T.T.",
+"T.T.T.5.5.5.5.T.T.T.I 0.D I.q.T.T.T.T.T.T.T.[ T.T.T.T.T.T.T.T.T.",
+"T.T.T.C.A.S.V.T.N %.=.d ) M.<.T.T.T.[ T.T.T.T.[ T.T.T.T.[ T.T.T.",
+"T.T.T.A.5.5.V.Y 0.E } 7.O.n.:.T.T.T.T.[ T.T.T.[ T.T.T.T.[ T.T.T.",
+"T.T.Q U.c.k.F.2.v ^ q.a.#.x.-.T.T.T.T.[ T.T.T.T.T.T.T.T.[ T.T.T.",
+"T.K *.Y.P.J.K.E v ) <.x.#.d.$.T.T.T.T.T.T.T.T.T.[ T.T.T.T.T.T.T.",
+"T.J X.H.m.m.F.a 8 w q 4 x y...U T.T.T.T.[ T.T.T.[ T.T.T.T.T.T.T.",
+"T.D ' V.i.i.M.y $ : < 1 z 3.| m T.T.T.T.[ T.T.T.[ T.T.T.T.T.T.T.",
+"T.A R n.>.>.v.B $ $ : 1 g ,.~ T.T.T.T.T.T.T.T.T.T.T.T.T.[ T.T.T.",
+"T.T.Z x.+.+.h.T 8 # - : a ;./ T.T.T.T.[ T.T.T.T.T.T.T.T.[ T.T.T.",
+"T.T.T.g.) ' a.i H i @ $ i *.L T.T.T.[ T.T.T.[ T.T.T.T.[ T.T.T.",
+"T. $ 0.a.a.3.- 8 l v = t #.J + k T.T.T.T.[ T.T.T.T.[ T.T.T.",
+" 0 r r 0 . : 4 g t .S + o T.T.[ T.T.T.T.T.T.T.T.T.",
+" X , a { B T.T.T.T.T.T.T.[ T.T.T.T.",
+" . 5 ( m j [ T.T.T.T.T.T.T.T.T.T.",
+" 7 ! b T.T.T.T.T.T.[ T.T.T.T.T.",
+"T. $ S f T.T.T.T.T.T.[ T.T.T.T.T.T.",
+"T.T. - . T.T.T.T.T.T.T.[ T.T.T.T.T.T.T.",
+"T.T.T.T.T. T.T.T.T.T.T.T.T.T.[ T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
+"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T."
+};
diff --git a/navit/xpm/gui_sound_off.svg b/navit/xpm/gui_sound_off.svg
new file mode 100644
index 000000000..d85e1f8b9
--- /dev/null
+++ b/navit/xpm/gui_sound_off.svg
@@ -0,0 +1,771 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docbase="/home/lapo/Icone/cvs/gnome-icon-theme/scalable/status"
+ sodipodi:docname="gui_sound_off.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective131" />
+ <linearGradient
+ id="linearGradient21662">
+ <stop
+ id="stop21664"
+ offset="0"
+ style="stop-color:#3465a4;stop-opacity:0;" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="0.81927711"
+ id="stop21666" />
+ <stop
+ id="stop21668"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient21644">
+ <stop
+ id="stop21646"
+ offset="0"
+ style="stop-color:#3465a4;stop-opacity:0;" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="0.73493975"
+ id="stop21648" />
+ <stop
+ id="stop21650"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient21622">
+ <stop
+ style="stop-color:#3465a4;stop-opacity:0;"
+ offset="0"
+ id="stop21624" />
+ <stop
+ id="stop21630"
+ offset="0.85542166"
+ style="stop-color:#3465a4;stop-opacity:0;" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1"
+ offset="1"
+ id="stop21626" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient21608">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="0"
+ id="stop21610" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="1"
+ id="stop21612" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient21598">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop21600" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop21602" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient21582">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop21584" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop21586" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient21572">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop21574" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop21576" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient17123">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop17125" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop17127" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15341">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="0"
+ id="stop15343" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop15345" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient13551">
+ <stop
+ id="stop13553"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1" />
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0.25301206"
+ id="stop13555" />
+ <stop
+ id="stop13557"
+ offset="1"
+ style="stop-color:#888a85;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient13535">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop13537" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="1"
+ id="stop13539" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient10872">
+ <stop
+ id="stop10874"
+ offset="0"
+ style="stop-color:#888a85;stop-opacity:1" />
+ <stop
+ style="stop-color:#9e9e92;stop-opacity:1;"
+ offset="0.25301206"
+ id="stop10876" />
+ <stop
+ id="stop10878"
+ offset="1"
+ style="stop-color:#555753;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9086">
+ <stop
+ id="stop9088"
+ offset="0"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ id="stop9090"
+ offset="1"
+ style="stop-color:black;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7280">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop7282" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="1"
+ id="stop7284" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6387">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop6389" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop6391" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6379">
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="0"
+ id="stop6381" />
+ <stop
+ id="stop21606"
+ offset="0.5"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop6383" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6371">
+ <stop
+ style="stop-color:#888a85;stop-opacity:1"
+ offset="0"
+ id="stop6373" />
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1;"
+ offset="1"
+ id="stop6375" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3698">
+ <stop
+ style="stop-color:white;stop-opacity:1;"
+ offset="0"
+ id="stop3700" />
+ <stop
+ style="stop-color:white;stop-opacity:0;"
+ offset="1"
+ id="stop3702" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3688">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop3690" />
+ <stop
+ style="stop-color:#2e3436;stop-opacity:1"
+ offset="1"
+ id="stop3692" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2793">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1;"
+ offset="0"
+ id="stop2795" />
+ <stop
+ id="stop2801"
+ offset="0.25301206"
+ style="stop-color:#eeeeec;stop-opacity:1;" />
+ <stop
+ style="stop-color:#555753;stop-opacity:1"
+ offset="1"
+ id="stop2797" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2793"
+ id="linearGradient2799"
+ x1="7.5625"
+ y1="16.499838"
+ x2="7.5625"
+ y2="29.625288"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3688"
+ id="linearGradient3694"
+ x1="4.5961943"
+ y1="14.456622"
+ x2="4.5961943"
+ y2="30.313524"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6371"
+ id="linearGradient6377"
+ x1="14.241117"
+ y1="26.996773"
+ x2="15.125"
+ y2="20.976084"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6379"
+ id="linearGradient6385"
+ x1="20.226221"
+ y1="20.33363"
+ x2="11.4375"
+ y2="21.75"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6387"
+ id="linearGradient6393"
+ x1="17.25"
+ y1="18.81151"
+ x2="16.1875"
+ y2="32.629498"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-28,0)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7280"
+ id="linearGradient7286"
+ x1="11.875"
+ y1="20.375"
+ x2="13.125"
+ y2="34.13559"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient9086"
+ id="radialGradient8199"
+ cx="7.1396246"
+ cy="22.5"
+ fx="7.1396246"
+ fy="22.5"
+ r="6"
+ gradientTransform="matrix(1.914836,-0.506192,0.654838,2.477012,-48.62381,-29.61876)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10872"
+ id="linearGradient10870"
+ x1="3.8890872"
+ y1="18.937069"
+ x2="3.8890872"
+ y2="25.947107"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient13535"
+ id="linearGradient13541"
+ x1="21.875"
+ y1="9.6335878"
+ x2="20.5"
+ y2="41.744865"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient13551"
+ id="linearGradient13549"
+ x1="20.125"
+ y1="8.875"
+ x2="20.125"
+ y2="33.8829"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient15341"
+ id="radialGradient15347"
+ cx="22.624176"
+ cy="20.880224"
+ fx="22.624176"
+ fy="20.880224"
+ r="3.3177083"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient17123"
+ id="radialGradient17129"
+ cx="11.402097"
+ cy="36.863068"
+ fx="11.402097"
+ fy="36.863068"
+ r="10.69499"
+ gradientTransform="matrix(1,0,0,0.330579,0,24.67693)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21572"
+ id="radialGradient21578"
+ cx="7.001297"
+ cy="22.470087"
+ fx="7.001297"
+ fy="22.470087"
+ r="6.4940691"
+ gradientTransform="matrix(1.433087,-0.596698,0.798238,1.917124,-20.96864,-16.43019)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21598"
+ id="linearGradient21604"
+ x1="12.25"
+ y1="19.75"
+ x2="10.875"
+ y2="33.125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21608"
+ id="linearGradient21614"
+ x1="23.272787"
+ y1="18.525478"
+ x2="23.272787"
+ y2="22.811184"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21622"
+ id="radialGradient21684"
+ gradientUnits="userSpaceOnUse"
+ cx="20.84375"
+ cy="21.84375"
+ fx="20.84375"
+ fy="21.84375"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21662"
+ id="radialGradient21686"
+ gradientUnits="userSpaceOnUse"
+ cx="20.84375"
+ cy="21.84375"
+ fx="20.84375"
+ fy="21.84375"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21644"
+ id="radialGradient21688"
+ gradientUnits="userSpaceOnUse"
+ cx="20.84375"
+ cy="21.84375"
+ fx="20.84375"
+ fy="21.84375"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21622"
+ id="radialGradient26140"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.054163,0,0,8.054163,-110.8381,-158.8113)"
+ cx="20.532286"
+ cy="22.513134"
+ fx="20.532286"
+ fy="22.513134"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21644"
+ id="radialGradient28811"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.494347,0,0,3.494347,-19.16478,-56.13942)"
+ cx="20.512293"
+ cy="22.506662"
+ fx="20.512293"
+ fy="22.506662"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21662"
+ id="radialGradient28813"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.531533,0,0,5.531533,-56.05226,-101.9897)"
+ cx="20.534391"
+ cy="22.506662"
+ fx="20.534391"
+ fy="22.506662"
+ r="2.9063251" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3698"
+ id="radialGradient2001"
+ cx="6.1016178"
+ cy="20.352701"
+ fx="6.1016178"
+ fy="20.352701"
+ r="2.5000024"
+ gradientTransform="matrix(0.774994,6.9459,-1.923675,0.21464,39.98579,-31.37473)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient21582"
+ id="linearGradient2009"
+ x1="21.875"
+ y1="26.625"
+ x2="18.187626"
+ y2="26"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.055556"
+ inkscape:cx="28.5"
+ inkscape:cy="25"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ borderlayer="true"
+ showgrid="false"
+ inkscape:window-width="1018"
+ inkscape:window-height="727"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:guide-points="false"
+ inkscape:grid-points="true"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ showborder="false"
+ inkscape:grid-bbox="false">
+ <sodipodi:guide
+ orientation="vertical"
+ position="20.5"
+ id="guide21670" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="25.5"
+ id="guide21672" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:title>Audio Volume High</dc:title>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="constr"
+ style="display:none">
+ <path
+ style="opacity:0.83011588;fill:url(#radialGradient8199);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M -8.21875,10.5 L -20.21875,22.5 L -8.21875,34.5 L -8.21875,10.5 z "
+ id="path7288"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="opacity:0.76833975;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6393);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M -7,10.5 L -19,22.5 L -7,34.5 L -7,10.5 z "
+ id="path2791"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.50000006"
+ inkscape:original="M 19.5 9.5 C 18 15 12 14 7.5 22.5 C 12 31 18 30 19.5 35.5 L 19.5 9.5 z "
+ style="opacity:0.63320462;fill:#fce94f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path21580"
+ d="M 19.375,9 C 19.200644,9.0530225 19.06894,9.1967002 19.03125,9.375 C 18.327802,11.954311 16.604417,12.961638 14.34375,14.46875 C 12.083083,15.975862 9.3592888,17.942871 7.0625,22.28125 C 6.9953198,22.419346 6.9953198,22.580654 7.0625,22.71875 C 9.3592888,27.057129 12.083083,29.024138 14.34375,30.53125 C 16.604417,32.038362 18.327802,33.045689 19.03125,35.625 C 19.110592,35.845992 19.333006,35.982016 19.565879,35.951968 C 19.798752,35.92192 19.979353,35.733894 20,35.5 L 20,9.5 C 20.005,9.3425939 19.935556,9.1920293 19.812581,9.0936489 C 19.689605,8.9952685 19.527469,8.9605689 19.375,9 z "
+ transform="translate(-42,0)" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M -47.5,22.5 L -20,-8 L -20,56 L -47.5,22.5 z "
+ id="path21676" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient21684);fill-opacity:1;stroke:#204a87;stroke-width:0.12515022;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="path21678"
+ sodipodi:cx="20.84375"
+ sodipodi:cy="21.84375"
+ sodipodi:rx="2.84375"
+ sodipodi:ry="2.84375"
+ d="M 23.6875 21.84375 A 2.84375 2.84375 0 1 1 18,21.84375 A 2.84375 2.84375 0 1 1 23.6875 21.84375 z"
+ transform="matrix(7.990397,0,0,7.990397,-220.7725,-152.0403)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient21686);fill-opacity:1;stroke:#204a87;stroke-width:0.18086948;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="path21680"
+ sodipodi:cx="20.84375"
+ sodipodi:cy="21.84375"
+ sodipodi:rx="2.84375"
+ sodipodi:ry="2.84375"
+ d="M 23.6875 21.84375 A 2.84375 2.84375 0 1 1 18,21.84375 A 2.84375 2.84375 0 1 1 23.6875 21.84375 z"
+ transform="matrix(5.528848,0,0,5.528848,-169.4646,-98.27085)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient21688);fill-opacity:1;stroke:#204a87;stroke-width:0.29248634;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="path21682"
+ sodipodi:cx="20.84375"
+ sodipodi:cy="21.84375"
+ sodipodi:rx="2.84375"
+ sodipodi:ry="2.84375"
+ d="M 23.6875 21.84375 A 2.84375 2.84375 0 1 1 18,21.84375 A 2.84375 2.84375 0 1 1 23.6875 21.84375 z"
+ transform="matrix(3.418962,0,0,3.418962,-125.4867,-52.18304)" />
+ </g>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient15347);fill-opacity:1;stroke:url(#linearGradient21614);stroke-width:0.94791663;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="path13559"
+ sodipodi:cx="20.84375"
+ sodipodi:cy="21.84375"
+ sodipodi:rx="2.84375"
+ sodipodi:ry="2.84375"
+ d="M 23.6875 21.84375 A 2.84375 2.84375 0 1 1 18,21.84375 A 2.84375 2.84375 0 1 1 23.6875 21.84375 z"
+ transform="matrix(1.054945,0,0,1.054945,-1.48901,-0.543956)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.2;fill:url(#radialGradient17129);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="path16236"
+ sodipodi:cx="11.402097"
+ sodipodi:cy="36.863068"
+ sodipodi:rx="10.69499"
+ sodipodi:ry="3.5355339"
+ d="M 22.097087 36.863068 A 10.69499 3.5355339 0 1 1 0.70710659,36.863068 A 10.69499 3.5355339 0 1 1 22.097087 36.863068 z"
+ transform="matrix(1.45582,0,0,2.078338,-1.697314,-43.43834)" />
+ <path
+ style="fill:url(#linearGradient6377);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient7286);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 19.5,9.5 C 18,15 12,14 7.5,22.5 C 12,31 18,30 19.5,35.5 L 19.5,9.5 z "
+ id="path1887"
+ sodipodi:nodetypes="cccc" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient10870);fill-opacity:1;stroke:#555753;stroke-width:0.99999893;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="rect1898"
+ width="6.3333392"
+ height="8.0000706"
+ x="2.4999988"
+ y="18.499939"
+ rx="2.375"
+ ry="2.375" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="0.50000006"
+ inkscape:original="M 19.5 9.5 C 18 15 12 14 7.5 22.5 C 12 31 18 30 19.5 35.5 L 19.5 9.5 z "
+ style="opacity:0.50193045;fill:url(#radialGradient21578);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ id="path20685"
+ d="M 19.375,9 C 19.200644,9.0530225 19.06894,9.1967002 19.03125,9.375 C 18.327802,11.954311 16.604417,12.961638 14.34375,14.46875 C 12.083083,15.975862 9.3592888,17.942871 7.0625,22.28125 C 6.9953198,22.419346 6.9953198,22.580654 7.0625,22.71875 C 9.3592888,27.057129 12.083083,29.024138 14.34375,30.53125 C 16.604417,32.038362 18.327802,33.045689 19.03125,35.625 C 19.110592,35.845992 19.333006,35.982016 19.565879,35.951968 C 19.798752,35.92192 19.979353,35.733894 20,35.5 L 20,9.5 C 20.005,9.3425939 19.935556,9.1920293 19.812581,9.0936489 C 19.689605,8.9952685 19.527469,8.9605689 19.375,9 z " />
+ <path
+ style="opacity:0.63320462;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient21604);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 18.5625,12.96875 C 17.576953,14.016322 16.385251,14.836916 15.15625,15.65625 C 13.018871,17.081169 10.717564,18.770623 8.625,22.5 C 10.717564,26.229377 13.018871,27.918831 15.15625,29.34375 C 16.385251,30.163084 17.576953,30.983678 18.5625,32.03125 L 20.5,34 L 20.5,11 L 18.5625,12.96875 z "
+ id="path21595"
+ sodipodi:nodetypes="cscscccc" />
+ <path
+ style="opacity:0.7335907;fill:url(#linearGradient6385);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 21,14.375 C 17.125,15.769678 12.8125,18.570921 9,22.5 C 13.049341,21.373913 17.236937,20.539527 21,20.75 L 21,14.375 z "
+ id="path5476"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="opacity:0.36679538;fill:url(#linearGradient2009);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 19.375,9 C 19.200644,9.0530225 19.06894,9.1967002 19.03125,9.375 C 18.455919,11.48455 17.175782,12.547561 15.5,13.6875 L 15.5,31.3125 C 17.175782,32.452439 18.455919,33.51545 19.03125,35.625 C 19.110592,35.845992 19.329627,35.967548 19.5625,35.9375 C 19.795372,35.907451 19.979353,35.733894 20,35.5 L 20,9.5 C 20.005,9.3425939 19.935475,9.1921304 19.8125,9.09375 C 19.689525,8.9953696 19.527469,8.9605689 19.375,9 z "
+ id="path19794" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient2799);fill-opacity:1;stroke:url(#linearGradient3694);stroke-width:0.99999881;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="rect1881"
+ width="6"
+ height="15.999965"
+ x="4.4999995"
+ y="14.499997"
+ rx="1"
+ ry="1" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient13549);fill-opacity:1;stroke:url(#linearGradient13541);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="rect1889"
+ width="2"
+ height="29.999969"
+ x="19.5"
+ y="7.500001"
+ rx="1"
+ ry="1" />
+ <rect
+ style="opacity:0.60617761;fill:none;fill-opacity:1.0;stroke:url(#radialGradient2001);stroke-width:0.99999917;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="rect1902"
+ width="4.0000057"
+ height="14.000035"
+ x="5.4999981"
+ y="15.499966"
+ rx="0"
+ ry="0" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:white;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="path15349"
+ sodipodi:cx="20.5"
+ sodipodi:cy="13.5"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ d="M 21.5 13.5 A 1 1 0 1 1 19.5,13.5 A 1 1 0 1 1 21.5 13.5 z" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#babdb6;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1"
+ id="path18901"
+ sodipodi:cx="3.75"
+ sodipodi:cy="20.75"
+ sodipodi:rx="0.75"
+ sodipodi:ry="0.75"
+ d="M 4.5 20.75 A 0.75 0.75 0 1 1 3,20.75 A 0.75 0.75 0 1 1 4.5 20.75 z"
+ transform="translate(-0.46875,-0.34375)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:white;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.20000057;stroke-opacity:1;display:inline"
+ id="path2001"
+ sodipodi:cx="20.5"
+ sodipodi:cy="13.5"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ d="M 21.5 13.5 A 1 1 0 1 1 19.5,13.5 A 1 1 0 1 1 21.5 13.5 z"
+ transform="translate(-15,6.3125)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="waves" />
+</svg>
diff --git a/navit/xpm/gui_sound_off_32.xpm b/navit/xpm/gui_sound_off_32.xpm
new file mode 100644
index 000000000..32b5b8ea4
--- /dev/null
+++ b/navit/xpm/gui_sound_off_32.xpm
@@ -0,0 +1,198 @@
+/* XPM */
+static char *gui_sound_off______[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 160 2",
+" c black",
+". c gray1",
+"X c #070707",
+"o c #141413",
+"O c #141514",
+"+ c #161615",
+"@ c #141616",
+"# c #161716",
+"$ c #171716",
+"% c #161818",
+"& c #171919",
+"* c #181818",
+"= c #191919",
+"- c #191A19",
+"; c #191B1B",
+": c #1C1C1B",
+"> c #1C1D1C",
+", c #1F201F",
+"< c #222321",
+"1 c #232424",
+"2 c #232525",
+"3 c #242626",
+"4 c #252727",
+"5 c #272726",
+"6 c #282827",
+"7 c #272B2C",
+"8 c #292A29",
+"9 c #2D2E2D",
+"0 c #2A2F30",
+"q c #2B2F30",
+"w c #303231",
+"e c #333533",
+"r c #343635",
+"t c #343636",
+"y c #373737",
+"u c #383A38",
+"i c #383A39",
+"p c #3B3C3A",
+"a c #393D3C",
+"s c #3C3E3D",
+"d c #3F3F3F",
+"f c gray25",
+"g c #404241",
+"h c #454544",
+"j c #444744",
+"k c #464645",
+"l c #454948",
+"z c #4A4B4A",
+"x c #4A4E4D",
+"c c #4E504F",
+"v c #50514E",
+"b c #4C5050",
+"n c #505452",
+"m c #555957",
+"M c #575A56",
+"N c #595B56",
+"B c #585B5A",
+"V c #5C5D59",
+"C c #5D5E5B",
+"Z c #5B5F5D",
+"A c gray36",
+"S c #5F605B",
+"D c #636561",
+"F c #606462",
+"G c #656564",
+"H c #656764",
+"J c #656866",
+"K c #686A67",
+"L c #676A69",
+"P c #6B6D68",
+"I c #6E6F6D",
+"U c gray43",
+"Y c #737571",
+"T c #747874",
+"R c #767A78",
+"E c #7A7B7A",
+"W c #787C7A",
+"Q c #7B7E7A",
+"! c #7D7E7D",
+"~ c #7E7F7C",
+"^ c #7D807B",
+"/ c #7F817A",
+"( c #7F807E",
+") c #838683",
+"_ c #868686",
+"` c #898D89",
+"' c #8C8E8B",
+"] c #8F938F",
+"[ c #91938A",
+"{ c #90918F",
+"} c #949793",
+"| c #959793",
+" . c #959695",
+".. c #969795",
+"X. c #959894",
+"o. c gray61",
+"O. c #9D9F9C",
+"+. c #9DA099",
+"@. c #A1A1A0",
+"#. c #A2A5A1",
+"$. c #A5A8A5",
+"%. c #A9ACA8",
+"&. c #ADAEAB",
+"*. c #AEB0AD",
+"=. c #B0B2AE",
+"-. c gray69",
+";. c #B1B3B0",
+":. c #B4B5B5",
+">. c #B7B8B5",
+",. c #BABDB6",
+"<. c #BBBEB7",
+"1. c #B9B9B8",
+"2. c #B9BAB9",
+"3. c #B9BABA",
+"4. c gray73",
+"5. c #BCBCBC",
+"6. c #BDC0B9",
+"7. c #BEC1BC",
+"8. c #BFC0BE",
+"9. c #BFC1BE",
+"0. c #C1C5BE",
+"q. c #C2C4BF",
+"w. c #C4C5C2",
+"e. c #C5C5C4",
+"r. c #C6C6C6",
+"t. c #C6C7C6",
+"y. c #C8C9C7",
+"u. c #CBCFC7",
+"i. c #CACBCA",
+"p. c #CDCFCD",
+"a. c #D0D1CF",
+"s. c #D1D3CE",
+"d. c #D1D4CD",
+"f. c #D1D2D1",
+"g. c #D2D2D1",
+"h. c #D3D5D1",
+"j. c #D5D6D5",
+"k. c #D9DAD8",
+"l. c #D9DAD9",
+"z. c #DCDCDA",
+"x. c #DDDEDD",
+"c. c #DFE0DD",
+"v. c #DFE1DE",
+"b. c #E0E1DF",
+"n. c #E1E2E0",
+"m. c #E1E3E0",
+"M. c #E4E5E3",
+"N. c #E5E6E3",
+"B. c #E5E6E4",
+"V. c #E5E6E5",
+"C. c #E6E7E5",
+"Z. c #E7E8E7",
+"A. c #E9E9E7",
+"S. c #EAEBEA",
+"D. c #ECEDEA",
+"F. c #EDEDEB",
+"G. c #EEEFED",
+"H. c #F0F0EF",
+"J. c #FAFBFA",
+"K. c None",
+/* pixels */
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.0.6.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K./ u.6.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.H d.<.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.z 0.S.w.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.,.,.,.,.K.K.K.H 4.V G.5.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.n.M.N.b.K.v o.@.p ! x.=.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.M.,.,.b.K 4.I _ 1.} l.%.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.Y H.h.s.V.;.k E 5.r...g.#.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.D +.J.F.A.S.I k ! =.g...y.X.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.S [ Z.z.z.V.u 5 9 8 1 h 0.] J K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.V / b.w.w.x.e + = : > g :.` x K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.N P l.&.&.j.x + + = > s *.R K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.M g.| X.p.L 5 O & = u $.W K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.i.! / r.y A y O + t +.F K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K. O 4.r.r.:.& 5 s k % w ..S K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+" . 7 0 0 7 . = 1 f w ' B K.K.K.K.K.K.K.K.K.K.K.K.",
+" X ; u ) b K.K.K.K.K.K.K.K.K.K.K.K.",
+" . 2 Q x K.K.K.K.K.K.K.K.K.K.K.K.",
+" 4 T l K.K.K.K.K.K.K.K.K.K.K.K.",
+"K. + B a K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K. & . K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K. K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.",
+"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K."
+};