silence warning for xx:a0:00:09:b0:00:80:20. bugzid: 2559
authorLars Op den Kamp <lars@opdenkamp.eu>
Wed, 19 Jun 2013 11:12:47 +0000 (13:12 +0200)
committerLars Op den Kamp <lars@opdenkamp.eu>
Wed, 19 Jun 2013 11:12:47 +0000 (13:12 +0200)
project/libcec/libcec.vcxproj
project/libcec/libcec.vcxproj.filters
src/lib/Makefile.am
src/lib/devices/CECBusDevice.cpp
src/lib/implementations/RHCommandHandler.cpp [new file with mode: 0644]
src/lib/implementations/RHCommandHandler.h [new file with mode: 0644]

index b8db0b1366f7a436291396a3b505b026f0f9a279..9029ed7967e3bff2fe52dc13ffc9d59608d1399f 100644 (file)
@@ -47,6 +47,7 @@
     <ClInclude Include="..\..\src\lib\implementations\RLCommandHandler.h" />
     <ClInclude Include="..\..\src\lib\implementations\SLCommandHandler.h" />
     <ClInclude Include="..\..\src\lib\implementations\VLCommandHandler.h" />
+    <ClInclude Include="..\..\src\lib\implementations\RHCommandHandler.h" />
     <ClInclude Include="..\..\src\lib\LibCEC.h" />
     <ClInclude Include="..\..\src\lib\platform\adl\adl-edid.h" />
     <ClInclude Include="..\..\src\lib\platform\adl\adl_defines.h" />
@@ -93,6 +94,7 @@
     <ClCompile Include="..\..\src\lib\implementations\RLCommandHandler.cpp" />
     <ClCompile Include="..\..\src\lib\implementations\SLCommandHandler.cpp" />
     <ClCompile Include="..\..\src\lib\implementations\VLCommandHandler.cpp" />
+    <ClCompile Include="..\..\src\lib\implementations\RHCommandHandler.cpp" />
     <ClCompile Include="..\..\src\lib\LibCEC.cpp" />
     <ClCompile Include="..\..\src\lib\LibCECC.cpp" />
     <ClCompile Include="..\..\src\lib\LibCECDll.cpp" />
index b9e41ed1a4d96b407495f927d4338bd2d8e05787..6f344829a8b90d09d5996f09aa6684549a789d27 100644 (file)
@@ -68,6 +68,9 @@
     <ClInclude Include="..\..\src\lib\implementations\VLCommandHandler.h">
       <Filter>implementations</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\lib\implementations\RHCommandHandler.h">
+      <Filter>implementations</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\lib\devices\CECAudioSystem.h">
       <Filter>devices</Filter>
     </ClInclude>
     <ClCompile Include="..\..\src\lib\implementations\VLCommandHandler.cpp">
       <Filter>implementations</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\lib\implementations\RHCommandHandler.cpp">
+      <Filter>implementations</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\lib\devices\CECAudioSystem.cpp">
       <Filter>devices</Filter>
     </ClCompile>
index 35166f2d584026444d585846caa9a31d30a9032a..cdc1cbd9279aa860181de522094e716a184fd782 100644 (file)
@@ -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
index a2cfbee65da002f306f7c74961871ca87065ba0b..25332b33dad1478bc2ec67358ba5ff881fefc76e 100644 (file)
@@ -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 (file)
index 0000000..66c9065
--- /dev/null
@@ -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       <license@pulse-eight.com>
+ *     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 (file)
index 0000000..1992262
--- /dev/null
@@ -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       <license@pulse-eight.com>
+ *     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);
+  };
+};