X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FRLCommandHandler.cpp;h=f1f936a66a1af995b2150e92a84c851558ac4e3e;hb=ebcedb051be7d8e1e19ecd3f0aa164baae252400;hp=9643ee50f5f4c4bbdc339c342936317d81a8e5b9;hpb=0eb7639ed29e68a004e3eee32d53395d98252657;p=deb_libcec.git diff --git a/src/lib/implementations/RLCommandHandler.cpp b/src/lib/implementations/RLCommandHandler.cpp index 9643ee5..f1f936a 100644 --- a/src/lib/implementations/RLCommandHandler.cpp +++ b/src/lib/implementations/RLCommandHandler.cpp @@ -30,26 +30,25 @@ * http://www.pulse-eight.net/ */ +#include "env.h" #include "RLCommandHandler.h" -#include "../devices/CECBusDevice.h" -#include "../CECProcessor.h" -#include "../LibCEC.h" + +#include "lib/platform/util/timeutils.h" +#include "lib/devices/CECBusDevice.h" +#include "lib/CECProcessor.h" +#include "lib/LibCEC.h" using namespace CEC; using namespace PLATFORM; -CRLCommandHandler::CRLCommandHandler(CCECBusDevice *busDevice) : - CCECCommandHandler(busDevice) +CRLCommandHandler::CRLCommandHandler(CCECBusDevice *busDevice, + int32_t iTransmitTimeout /* = CEC_DEFAULT_TRANSMIT_TIMEOUT */, + int32_t iTransmitWait /* = CEC_DEFAULT_TRANSMIT_WAIT */, + int8_t iTransmitRetries /* = CEC_DEFAULT_TRANSMIT_RETRIES */, + int64_t iActiveSourcePending /* = 0 */) : + CCECCommandHandler(busDevice, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending) { m_vendorId = CEC_VENDOR_TOSHIBA; - CCECBusDevice *primary = m_processor->GetPrimaryDevice(); - - /* imitate Toshiba devices */ - if (primary && m_busDevice->GetLogicalAddress() != primary->GetLogicalAddress()) - { - primary->SetVendorId(CEC_VENDOR_TOSHIBA); - primary->ReplaceHandler(false); - } } bool CRLCommandHandler::InitHandler(void) @@ -58,12 +57,21 @@ bool CRLCommandHandler::InitHandler(void) return true; m_bHandlerInited = true; - if (m_busDevice->GetLogicalAddress() == CECDEVICE_TV) + CCECBusDevice *primary = m_processor->GetPrimaryDevice(); + if (primary && primary->GetLogicalAddress() != CECDEVICE_UNREGISTERED) { - CCECBusDevice *primary = m_processor->GetPrimaryDevice(); + /* imitate Toshiba devices */ + if (m_busDevice->GetLogicalAddress() != primary->GetLogicalAddress()) + { + primary->SetVendorId(CEC_VENDOR_TOSHIBA); + primary->ReplaceHandler(false); + } - /* send the vendor id */ - primary->TransmitVendorID(CECDEVICE_BROADCAST); + if (m_busDevice->GetLogicalAddress() == CECDEVICE_TV) + { + /* send the vendor id */ + primary->TransmitVendorID(CECDEVICE_BROADCAST, false, false); + } } return true;