From 1d6f45585e3db317d74dff6fafe8f138752c27d8 Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Wed, 19 Jun 2013 13:12:47 +0200 Subject: [PATCH] silence warning for xx:a0:00:09:b0:00:80:20. bugzid: 2559 --- project/libcec/libcec.vcxproj | 2 + project/libcec/libcec.vcxproj.filters | 6 ++ src/lib/Makefile.am | 3 +- src/lib/devices/CECBusDevice.cpp | 4 ++ src/lib/implementations/RHCommandHandler.cpp | 65 ++++++++++++++++++++ src/lib/implementations/RHCommandHandler.h | 51 +++++++++++++++ 6 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/lib/implementations/RHCommandHandler.cpp create mode 100644 src/lib/implementations/RHCommandHandler.h diff --git a/project/libcec/libcec.vcxproj b/project/libcec/libcec.vcxproj index b8db0b1..9029ed7 100644 --- a/project/libcec/libcec.vcxproj +++ b/project/libcec/libcec.vcxproj @@ -47,6 +47,7 @@ + @@ -93,6 +94,7 @@ + diff --git a/project/libcec/libcec.vcxproj.filters b/project/libcec/libcec.vcxproj.filters index b9e41ed..6f34482 100644 --- a/project/libcec/libcec.vcxproj.filters +++ b/project/libcec/libcec.vcxproj.filters @@ -68,6 +68,9 @@ implementations + + implementations + devices @@ -201,6 +204,9 @@ implementations + + implementations + devices diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 35166f2..cdc1cbd 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -26,7 +26,8 @@ libcec_la_SOURCES = CECProcessor.cpp \ implementations/SLCommandHandler.cpp \ implementations/VLCommandHandler.cpp \ implementations/RLCommandHandler.cpp \ - implementations/PHCommandHandler.cpp + implementations/PHCommandHandler.cpp \ + implementations/RHCommandHandler.cpp ## server sockets, currently unused ##libcec_la_SOURCES += platform/posix/serversocket.cpp diff --git a/src/lib/devices/CECBusDevice.cpp b/src/lib/devices/CECBusDevice.cpp index a2cfbee..25332b3 100644 --- a/src/lib/devices/CECBusDevice.cpp +++ b/src/lib/devices/CECBusDevice.cpp @@ -41,6 +41,7 @@ #include "lib/implementations/VLCommandHandler.h" #include "lib/implementations/PHCommandHandler.h" #include "lib/implementations/RLCommandHandler.h" +#include "lib/implementations/RHCommandHandler.h" #include "lib/LibCEC.h" #include "lib/CECTypeUtils.h" #include "lib/platform/util/timeutils.h" @@ -141,6 +142,9 @@ bool CCECBusDevice::ReplaceHandler(bool bActivateSource /* = true */) case CEC_VENDOR_TOSHIBA2: m_handler = new CRLCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); break; + case CEC_VENDOR_ONKYO: + m_handler = new CRHCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); + break; default: m_handler = new CCECCommandHandler(this, iTransmitTimeout, iTransmitWait, iTransmitRetries, iActiveSourcePending); break; diff --git a/src/lib/implementations/RHCommandHandler.cpp b/src/lib/implementations/RHCommandHandler.cpp new file mode 100644 index 0000000..66c9065 --- /dev/null +++ b/src/lib/implementations/RHCommandHandler.cpp @@ -0,0 +1,65 @@ +/* + * This file is part of the libCEC(R) library. + * + * 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. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ + */ + +#include "env.h" +#include "RHCommandHandler.h" + +#include "lib/devices/CECBusDevice.h" +#include "lib/CECProcessor.h" +#include "lib/LibCEC.h" +#include "lib/CECClient.h" + +using namespace CEC; + +#define LIB_CEC m_busDevice->GetProcessor()->GetLib() +#define ToString(p) LIB_CEC->ToString(p) + +CRHCommandHandler::CRHCommandHandler(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_ONKYO; +} + +int CRHCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &command) +{ + // onkyo's vendor id + if (command.parameters[0] == 0x00 && command.parameters[1] == 0x09 && command.parameters[2] == 0xb0) + { + // ignore unknown vendor commands sent by onkyo devices, bugzid: 2559 + } + return CEC_ABORT_REASON_INVALID_OPERAND; + +} diff --git a/src/lib/implementations/RHCommandHandler.h b/src/lib/implementations/RHCommandHandler.h new file mode 100644 index 0000000..1992262 --- /dev/null +++ b/src/lib/implementations/RHCommandHandler.h @@ -0,0 +1,51 @@ +#pragma once +/* + * This file is part of the libCEC(R) library. + * + * 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. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ + */ + +#include "CECCommandHandler.h" + +namespace CEC +{ + class CRHCommandHandler : public CCECCommandHandler + { + public: + CRHCommandHandler(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); + virtual ~CRHCommandHandler(void) {}; + + protected: + int HandleDeviceVendorCommandWithId(const cec_command &command); + }; +}; -- 2.34.1