X-Git-Url: https://git.piment-noir.org/?p=deb_libcec.git;a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FVLCommandHandler.cpp;h=907de02dda786e69892d4419613bb619cbc00e6e;hp=f57925b80fc87247f959d8fd50474e127dddc088;hb=9382b58c7f7bb023eec1122bd149e772257dfb96;hpb=600d5e54c86d494933fac1fe4a9b2826b8008280 diff --git a/src/lib/implementations/VLCommandHandler.cpp b/src/lib/implementations/VLCommandHandler.cpp index f57925b..907de02 100644 --- a/src/lib/implementations/VLCommandHandler.cpp +++ b/src/lib/implementations/VLCommandHandler.cpp @@ -1,7 +1,7 @@ /* * This file is part of the libCEC(R) library. * - * libCEC(R) is Copyright (C) 2011-2012 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. @@ -76,6 +76,14 @@ bool CVLCommandHandler::InitHandler(void) { if (primary && m_busDevice->GetLogicalAddress() != primary->GetLogicalAddress()) { + libcec_configuration config; + m_processor->GetPrimaryClient()->GetCurrentConfiguration(config); + if (config.iDoubleTapTimeoutMs == 0) + { + config.iDoubleTapTimeoutMs = CEC_DOUBLE_TAP_TIMEOUT_MS; + m_processor->GetPrimaryClient()->SetConfiguration(config); + } + primary->SetVendorId(CEC_VENDOR_PANASONIC); primary->ReplaceHandler(false); } @@ -98,11 +106,12 @@ int CVLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &comman command.parameters[2] != 0x45) return CEC_ABORT_REASON_INVALID_OPERAND; - // XXX this is also sent when the TV is powered off -#if 0 if (command.initiator == CECDEVICE_TV && command.parameters.At(3) == VL_UNKNOWN1) { + // XXX this is also sent when the TV is powered off + // TODO power up sends 06:05. check whether this is also sent on power off +#if 0 // set the power up event time { CLockObject lock(m_mutex); @@ -111,10 +120,10 @@ int CVLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &comman } // mark the TV as powered on m_processor->GetTV()->SetPowerStatus(CEC_POWER_STATUS_ON); - } - else #endif - if (command.initiator == CECDEVICE_TV && + return COMMAND_HANDLED; + } + else if (command.initiator == CECDEVICE_TV && command.destination == CECDEVICE_BROADCAST && command.parameters.At(3) == VL_POWER_CHANGE) {