diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index b4b109e9c..171fdfe44 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2812,7 +2812,10 @@ videomenu.hdmi_cec_mode_recorder als Sat/Kabel PVR videomenu.hdmi_cec_mode_tuner als Sat/Kabel STB videomenu.hdmi_cec_standby Aktiviere CEC Standby videomenu.hdmi_cec_view_on Aktiviere CEC View on -videomenu.hdmi_cec_volume Aktiviere CEC Lautstärke Regelung +videomenu.hdmi_cec_volume CEC Lautstärke Regelung +videomenu.hdmi_cec_vol_audiosystem Audiosystem +videomenu.hdmi_cec_vol_off aus +videomenu.hdmi_cec_vol_tv TV videomenu.hue Farbton videomenu.letterbox Letterbox videomenu.panscan Pan & Scan diff --git a/data/locale/english.locale b/data/locale/english.locale index 180a2fe72..84a2c4dc8 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2812,7 +2812,10 @@ videomenu.hdmi_cec_mode_recorder as Sat/Cable PVR videomenu.hdmi_cec_mode_tuner as Sat/Cable STB videomenu.hdmi_cec_standby Enable CEC standby videomenu.hdmi_cec_view_on Enable CEC View on -videomenu.hdmi_cec_volume Activate CEC volume control +videomenu.hdmi_cec_volume CEC volume control +videomenu.hdmi_cec_vol_audiosystem Audiosystem +videomenu.hdmi_cec_vol_off off +videomenu.hdmi_cec_vol_tv TV videomenu.hue Hue videomenu.letterbox Letterbox videomenu.panscan Pan & Scan diff --git a/src/gui/cec_setup.cpp b/src/gui/cec_setup.cpp index 048f55ca5..49a40028b 100644 --- a/src/gui/cec_setup.cpp +++ b/src/gui/cec_setup.cpp @@ -100,6 +100,13 @@ const CMenuOptionChooser::keyval VIDEOMENU_HDMI_CEC_MODE_OPTIONS[VIDEOMENU_HDMI_ { VIDEO_HDMI_CEC_MODE_TUNER , LOCALE_VIDEOMENU_HDMI_CEC_MODE_TUNER }, { VIDEO_HDMI_CEC_MODE_RECORDER , LOCALE_VIDEOMENU_HDMI_CEC_MODE_RECORDER } }; +#define VIDEOMENU_HDMI_CEC_VOL_OPTION_COUNT 3 +const CMenuOptionChooser::keyval VIDEOMENU_HDMI_CEC_VOL_OPTIONS[VIDEOMENU_HDMI_CEC_VOL_OPTION_COUNT] = +{ + { VIDEO_HDMI_CEC_VOL_OFF , LOCALE_VIDEOMENU_HDMI_CEC_VOL_OFF }, + { VIDEO_HDMI_CEC_VOL_AUDIOSYSTEM, LOCALE_VIDEOMENU_HDMI_CEC_VOL_AUDIOSYSTEM }, + { VIDEO_HDMI_CEC_VOL_TV , LOCALE_VIDEOMENU_HDMI_CEC_VOL_TV } +}; #endif int CCECSetup::showMenu() @@ -123,7 +130,7 @@ int CCECSetup::showMenu() cec2 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_STANDBY, &g_settings.hdmi_cec_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this); cec2->setHint("", LOCALE_MENU_HINT_CEC_STANDBY); #if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE - cec3 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_VOLUME, &g_settings.hdmi_cec_volume, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this); + cec3 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_VOLUME, &g_settings.hdmi_cec_volume, VIDEOMENU_HDMI_CEC_VOL_OPTIONS, VIDEOMENU_HDMI_CEC_VOL_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this); cec3->setHint("", LOCALE_MENU_HINT_CEC_VOLUME); #endif #endif @@ -176,6 +183,9 @@ void CCECSetup::setCECSettings() printf("[neutrino CEC Settings] %s init CEC settings...\n", __FUNCTION__); videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1); videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1); +#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE + videoDecoder->SetAudioDestination(g_settings.hdmi_cec_volume); +#endif videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode); } #endif @@ -212,6 +222,13 @@ bool CCECSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*/ { videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1); } + else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_HDMI_CEC_VOLUME)) + { + if (g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF) + { + videoDecoder->SetAudioDestination(g_settings.hdmi_cec_volume); + } + } #endif return false; diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 0b6608be3..b6859b902 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -810,6 +810,9 @@ bool CMiscMenue::changeNotify(const neutrino_locale_t OptionName, void * /*data* } videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1); videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1); +#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE + videoDecoder->SetAudioDestination(g_settings.hdmi_cec_volume); +#endif videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode); } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_MISCSETTINGS_CHANNELLIST_ENABLESDT)) diff --git a/src/system/locals.h b/src/system/locals.h index 2fe868200..0fc5642ed 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -2840,6 +2840,9 @@ typedef enum LOCALE_VIDEOMENU_HDMI_CEC_STANDBY, LOCALE_VIDEOMENU_HDMI_CEC_VIEW_ON, LOCALE_VIDEOMENU_HDMI_CEC_VOLUME, + LOCALE_VIDEOMENU_HDMI_CEC_VOL_AUDIOSYSTEM, + LOCALE_VIDEOMENU_HDMI_CEC_VOL_OFF, + LOCALE_VIDEOMENU_HDMI_CEC_VOL_TV, LOCALE_VIDEOMENU_HUE, LOCALE_VIDEOMENU_LETTERBOX, LOCALE_VIDEOMENU_PANSCAN, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index a640986c1..9d54a7d76 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -2840,6 +2840,9 @@ const char * locale_real_names[] = "videomenu.hdmi_cec_standby", "videomenu.hdmi_cec_view_on", "videomenu.hdmi_cec_volume", + "videomenu.hdmi_cec_vol_audiosystem", + "videomenu.hdmi_cec_vol_off", + "videomenu.hdmi_cec_vol_tv", "videomenu.hue", "videomenu.letterbox", "videomenu.panscan",