From 9855a220befd8a2cf77ef65af781b5b2ae2a08ab Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 28 Jan 2014 10:29:28 +0100 Subject: [PATCH] webif standby -add option CEC standby off (dont use TV off) --- src/driver/rcinput.cpp | 8 ++++-- src/neutrino.cpp | 8 +++++- src/neutrinoMessages.h | 3 ++- .../tuxboxapi/coolstream/controlapi.cpp | 25 +++++++++++++------ .../tuxboxapi/coolstream/neutrinoapi.cpp | 3 ++- 5 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/driver/rcinput.cpp b/src/driver/rcinput.cpp index 5d24f69c6..b1b2d895f 100644 --- a/src/driver/rcinput.cpp +++ b/src/driver/rcinput.cpp @@ -857,8 +857,12 @@ void CRCInput::getMsg_us(neutrino_msg_t * msg, neutrino_msg_data_t * data, uint6 *msg = NeutrinoMessages::RELOAD_SETUP; *data = 0; break; - case NeutrinoMessages::EVT_HDMI_CEC_ON: - *msg = NeutrinoMessages::EVT_HDMI_CEC_ON; + case NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON: + *msg = NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON; + *data = 0; + break; + case NeutrinoMessages::EVT_HDMI_CEC_STANDBY: + *msg = NeutrinoMessages::EVT_HDMI_CEC_STANDBY; *data = 0; break; default: diff --git a/src/neutrino.cpp b/src/neutrino.cpp index fdfa4ea33..72e369df9 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3035,12 +3035,18 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data) // ShowHint(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_EXTRA_ZAPIT_SDT_CHANGED), // CMessageBox::mbrBack,CMessageBox::mbBack, NEUTRINO_ICON_INFO); } - else if (msg == NeutrinoMessages::EVT_HDMI_CEC_ON) { + else if (msg == NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON) { if(g_settings.hdmi_cec_view_on) videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on); return messages_return::handled; } + else if (msg == NeutrinoMessages::EVT_HDMI_CEC_STANDBY) { + if(g_settings.hdmi_cec_standby) + videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby); + + return messages_return::handled; + } if ((msg >= CRCInput::RC_WithData) && (msg < CRCInput::RC_WithData + 0x10000000)) delete [] (unsigned char*) data; diff --git a/src/neutrinoMessages.h b/src/neutrinoMessages.h index 28c60dd58..51a1b2cab 100644 --- a/src/neutrinoMessages.h +++ b/src/neutrinoMessages.h @@ -152,7 +152,8 @@ struct NeutrinoMessages { EVT_EIT_COMPLETE = CRCInput::RC_WithData + 24, /* data: (t_channel_id *) */ EVT_BACK_ZAP_COMPLETE = CRCInput::RC_WithData + 25, /* data: (t_channel_id *) */ - EVT_HDMI_CEC_ON = CRCInput::RC_WithData + 26 + EVT_HDMI_CEC_VIEW_ON = CRCInput::RC_WithData + 26, + EVT_HDMI_CEC_STANDBY = CRCInput::RC_WithData + 27 }; enum { diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index e843696df..c1e23697c 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -430,30 +430,41 @@ void CControlAPI::StandbyCGI(CyhookHandler *hh) CEC_HDMI_off = true; } } - //dont use CEC with standbyoff --- use: control/standby?off&cec=off - if(g_settings.hdmi_cec_view_on && CEC_HDMI_off){ - videoDecoder->SetCECAutoView(0); - } if (hh->ParamList["1"] == "on") // standby mode on { + //dont use CEC with standbyoff (TV off) --- use: control/standby?off&cec=off + if(g_settings.hdmi_cec_standby && CEC_HDMI_off){ + videoDecoder->SetCECAutoStandby(0); + } + if(CNeutrinoApp::getInstance()->getMode() != 4) NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::STANDBY_ON, CEventServer::INITID_HTTPD); hh->SendOk(); + + if(g_settings.hdmi_cec_standby && CEC_HDMI_off){//dont use CEC with standbyoff (TV off) + NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_HDMI_CEC_STANDBY, CEventServer::INITID_HTTPD); + } } else if (hh->ParamList["1"] == "off")// standby mode off { + //dont use CEC with with view on (TV on) --- use: control/standby?off&cec=off + if(g_settings.hdmi_cec_view_on && CEC_HDMI_off){ + videoDecoder->SetCECAutoView(0); + } + NeutrinoAPI->Zapit->setStandby(false); if(CNeutrinoApp::getInstance()->getMode() == 4) NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::STANDBY_OFF, CEventServer::INITID_HTTPD); hh->SendOk(); + + if(g_settings.hdmi_cec_view_on && CEC_HDMI_off){//dont use CEC with view on (TV on) + NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON, CEventServer::INITID_HTTPD); + } } else hh->SendError(); - if(g_settings.hdmi_cec_view_on && CEC_HDMI_off){//dont use CEC with standbyoff - NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_HDMI_CEC_ON, CEventServer::INITID_HTTPD); - } } else if(CNeutrinoApp::getInstance()->getMode() == 4)//mode_standby = 4 diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp index dd571c050..4f285b586 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp @@ -130,7 +130,8 @@ CNeutrinoAPI::CNeutrinoAPI() EventServer->registerEvent2( NeutrinoMessages::LOCK_RC, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); EventServer->registerEvent2( NeutrinoMessages::UNLOCK_RC, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); EventServer->registerEvent2( NeutrinoMessages::RELOAD_SETUP, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");//reload neutrino conf - EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); + EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); + EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_STANDBY, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); } //-------------------------------------------------------------------------