add option to regulate audio systems volume via CEC

Origin commit data
------------------
Branch: ni/coolstream
Commit: 8e9c4a7568
Author: TangoCash <eric@loxat.de>
Date: 2018-10-14 (Sun, 14 Oct 2018)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
TangoCash
2018-10-14 22:29:22 +02:00
committed by vanhofen
parent 712a8b0392
commit 73f061c7f9
8 changed files with 61 additions and 1 deletions

View File

@@ -1186,6 +1186,7 @@ menu.hint_camd_reset Aktive Softcam und/oder Emulator neu starten
menu.hint_cec_mode CEC-Modus
menu.hint_cec_standby CEC-Standby
menu.hint_cec_view_on CEC view ON
menu.hint_cec_volume Beim Betätigen der Lautstärketasten wird die Lautstärke an angeschlossenem Audiogerät reguliert
menu.hint_channellist_additional Definiert, ob zusätzliche Informationen im Hauptfenster angezeigt werden sollen
menu.hint_channellist_enablesdt Ermöglicht die dynamische Senderaktualisierung im laufenden Betrieb
menu.hint_channellist_epg_align Legen Sie fest, wie der Text für das EPG in der Liste rechts vom Programmnamen ausgerichtet wird
@@ -2789,6 +2790,7 @@ 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.hue Farbton
videomenu.letterbox Letterbox
videomenu.panscan Pan & Scan

View File

@@ -1186,6 +1186,7 @@ menu.hint_camd_reset Restart the active softcam and/or emulator
menu.hint_cec_mode CEC mode
menu.hint_cec_standby CEC standby
menu.hint_cec_view_on CEC view ON
menu.hint_cec_volume Pressing the volume buttons adjusts the volume on the connected audio device
menu.hint_channellist_additional Show additional informations\nin main box
menu.hint_channellist_enablesdt Enables dynamic channel updates during operation
menu.hint_channellist_epg_align EPG event align
@@ -2789,6 +2790,7 @@ 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.hue Hue
videomenu.letterbox Letterbox
videomenu.panscan Pan & Scan

View File

@@ -96,12 +96,19 @@ int CCECSetup::showMenu()
cec1->setHint("", LOCALE_MENU_HINT_CEC_VIEW_ON);
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
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->setHint("", LOCALE_MENU_HINT_CEC_VOLUME);
#endif
cec->addItem(cec_ch);
cec->addItem(GenericMenuSeparatorLine);
//-------------------------------------------------------
cec->addItem(cec1);
cec->addItem(cec2);
#if HAVE_ARM_HARDWARE
cec->addItem(cec3);
#endif
int res = cec->exec(NULL, "");
delete cec;

View File

