X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FCECCommandHandler.cpp;h=5a3de0b690c7d4015a2b27144e69c6ab69d7ef46;hb=6b1eea982ef9d4967ea7994f3c5e8dc246a5188c;hp=80bc280a3bb9b8af47e7be43582baa8ef9f22111;hpb=3fd2a2b89c3f6f9d8e28c19e45622386a981ef8d;p=deb_libcec.git diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index 80bc280..5a3de0b 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -577,8 +577,10 @@ bool CCECCommandHandler::HandleUserControlPressed(const cec_command &command) } } } - - m_processor->SetCurrentButton((cec_user_control_code) command.parameters[0]); + else + { + m_processor->SetCurrentButton((cec_user_control_code) command.parameters[0]); + } return true; } } @@ -888,21 +890,21 @@ bool CCECCommandHandler::TransmitDeckStatus(const cec_logical_address iInitiator return Transmit(command); } -bool CCECCommandHandler::TransmitKeypress(const cec_logical_address iInitiator, const cec_logical_address iDestination, cec_user_control_code key) +bool CCECCommandHandler::TransmitKeypress(const cec_logical_address iInitiator, const cec_logical_address iDestination, cec_user_control_code key, bool bWait /* = true */) { cec_command command; cec_command::Format(command, iInitiator, iDestination, CEC_OPCODE_USER_CONTROL_PRESSED); command.parameters.PushBack((uint8_t)key); - return Transmit(command); + return Transmit(command, bWait); } -bool CCECCommandHandler::TransmitKeyRelease(const cec_logical_address iInitiator, const cec_logical_address iDestination) +bool CCECCommandHandler::TransmitKeyRelease(const cec_logical_address iInitiator, const cec_logical_address iDestination, bool bWait /* = true */) { cec_command command; cec_command::Format(command, iInitiator, iDestination, CEC_OPCODE_USER_CONTROL_RELEASE); - return Transmit(command); + return Transmit(command, bWait); } bool CCECCommandHandler::Transmit(cec_command &command, bool bExpectResponse /* = true */) @@ -920,3 +922,16 @@ bool CCECCommandHandler::Transmit(cec_command &command, bool bExpectResponse /* return false; } + +bool CCECCommandHandler::InitHandler(void) +{ + if (m_busDevice->GetLogicalAddress() == CECDEVICE_TV) + { + CCECBusDevice *primary = m_processor->m_busDevices[m_processor->GetLogicalAddresses().primary]; + primary->SetPowerStatus(CEC_POWER_STATUS_ON); + primary->SetMenuState(CEC_MENU_STATE_ACTIVATED); + + m_processor->SetActiveSource(); + primary->TransmitMenuState(m_busDevice->GetLogicalAddress()); + } +}