X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FRPi%2FRPiCECAdapterCommunication.h;h=e6a644645ec210fa6b3633a0ec4b2e4d7aef0a2a;hb=f9c4a2de412487b78c333dc21d9b7e41a5fe69e3;hp=530aec105b8a1923afd317891258c7b577443d24;hpb=f8edb2973d37f3ebfd08291f28be5435d0cf8f64;p=deb_libcec.git diff --git a/src/lib/adapter/RPi/RPiCECAdapterCommunication.h b/src/lib/adapter/RPi/RPiCECAdapterCommunication.h index 530aec1..e6a6446 100644 --- a/src/lib/adapter/RPi/RPiCECAdapterCommunication.h +++ b/src/lib/adapter/RPi/RPiCECAdapterCommunication.h @@ -2,7 +2,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. @@ -31,10 +31,14 @@ * http://www.pulse-eight.net/ */ +#include "env.h" #if defined(HAVE_RPI_API) #include "lib/adapter/AdapterCommunication.h" -#include "lib/platform/threads/mutex.h" +#include "lib/platform/threads/threads.h" + +#define RPI_ADAPTER_VID 0x2708 +#define RPI_ADAPTER_PID 0x1001 extern "C" { #include @@ -78,17 +82,22 @@ namespace CEC bool SetControlledMode(bool UNUSED(controlled)) { return true; }; cec_vendor_id GetVendorId(void) { return CEC_VENDOR_BROADCOM; } bool SupportsSourceLogicalAddress(const cec_logical_address address) { return address > CECDEVICE_TV && address < CECDEVICE_BROADCAST; } + cec_adapter_type GetAdapterType(void) { return ADAPTERTYPE_RPI; }; + uint16_t GetAdapterVendorId(void) const { return RPI_ADAPTER_VID; } + uint16_t GetAdapterProductId(void) const { return RPI_ADAPTER_PID; } + void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {} ///} bool IsInitialised(void); void OnDataReceived(uint32_t p0, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4); + void OnTVServiceCallback(uint32_t reason, uint32_t p0, uint32_t p1); static void InitHost(void); private: cec_logical_address GetLogicalAddress(void); bool UnregisterLogicalAddress(void); - bool RegisterLogicalAddress(const cec_logical_address address); + bool RegisterLogicalAddress(const cec_logical_address address, uint32_t iTimeoutMs = CEC_DEFAULT_CONNECT_TIMEOUT); int InitHostCEC(void); bool m_bInitialised; /**< true when the connection is initialised, false otherwise */ @@ -101,6 +110,8 @@ namespace CEC PLATFORM::CMutex m_mutex; VCHI_INSTANCE_T m_vchi_instance; VCHI_CONNECTION_T * m_vchi_connection; + cec_logical_address m_previousLogicalAddress; + bool m_bLogicalAddressRegistered; }; };