From: Lars Op den Kamp Date: Tue, 10 Dec 2013 11:41:02 +0000 (+0100) Subject: vendor command 06:05 was commented out for panasonic because it was reported to be... X-Git-Tag: upstream/2.2.0~1^2~3^2~21 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=a085beac0abf9062aead6ad9114500432c68a829;p=deb_libcec.git vendor command 06:05 was commented out for panasonic because it was reported to be sent on power off too. i don't see that in the field, and it prevented resume from standby from working correctly. issue #192 --- diff --git a/src/lib/implementations/VLCommandHandler.cpp b/src/lib/implementations/VLCommandHandler.cpp index 329eab2..790e25b 100644 --- a/src/lib/implementations/VLCommandHandler.cpp +++ b/src/lib/implementations/VLCommandHandler.cpp @@ -109,19 +109,23 @@ int CVLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &comman if (command.initiator == CECDEVICE_TV && command.parameters.At(3) == VL_UNKNOWN1) { - // XXX this is also sent when the TV is powered off - // TODO power up sends 06:05. check whether this is also sent on power off -#if 0 - // set the power up event time + if (command.parameters.size >= 5 && command.parameters.At(4) == 0x05) { - CLockObject lock(m_mutex); - if (m_iPowerUpEventReceived == 0) - m_iPowerUpEventReceived = GetTimeMs(); + // set the power up event time + { + CLockObject lock(m_mutex); + if (m_iPowerUpEventReceived == 0) + m_iPowerUpEventReceived = GetTimeMs(); + } + // mark the TV as powered on + m_processor->GetTV()->SetPowerStatus(CEC_POWER_STATUS_ON); + + CCECBusDevice* dev = m_processor->GetPrimaryDevice(); + if (dev && dev->IsActiveSource()) + dev->TransmitActiveSource(false); + + return COMMAND_HANDLED; } - // mark the TV as powered on - m_processor->GetTV()->SetPowerStatus(CEC_POWER_STATUS_ON); -#endif - return COMMAND_HANDLED; } else if (command.initiator == CECDEVICE_TV && command.destination == CECDEVICE_BROADCAST &&