{
m_imageViewOnCheck = new CImageViewOnCheck(this);
m_vendorId = CEC_VENDOR_PHILIPS;
+ m_bOPTSendDeckStatusUpdateOnActiveSource = false;
}
CPHCommandHandler::~CPHCommandHandler(void)
{
// tv sometimes ignores image view on. check the power status of the tv in 5 seconds, and retry when it failed to power up
if (m_imageViewOnCheck && !m_imageViewOnCheck->IsRunning())
- m_imageViewOnCheck->CreateThread(false);
+ return m_imageViewOnCheck->CreateThread(false);
}
return CCECCommandHandler::ActivateSource(bTransmitDelayedCommandsOnly);
int CPHCommandHandler::HandleUserControlPressed(const cec_command& command)
{
- // tv keeps sending these until a button is pressed
- if (command.parameters[0] == CEC_USER_CONTROL_CODE_DISPLAY_INFORMATION &&
- m_iLastKeyCode == CEC_USER_CONTROL_CODE_DISPLAY_INFORMATION)
+ // TV sometimes keeps sending key presses without releases
+ if (m_iLastKeyCode == command.parameters[0])
return COMMAND_HANDLED;
m_iLastKeyCode = command.parameters[0];
return CCECCommandHandler::HandleDeviceVendorId(command);
}
-int CPHCommandHandler::HandleGiveDeviceVendorId(const cec_command& command)
+bool CPHCommandHandler::TransmitVendorID(const cec_logical_address iInitiator, const cec_logical_address iDestination, uint64_t UNUSED(iVendorId), bool UNUSED(bIsReply))
{
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "<< %s (%X) -> %s (%X): vendor id feature abort", ToString(command.destination), command.destination, ToString(command.initiator), command.initiator);
- m_processor->TransmitAbort(command.destination, command.initiator, CEC_OPCODE_GIVE_DEVICE_VENDOR_ID);
- return COMMAND_HANDLED;
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "<< %s (%X) -> %s (%X): vendor id feature abort", ToString(iInitiator), iInitiator, ToString(iDestination), iDestination);
+ m_processor->TransmitAbort(iInitiator, iDestination, CEC_OPCODE_GIVE_DEVICE_VENDOR_ID);
+ return true;
}