X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FCECCommandHandler.cpp;h=e9b0a79c2b86910dd1b5ab2a9a5b0c409deed68d;hb=be5b0e24ecd0ab142b4a85197d10b07a57bf0e17;hp=72294807dfb6b9ffd9c5985414e8ae7290c7f02c;hpb=8ac9c610be214885ff040d23acb707eeaba1276c;p=deb_libcec.git diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index 7229480..e9b0a79 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -147,6 +147,11 @@ bool CCECCommandHandler::HandleCommand(const cec_command &command) /* pass to listeners */ m_busDevice->GetProcessor()->AddCommand(command); break; + case CEC_OPCODE_ACTIVE_SOURCE: + HandleActiveSource(command); + /* pass to listeners */ + m_busDevice->GetProcessor()->AddCommand(command); + break; default: UnhandledCommand(command); /* pass to listeners */ @@ -166,6 +171,17 @@ bool CCECCommandHandler::HandleCommand(const cec_command &command) return bHandled; } +bool CCECCommandHandler::HandleActiveSource(const cec_command &command) +{ + if (command.parameters.size == 2) + { + uint16_t iAddress = ((uint16_t)command.parameters[0] << 8) | ((uint16_t)command.parameters[1]); + return m_busDevice->GetProcessor()->SetStreamPath(iAddress); + } + + return true; +} + bool CCECCommandHandler::HandleDeviceCecVersion(const cec_command &command) { if (command.parameters.size == 1)