From ed098f79f2a7ca3d764d7d673f8a1c711e999cd5 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Sun, 31 Jan 2021 18:21:43 +0100 Subject: [PATCH] cec volume switch audiosystem/tv Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/4a3283b32024e934623f3f6d4d336efcd5cf2d45 Author: TangoCash Date: 2021-01-31 (Sun, 31 Jan 2021) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 5 ++++- data/locale/english.locale | 5 ++++- src/gui/cec_setup.cpp | 19 ++++++++++++++++++- src/gui/miscsettings_menu.cpp | 3 +++ src/system/locals.h | 3 +++ src/system/locals_intern.h | 3 +++ 6 files changed, 35 insertions(+), 3 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index f100ab27f..175c5ba96 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2975,7 +2975,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ärkeregelung +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 347db1ef5..9549db1b6 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2975,7 +2975,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 bb80dadf6..680fb317f 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -807,6 +807,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 dd53a68fe..0313e045e 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -3003,6 +3003,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 7ccdfba2e..9db0593a5 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -3003,6 +3003,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",