From: Marten Richter Date: Wed, 21 Aug 2013 10:31:23 +0000 (+0200) Subject: Report to libcec the current power state X-Git-Tag: 0-4-1~1^2~18 X-Git-Url: https://git.vomp.tv/gitweb/?a=commitdiff_plain;h=e1a9636212b506a0c6603d5cfc188d1afe03453b;p=vompclient.git Report to libcec the current power state --- diff --git a/command.cc b/command.cc index 6fb521e..8368a9b 100644 --- a/command.cc +++ b/command.cc @@ -537,6 +537,7 @@ void Command::doStandby() { Video::getInstance()->signalOn(); Led::getInstance()->on(); + Remote::getInstance()->changePowerState(true); isStandby = 0; @@ -554,6 +555,7 @@ void Command::doStandby() logger->unsetExternLogger(); VDR::getInstance()->disconnect(); Led::getInstance()->off(); + Remote::getInstance()->changePowerState(false); isStandby = 1; Sleeptimer::getInstance()->shutdown(); #ifdef WIN32 diff --git a/remote.h b/remote.h index b517811..72c0292 100644 --- a/remote.h +++ b/remote.h @@ -69,6 +69,8 @@ class Remote: public AbstractOption void EnterLearnMode(UCHAR command); void ResetToDefault(); + virtual void changePowerState(bool poweron) {}; //informs the remote control, that about vomp's power state, this is important e.g. for cec + const static ULONG NOLEARNMODE = 256; // Not buttons const static UCHAR NA_LEARN = 101; diff --git a/remotelinux.cc b/remotelinux.cc index fad7baf..77d50b9 100644 --- a/remotelinux.cc +++ b/remotelinux.cc @@ -876,6 +876,18 @@ char* RemoteLinux::HCWDesc(unsigned long long hcw) return rt; } +void RemoteLinux::changePowerState(bool poweron){ + if (cec_adap) { + if (poweron) { + Log::getInstance()->log("Remote", Log::DEBUG, "CEC set active source" ); + cec_adap->SetActiveSource(); + } else { + Log::getInstance()->log("Remote", Log::DEBUG, "CEC set inactive view" ); + cec_adap->SetInactiveView(); + } + } +} + int RemoteLinux::cecLogMessage(void *param, const cec_log_message &message) { diff --git a/remotelinux.h b/remotelinux.h index 0c96427..9f65884 100644 --- a/remotelinux.h +++ b/remotelinux.h @@ -52,6 +52,8 @@ class RemoteLinux : public Remote const char*HardcodedTranslateStr(UCHAR command); char* HCWDesc(ULLONG hcw); + void changePowerState(bool poweron); + bool loadOptionsfromServer(VDR* vdr); bool saveOptionstoServer(); bool addOptionsToPanes(int panenumber,Options *options,WOptionPane* pane);