X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.cpp;h=1b86820447a2e36d3522e54daf688b6a0dd5ad34;hb=faa6a23b5900133cac7585bd4b36f17f95c6ff42;hp=bf559065d19941190b74df568270387e299924e9;hpb=06a1f7ce2bb14634f1ffd73d709b91238d05e5d6;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index bf55906..1b86820 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -320,6 +320,7 @@ void CCECProcessor::ReportPhysicalAddress(void) cec_command::format(command, m_iLogicalAddress, CECDEVICE_BROADCAST, CEC_OPCODE_REPORT_PHYSICAL_ADDRESS); command.parameters.push_back((uint8_t) ((m_physicaladdress >> 8) & 0xFF)); command.parameters.push_back((uint8_t) (m_physicaladdress & 0xFF)); + command.parameters.push_back((uint8_t) (CEC_DEVICE_TYPE_PLAYBACK_DEVICE)); Transmit(command); } @@ -438,7 +439,7 @@ bool CCECProcessor::ParseMessage(cec_adapter_message &msg) if (msg.size() >= 2) { logStr.AppendFormat(" initiator:%u destination:%u ack:%s %s", msg.initiator(), msg.destination(), msg.ack() ? "high" : "low", msg.eom() ? "eom" : ""); - m_currentframe.initiator = msg.initiator(); + m_currentframe.initiator = msg.initiator(); m_currentframe.destination = msg.destination(); m_currentframe.ack = msg.ack(); m_currentframe.eom = msg.eom(); @@ -454,6 +455,7 @@ bool CCECProcessor::ParseMessage(cec_adapter_message &msg) uint8_t iData = msg[1]; logStr.AppendFormat(" %02x", iData); m_currentframe.push_back(iData); + m_currentframe.eom = msg.eom(); } m_controller->AddLog(CEC_LOG_DEBUG, logStr.c_str()); } @@ -526,7 +528,6 @@ void CCECProcessor::ParseCommand(cec_command &command) break; case CEC_OPCODE_GIVE_DEVICE_POWER_STATUS: ReportPowerState(command.initiator); - SetActiveView(); break; case CEC_OPCODE_GET_CEC_VERSION: ReportCECVersion(command.initiator); @@ -543,6 +544,9 @@ void CCECProcessor::ParseCommand(cec_command &command) case CEC_OPCODE_USER_CONTROL_RELEASE: m_controller->AddKey(); break; + case CEC_OPCODE_ROUTING_CHANGE: + m_controller->SetActiveView(); + break; default: m_controller->AddCommand(command); break; @@ -580,3 +584,14 @@ void CCECProcessor::ParseCommand(cec_command &command) m_controller->AddLog(CEC_LOG_DEBUG, strLog.c_str()); } } + +const char *CCECProcessor::CECVendorIdToString(const uint64_t iVendorId) +{ + switch (iVendorId) + { + case CEC_VENDOR_SAMSUNG: + return "Samsung"; + default: + return "Unknown"; + } +}