From 28089abcc287456abfa31081b7978eced6e4a660 Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Thu, 10 Nov 2011 18:30:00 +0100 Subject: [PATCH] cec: moved TransmitDeckStatus() to CCECPlaybackDevice --- src/lib/devices/CECBusDevice.cpp | 11 ----------- src/lib/devices/CECBusDevice.h | 1 - src/lib/devices/CECPlaybackDevice.cpp | 15 ++++++++++++++- src/lib/devices/CECPlaybackDevice.h | 2 ++ src/lib/implementations/CECCommandHandler.cpp | 5 +++-- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index e061619..640534d 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -436,17 +436,6 @@ bool CCECBusDevice::TransmitCECVersion(cec_logical_address dest) return m_processor->Transmit(command); } -bool CCECBusDevice::TransmitDeckStatus(cec_logical_address dest) -{ - // need to support opcodes play and deck control before doing anything with this - CStdString strLog; - strLog.Format("<< %s (%X) -> %s (%X): deck status feature abort", GetLogicalAddressName(), m_iLogicalAddress, CCECCommandHandler::ToString(dest), dest); - AddLog(CEC_LOG_NOTICE, strLog); - - m_processor->TransmitAbort(dest, CEC_OPCODE_GIVE_DECK_STATUS); - return false; -} - bool CCECBusDevice::TransmitInactiveView(void) { CStdString strLog; diff --git a/src/lib/devices/CECBusDevice.h b/src/lib/devices/CECBusDevice.h index 0402648..6e59967 100644 --- a/src/lib/devices/CECBusDevice.h +++ b/src/lib/devices/CECBusDevice.h @@ -83,7 +83,6 @@ namespace CEC virtual bool TransmitActiveSource(void); virtual bool TransmitActiveView(void); virtual bool TransmitCECVersion(cec_logical_address dest); - virtual bool TransmitDeckStatus(cec_logical_address dest); virtual bool TransmitInactiveView(void); virtual bool TransmitMenuState(cec_logical_address dest); virtual bool TransmitOSDName(cec_logical_address dest); diff --git a/src/lib/devices/CECPlaybackDevice.cpp b/src/lib/devices/CECPlaybackDevice.cpp index 17ef319..d96d5c9 100644 --- a/src/lib/devices/CECPlaybackDevice.cpp +++ b/src/lib/devices/CECPlaybackDevice.cpp @@ -31,11 +31,24 @@ */ #include "CECPlaybackDevice.h" +#include "../implementations/CECCommandHandler.h" +#include "../CECProcessor.h" using namespace CEC; CCECPlaybackDevice::CCECPlaybackDevice(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress /* = 0 */) : CCECBusDevice(processor, address, iPhysicalAddress) { - m_type = CEC_DEVICE_TYPE_PLAYBACK_DEVICE; + m_type = CEC_DEVICE_TYPE_PLAYBACK_DEVICE; +} + +bool CCECPlaybackDevice::TransmitDeckStatus(cec_logical_address dest) +{ + // need to support opcodes play and deck control before doing anything with this + CStdString strLog; + strLog.Format("<< %s (%X) -> %s (%X): deck status feature abort", GetLogicalAddressName(), m_iLogicalAddress, CCECCommandHandler::ToString(dest), dest); + AddLog(CEC_LOG_NOTICE, strLog); + + m_processor->TransmitAbort(dest, CEC_OPCODE_GIVE_DECK_STATUS); + return false; } diff --git a/src/lib/devices/CECPlaybackDevice.h b/src/lib/devices/CECPlaybackDevice.h index 2b13508..1af9485 100644 --- a/src/lib/devices/CECPlaybackDevice.h +++ b/src/lib/devices/CECPlaybackDevice.h @@ -40,5 +40,7 @@ namespace CEC public: CCECPlaybackDevice(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress = 0); virtual ~CCECPlaybackDevice(void) {}; + + virtual bool TransmitDeckStatus(cec_logical_address dest); }; } diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index bc345a4..2f6dd69 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -33,6 +33,7 @@ #include "CECCommandHandler.h" #include "../devices/CECBusDevice.h" #include "../devices/CECAudioSystem.h" +#include "../devices/CECPlaybackDevice.h" #include "../CECProcessor.h" using namespace CEC; @@ -210,8 +211,8 @@ bool CCECCommandHandler::HandleGiveAudioStatus(const cec_command &command) bool CCECCommandHandler::HandleGiveDeckStatus(const cec_command &command) { CCECBusDevice *device = GetDevice(command.destination); - if (device) - return device->TransmitDeckStatus(command.initiator); + if (device && device->GetType() == CEC_DEVICE_TYPE_PLAYBACK_DEVICE) + return ((CCECPlaybackDevice *) device)->TransmitDeckStatus(command.initiator); return false; } -- 2.34.1