@@ -36,7 +36,7 @@
class CCECSetup : public CMenuTarget, CChangeObserver
{
private:
CMenuOptionChooser *cec1, *cec2;
CMenuOptionChooser *cec1, *cec2, *cec3;
int width;

View File

@@ -414,6 +414,7 @@ int CNeutrinoApp::loadSetup(const char * fname)
g_settings.hdmi_cec_mode = configfile.getInt32("hdmi_cec_mode", 0); // default off
g_settings.hdmi_cec_view_on = configfile.getInt32("hdmi_cec_view_on", 0); // default off
g_settings.hdmi_cec_standby = configfile.getInt32("hdmi_cec_standby", 0); // default off
g_settings.hdmi_cec_volume = configfile.getInt32("hdmi_cec_volume", 0);
g_settings.video_Format = configfile.getInt32("video_Format", DISPLAY_AR_16_9);
g_settings.video_43mode = configfile.getInt32("video_43mode", DISPLAY_AR_MODE_LETTERBOX);
@@ -1343,6 +1344,7 @@ void CNeutrinoApp::saveSetup(const char * fname)
configfile.setInt32( "hdmi_cec_mode", g_settings.hdmi_cec_mode );
configfile.setInt32( "hdmi_cec_view_on", g_settings.hdmi_cec_view_on );
configfile.setInt32( "hdmi_cec_standby", g_settings.hdmi_cec_standby );
configfile.setInt32( "hdmi_cec_volume", g_settings.hdmi_cec_volume );
configfile.setInt32( "current_volume", g_settings.current_volume );
configfile.setInt32( "current_volume_step", g_settings.current_volume_step );
@@ -3032,6 +3034,13 @@ void CNeutrinoApp::RealRun()
showInfo();
break;
case SNeutrinoSettings::VOLUME:
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
(msg == (neutrino_msg_t) g_settings.key_volumeup || msg == CRCInput::RC_right) ? hdmi_cec::getInstance()->vol_up() : hdmi_cec::getInstance()->vol_down();
}
else
#endif
g_volume->setVolume(msg);
break;
default: /* SNeutrinoSettings::ZAP */
@@ -3147,6 +3156,13 @@ void CNeutrinoApp::RealRun()
showInfo();
break;
case SNeutrinoSettings::VOLUME:
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
(msg == (neutrino_msg_t) g_settings.key_volumeup || msg == CRCInput::RC_right) ? hdmi_cec::getInstance()->vol_up() : hdmi_cec::getInstance()->vol_down();
}
else
#endif
g_volume->setVolume(msg);
break;
default: /* SNeutrinoSettings::ZAP */
@@ -3658,6 +3674,13 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
}
else if ((msg == CRCInput::RC_plus) || (msg == CRCInput::RC_minus))
{
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
(msg == (neutrino_msg_t) g_settings.key_volumeup || msg == CRCInput::RC_right) ? hdmi_cec::getInstance()->vol_up() : hdmi_cec::getInstance()->vol_down();
}
else
#endif
g_volume->setVolume(msg);
return messages_return::handled;
}
@@ -3668,15 +3691,36 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
}
else {
//mute
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
hdmi_cec::getInstance()->toggle_mute();
}
else
#endif
g_audioMute->AudioMute(!current_muted, true);
}
return messages_return::handled;
}
else if( msg == CRCInput::RC_mute_on ) {
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
hdmi_cec::getInstance()->toggle_mute();
}
else
#endif
g_audioMute->AudioMute(true, true);
return messages_return::handled;
}
else if( msg == CRCInput::RC_mute_off ) {
#if HAVE_ARM_HARDWARE
if (g_settings.hdmi_cec_volume)
{
hdmi_cec::getInstance()->toggle_mute();
}
else
#endif
g_audioMute->AudioMute(false, true);
return messages_return::handled;
}

View File

@@ -1213,6 +1213,7 @@ typedef enum
LOCALE_MENU_HINT_CEC_MODE,
LOCALE_MENU_HINT_CEC_STANDBY,
LOCALE_MENU_HINT_CEC_VIEW_ON,
LOCALE_MENU_HINT_CEC_VOLUME,
LOCALE_MENU_HINT_CHANNELLIST_ADDITIONAL,
LOCALE_MENU_HINT_CHANNELLIST_ENABLESDT,
LOCALE_MENU_HINT_CHANNELLIST_EPG_ALIGN,
@@ -2816,6 +2817,7 @@ typedef enum
LOCALE_VIDEOMENU_HDMI_CEC_MODE_TUNER,
LOCALE_VIDEOMENU_HDMI_CEC_STANDBY,
LOCALE_VIDEOMENU_HDMI_CEC_VIEW_ON,
LOCALE_VIDEOMENU_HDMI_CEC_VOLUME,
LOCALE_VIDEOMENU_HUE,
LOCALE_VIDEOMENU_LETTERBOX,
LOCALE_VIDEOMENU_PANSCAN,

View File

@@ -1213,6 +1213,7 @@ const char * locale_real_names[] =
"menu.hint_cec_mode",
"menu.hint_cec_standby",
"menu.hint_cec_view_on",
"menu.hint_cec_volume",
"menu.hint_channellist_additional",
"menu.hint_channellist_enablesdt",
"menu.hint_channellist_epg_align",
@@ -2816,6 +2817,7 @@ const char * locale_real_names[] =
"videomenu.hdmi_cec_mode_tuner",
"videomenu.hdmi_cec_standby",
"videomenu.hdmi_cec_view_on",
"videomenu.hdmi_cec_volume",
"videomenu.hue",
"videomenu.letterbox",
"videomenu.panscan",

View File

@@ -262,6 +262,7 @@ struct SNeutrinoSettings
int hdmi_cec_mode;
int hdmi_cec_view_on;
int hdmi_cec_standby;
int hdmi_cec_volume;
int enabled_video_modes[VIDEOMENU_VIDEOMODE_OPTION_COUNT];
int enabled_auto_modes[VIDEOMENU_VIDEOMODE_OPTION_COUNT];
int cpufreq;