X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2FCECProcessor.cpp;h=2e53d6b9271742e3cf41140adea44b99f4653743;hb=e36035adeeab088655508cf6c2aa492e8eea7cc3;hp=f13644ed42131ff6287320caaab0f74e39d2cee9;hpb=715e0c66178458701231a9168a613b27b624c03c;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index f13644e..2e53d6b 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -548,7 +548,34 @@ bool CCECProcessor::HandleANCommand(cec_command &command) { switch(command.opcode) { - // TODO + case CEC_OPCODE_VENDOR_REMOTE_BUTTON_DOWN: + if (command.parameters.size > 0) + { + m_controller->AddKey(); + + uint8_t iButton = 0; + switch (command.parameters[0]) + { + case CEC_AN_USER_CONTROL_CODE_RETURN: + iButton = CEC_USER_CONTROL_CODE_PREVIOUS_CHANNEL; + break; + default: + break; + } + + if (iButton > 0 && iButton <= CEC_USER_CONTROL_CODE_MAX) + { + CStdString strLog; + strLog.Format("key pressed: %1x", iButton); + m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str()); + + m_controller->SetCurrentButton((cec_user_control_code) command.parameters[0]); + } + } + break; + case CEC_OPCODE_VENDOR_REMOTE_BUTTON_UP: + m_controller->AddKey(); + break; default: bHandled = false; break;