diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 56c9b6879..f206ecfca 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -393,6 +393,7 @@ extra.scan_fast Schnell extra.scan_full Total extra.scan_mode Scan-Modus extra.scrambled_message Verschlüsselung melden +extra.show_mute_icon Mute-Icon bei Lautstärke 0 extra.sms_channel SMS-Modus Kanal extra.south Süden extra.spts_mode SPTS-Modus diff --git a/data/locale/english.locale b/data/locale/english.locale index ab8648eab..184b39051 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -393,6 +393,7 @@ extra.scan_fast Fast extra.scan_full Full extra.scan_mode Scan mode extra.scrambled_message Scrambled Message +extra.show_mute_icon mute-icon at volume 0 extra.sms_channel sms-mode channel extra.south South extra.spts_mode SPTS mode diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 71e31f217..c2a7e8c89 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -313,6 +313,7 @@ void COsdSetup::showOsdSetup() osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_SCRAMBLED_MESSAGE, &g_settings.scrambled_message, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); osd_menu->addItem(new CMenuOptionChooser(LOCALE_INFOVIEWER_SUBCHAN_DISP_POS, &g_settings.infobar_subchan_disp_pos, INFOBAR_SUBCHAN_DISP_POS_OPTIONS, INFOBAR_SUBCHAN_DISP_POS_OPTIONS_COUNT, true)); osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_VOLUME_POS, &g_settings.volume_pos, VOLUMEBAR_DISP_POS_OPTIONS, VOLUMEBAR_DISP_POS_OPTIONS_COUNT, true)); + osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_SHOW_MUTE_ICON, &g_settings.show_mute_icon, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); osd_menu->addItem(new CMenuOptionChooser(LOCALE_SETTINGS_MENU_POS, &g_settings.menu_pos, MENU_DISP_POS_OPTIONS, MENU_DISP_POS_OPTIONS_COUNT, true)); osd_menu->addItem(new CMenuOptionChooser(LOCALE_COLORMENU_FADE, &g_settings.widget_fade, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true )); osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_BIGWINDOWS, &g_settings.big_windows, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 48f938c65..42ce36339 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -453,6 +453,7 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.menu_pos = configfile.getInt32("menu_pos", 0 ); g_settings.infobar_show_var_hdd = configfile.getBool("infobar_show_var_hdd" , true ); g_settings.show_infomenu = configfile.getInt32("show_infomenu", 0 ); + g_settings.show_mute_icon = configfile.getInt32("show_mute_icon" ,0); g_settings.infobar_show_res = configfile.getInt32("infobar_show_res", 0 ); g_settings.radiotext_enable = configfile.getBool("radiotext_enable" , false); //audio @@ -1009,6 +1010,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setInt32("menu_pos" , g_settings.menu_pos); configfile.setInt32("infobar_show_var_hdd" , g_settings.infobar_show_var_hdd ); configfile.setInt32("show_infomenu" , g_settings.show_infomenu ); + configfile.setInt32("show_mute_icon" , g_settings.show_mute_icon); configfile.setInt32("infobar_show_res" , g_settings.infobar_show_res ); configfile.setBool("radiotext_enable" , g_settings.radiotext_enable); //audio @@ -3281,6 +3283,8 @@ void CNeutrinoApp::saveEpg() void CNeutrinoApp::AudioMute( int newValue, bool isEvent ) { + if((g_settings.current_volume == 0) && (g_settings.show_mute_icon == 1)) + return; //printf("MUTE: val %d current %d event %d\n", newValue, current_muted, isEvent); int dx = 0; int dy = 0; @@ -3399,7 +3403,13 @@ printf("CNeutrinoApp::setVolume dx %d dy %d\n", dx, dy); else if (msg == CRCInput::RC_minus || msg == CRCInput::RC_left) { //FIXME if (g_settings.current_volume > g_settings.current_volume_step) g_settings.current_volume -= g_settings.current_volume_step; - else + else if ((g_settings.show_mute_icon == 1) && (g_settings.current_volume = 1)) + { + (g_settings.current_volume = 1); + AudioMute( true, true); + g_settings.current_volume = 0; + } + else if (g_settings.show_mute_icon == 0) g_settings.current_volume = 0; } else { diff --git a/src/system/locals.h b/src/system/locals.h index d892db853..7120f3ff5 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -420,6 +420,7 @@ typedef enum LOCALE_EXTRA_SCAN_FULL, LOCALE_EXTRA_SCAN_MODE, LOCALE_EXTRA_SCRAMBLED_MESSAGE, + LOCALE_EXTRA_SHOW_MUTE_ICON, LOCALE_EXTRA_SMS_CHANNEL, LOCALE_EXTRA_SOUTH, LOCALE_EXTRA_SPTS_MODE, diff --git a/src/system/settings.h b/src/system/settings.h index 468d3c7bb..1c2454059 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -72,6 +72,7 @@ struct SNeutrinoSettings int casystem_display; int scrambled_message; int volume_pos; + int show_mute_icon; int menu_pos; int infobar_show_var_hdd; int infobar_show_res;