From 9bc8934c6dac8efcd2f636b6f68798049f84deac Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Tue, 29 Nov 2011 01:55:09 +0100 Subject: [PATCH] cec: make sure that a device is really powered on --- src/lib/devices/CECBusDevice.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index 439fc05..7fe92a4 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -99,7 +99,16 @@ bool CCECBusDevice::PowerOn(void) cec_command::Format(command, GetMyLogicalAddress(), m_iLogicalAddress, CEC_OPCODE_IMAGE_VIEW_ON); if (m_processor->Transmit(command)) { - RequestPowerStatus(); + { + CLockObject lock(&m_mutex); + m_powerStatus = CEC_POWER_STATUS_UNKNOWN; + } + cec_power_status status = GetPowerStatus(); + if (status == CEC_POWER_STATUS_STANDBY || status == CEC_POWER_STATUS_UNKNOWN) + { + SendKeypress(CEC_USER_CONTROL_CODE_POWER, true); + return SendKeyRelease(false); + } return true; } -- 2.34.1