mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-09 22:58:28 +02:00
introduce hdmi_cec to driver
Origin commit data
------------------
Branch: ni/coolstream
Commit: c8a58afe2f
Author: TangoCash <eric@loxat.de>
Date: 2022-11-19 (Sat, 19 Nov 2022)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -45,9 +45,12 @@
|
||||
#include <system/debug.h>
|
||||
|
||||
#include <cs_api.h>
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
#include <driver/hdmi_cec.h>
|
||||
#else
|
||||
#include <hardware/video.h>
|
||||
|
||||
extern cVideo *videoDecoder;
|
||||
#endif
|
||||
|
||||
CCECSetup::CCECSetup()
|
||||
{
|
||||
@@ -55,6 +58,8 @@ CCECSetup::CCECSetup()
|
||||
cec1 = NULL;
|
||||
cec2 = NULL;
|
||||
cec3 = NULL;
|
||||
cec4 = NULL;
|
||||
cec5 = NULL;
|
||||
}
|
||||
|
||||
CCECSetup::~CCECSetup()
|
||||
@@ -75,6 +80,7 @@ int CCECSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/)
|
||||
return res;
|
||||
}
|
||||
|
||||
#if !HAVE_ARM_HARDWARE && !HAVE_MIPS_HARDWARE
|
||||
#define VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT 3
|
||||
const CMenuOptionChooser::keyval VIDEOMENU_HDMI_CEC_MODE_OPTIONS[VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT] =
|
||||
{
|
||||
@@ -82,6 +88,7 @@ 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 }
|
||||
};
|
||||
#endif
|
||||
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
#define VIDEOMENU_HDMI_CEC_VOL_OPTION_COUNT 3
|
||||
@@ -100,15 +107,24 @@ int CCECSetup::showMenu()
|
||||
cec->addIntroItems(LOCALE_VIDEOMENU_HDMI_CEC);
|
||||
|
||||
//cec
|
||||
CMenuOptionChooser *cec_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_MODE, &g_settings.hdmi_cec_mode, VIDEOMENU_HDMI_CEC_MODE_OPTIONS, VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT, true, this);
|
||||
cec_ch->setHint("", LOCALE_MENU_HINT_CEC_MODE);
|
||||
cec1 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_VIEW_ON, &g_settings.hdmi_cec_view_on, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this);
|
||||
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 || HAVE_MIPS_HARDWARE
|
||||
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);
|
||||
if (g_settings.hdmi_cec_mode > 0)
|
||||
g_settings.hdmi_cec_mode = 1;
|
||||
CMenuOptionChooser *cec_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_MODE, &g_settings.hdmi_cec_mode, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this);
|
||||
cec_ch->setHint("", LOCALE_MENU_HINT_CEC_MODE);
|
||||
cec3 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_WAKEUP, &g_settings.hdmi_cec_wakeup, 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_WAKEUP);
|
||||
cec4 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_SLEEP, &g_settings.hdmi_cec_sleep, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this);
|
||||
cec4->setHint("", LOCALE_MENU_HINT_CEC_SLEEP);
|
||||
cec5 = 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);
|
||||
cec5->setHint("", LOCALE_MENU_HINT_CEC_VOLUME);
|
||||
#else
|
||||
CMenuOptionChooser *cec_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_MODE, &g_settings.hdmi_cec_mode, VIDEOMENU_HDMI_CEC_MODE_OPTIONS, VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT, true, this);
|
||||
cec_ch->setHint("", LOCALE_MENU_HINT_CEC_MODE);
|
||||
#endif
|
||||
|
||||
cec->addItem(cec_ch);
|
||||
@@ -118,6 +134,8 @@ int CCECSetup::showMenu()
|
||||
cec->addItem(cec2);
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
cec->addItem(cec3);
|
||||
cec->addItem(cec4);
|
||||
cec->addItem(cec5);
|
||||
#endif
|
||||
|
||||
int res = cec->exec(NULL, "");
|
||||
@@ -129,12 +147,19 @@ int CCECSetup::showMenu()
|
||||
void CCECSetup::setCECSettings()
|
||||
{
|
||||
printf("[neutrino CEC Settings] %s init CEC settings...\n", __FUNCTION__);
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
if (g_hdmicec == NULL)
|
||||
g_hdmicec = new hdmi_cec();
|
||||
g_hdmicec->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1);
|
||||
g_hdmicec->SetCECAutoView(g_settings.hdmi_cec_view_on == 1);
|
||||
g_hdmicec->SetAudioDestination(g_settings.hdmi_cec_volume);
|
||||
g_hdmicec->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode);
|
||||
#else
|
||||
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
|
||||
}
|
||||
|
||||
bool CCECSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*/)
|
||||
@@ -146,27 +171,43 @@ bool CCECSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*/
|
||||
cec2->setActive(g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF);
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
cec3->setActive(g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF);
|
||||
cec4->setActive(g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF);
|
||||
cec5->setActive(g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF);
|
||||
#endif
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
g_hdmicec->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode);
|
||||
#else
|
||||
videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)g_settings.hdmi_cec_mode);
|
||||
#endif
|
||||
}
|
||||
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_HDMI_CEC_STANDBY))
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
g_hdmicec->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1);
|
||||
#else
|
||||
videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1);
|
||||
#endif
|
||||
}
|
||||
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_HDMI_CEC_VIEW_ON))
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
g_hdmicec->SetCECAutoView(g_settings.hdmi_cec_view_on == 1);
|
||||
#else
|
||||
videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1);
|
||||
#endif
|
||||
}
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_VIDEOMENU_HDMI_CEC_VOLUME))
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
if (g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF)
|
||||
{
|
||||
g_settings.current_volume = 100;
|
||||
videoDecoder->SetAudioDestination(g_settings.hdmi_cec_volume);
|
||||
g_hdmicec->SetAudioDestination(g_settings.hdmi_cec_volume);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user