diff -ruN dvbhddevice_org/dvbhddevice.c dvbhddevice-2013.08.28/dvbhddevice.c --- dvbhddevice_org/dvbhddevice.c 2013-08-29 20:30:27.000000000 +0200 +++ dvbhddevice-2013.08.28/dvbhddevice.c 2013-08-29 21:12:03.000000000 +0200 @@ -28,6 +28,8 @@ virtual cMenuSetupPage *SetupMenu(void); virtual bool SetupParse(const char *Name, const char *Value); virtual bool Initialize(); +private: + HDFF::cHdffCmdIf * mHdffCmdIf; }; cPluginDvbhddevice::cPluginDvbhddevice(void){} @@ -82,16 +84,33 @@ void cPluginDvbhddevice::MainThreadHook(void) { bool isUserInactive = ShutdownHandler.IsUserInactive(); - if (isUserInactive != mIsUserInactive) + if (isUserInactive != mIsUserInactive) { mIsUserInactive = isUserInactive; if (gHdffSetup.CecEnabled && gHdffSetup.CecTvOn) { HDFF::cHdffCmdIf * hdffCmdIf = cDvbHdFfDevice::GetHdffCmdHandler(); - if (hdffCmdIf && !mIsUserInactive) - { - hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); + if (gHdffSetup.CecLegacy) + { + if (mIsUserInactive) + { + hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_OFF); + } + else + { + isyslog("HDFF_CEC_COMMAND_TV_ON_Legacy_Support"); + hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); + hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); + hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); + } } + else + { + if (hdffCmdIf && !mIsUserInactive) + { + hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); + } + } } } } diff -ruN dvbhddevice_org/po/de_DE.po dvbhddevice-2013.08.28/po/de_DE.po --- dvbhddevice_org/po/de_DE.po 2013-06-26 20:50:48.000000000 +0200 +++ dvbhddevice-2013.08.28/po/de_DE.po 2013-08-29 21:12:19.000000000 +0200 @@ -109,6 +109,9 @@ msgid "CEC: Switch TV off" msgstr "CEC: TV ausschalten" +msgid "CEC: Legacy Support" +msgstr "CEC: Legacy Support" + msgid "Remote Control Protocol" msgstr "Fernbedienungsprotokoll" diff -ruN dvbhddevice_org/setup.c dvbhddevice-2013.08.28/setup.c --- dvbhddevice_org/setup.c 2013-06-26 20:50:48.000000000 +0200 +++ dvbhddevice-2013.08.28/setup.c 2013-08-29 20:31:06.000000000 +0200 @@ -29,6 +29,7 @@ CecEnabled = 1; CecTvOn = 1; CecTvOff = 0; + CecLegacy = 0; RemoteProtocol = 1; RemoteAddress = -1; HighLevelOsd = 1; @@ -50,6 +51,7 @@ else if (strcmp(Name, "CecEnabled") == 0) CecEnabled = atoi(Value); else if (strcmp(Name, "CecTvOn") == 0) CecTvOn = atoi(Value); else if (strcmp(Name, "CecTvOff") == 0) CecTvOff = atoi(Value); + else if (strcmp(Name, "CecLegacy") == 0) CecLegacy = atoi(Value); else if (strcmp(Name, "RemoteProtocol") == 0) RemoteProtocol = atoi(Value); else if (strcmp(Name, "RemoteAddress") == 0) RemoteAddress = atoi(Value); else if (strcmp(Name, "HighLevelOsd") == 0) HighLevelOsd = atoi(Value); @@ -261,6 +263,7 @@ Add(new cMenuEditBoolItem(tr("HDMI CEC"), &mNewHdffSetup.CecEnabled)); Add(new cMenuEditBoolItem(tr("CEC: Switch TV on"), &mNewHdffSetup.CecTvOn)); Add(new cMenuEditBoolItem(tr("CEC: Switch TV off"), &mNewHdffSetup.CecTvOff)); + Add(new cMenuEditBoolItem(tr("CEC: Legacy Support"), &mNewHdffSetup.CecLegacy)); Add(new cMenuEditStraItem(tr("Remote Control Protocol"), &mNewHdffSetup.RemoteProtocol, kRemoteProtocols, RemoteProtocolItems)); Add(new cMenuEditIntItem(tr("Remote Control Address"), &mNewHdffSetup.RemoteAddress, -1, 31)); Add(new cMenuEditBoolItem(tr("High Level OSD"), &mNewHdffSetup.HighLevelOsd)); @@ -391,6 +394,7 @@ SetupStore("CecEnabled", mNewHdffSetup.CecEnabled); SetupStore("CecTvOn", mNewHdffSetup.CecTvOn); SetupStore("CecTvOff", mNewHdffSetup.CecTvOff); + SetupStore("CecLegacy", mNewHdffSetup.CecLegacy); SetupStore("RemoteProtocol", mNewHdffSetup.RemoteProtocol); SetupStore("RemoteAddress", mNewHdffSetup.RemoteAddress); SetupStore("HighLevelOsd", mNewHdffSetup.HighLevelOsd); diff -ruN dvbhddevice_org/setup.h dvbhddevice-2013.08.28/setup.h --- dvbhddevice_org/setup.h 2013-06-26 20:50:48.000000000 +0200 +++ dvbhddevice-2013.08.28/setup.h 2013-08-29 20:31:06.000000000 +0200 @@ -31,6 +31,7 @@ int CecEnabled; int CecTvOn; int CecTvOff; + int CecLegacy; int RemoteProtocol; int RemoteAddress;