X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FSLCommandHandler.cpp;h=2ed05afcf2e8b816147b1cd4dbec0accb5fe55e6;hb=b89523424cf50668fec376235b06924b2a0ddaf6;hp=e3259219b90141c611afb43dd1a9b9318da74eda;hpb=cc1b9bc4f6d5c295f07ac5c67d4b6f1d55c75a52;p=deb_libcec.git diff --git a/src/lib/implementations/SLCommandHandler.cpp b/src/lib/implementations/SLCommandHandler.cpp index e325921..2ed05af 100644 --- a/src/lib/implementations/SLCommandHandler.cpp +++ b/src/lib/implementations/SLCommandHandler.cpp @@ -51,15 +51,17 @@ using namespace PLATFORM; CSLCommandHandler::CSLCommandHandler(CCECBusDevice *busDevice) : CCECCommandHandler(busDevice), m_bSLEnabled(false), - m_bActiveSourceSent(false), - m_bVendorIdSent(false) + m_bActiveSourceSent(false) { m_vendorId = CEC_VENDOR_LG; CCECBusDevice *primary = m_processor->GetPrimaryDevice(); /* imitate LG devices */ if (primary && m_busDevice->GetLogicalAddress() != primary->GetLogicalAddress()) + { primary->SetVendorId(CEC_VENDOR_LG); + primary->ReplaceHandler(false); + } /* LG TVs don't always reply to CEC version requests, so just set it to 1.3a */ if (m_busDevice->GetLogicalAddress() == CECDEVICE_TV) @@ -84,6 +86,9 @@ bool CSLCommandHandler::InitHandler(void) /* start as 'in transition standby->on' */ primary->SetPowerStatus(CEC_POWER_STATUS_IN_TRANSITION_STANDBY_TO_ON); primary->TransmitPowerState(CECDEVICE_TV); + + /* send the vendor id */ + primary->TransmitVendorID(CECDEVICE_BROADCAST); } return true; @@ -91,16 +96,6 @@ bool CSLCommandHandler::InitHandler(void) bool CSLCommandHandler::ActivateSource(void) { - /* reply with LGs vendor id */ - bool bSendVendorId(false); - { - CLockObject lock(m_SLMutex); - bSendVendorId = !m_bVendorIdSent; - m_bVendorIdSent = true; - } - if (bSendVendorId) - m_processor->GetPrimaryDevice()->TransmitVendorID(CECDEVICE_BROADCAST, false); - if (!SLInitialised()) { CLibCEC::AddLog(CEC_LOG_NOTICE, "not activating the source until SL has been initialised");