* http://www.pulse-eight.net/
*/
+#include "env.h"
#if defined(HAVE_RPI_API)
#include "lib/adapter/AdapterCommunication.h"
#include "lib/platform/threads/threads.h"
+#define RPI_ADAPTER_VID 0x2708
+#define RPI_ADAPTER_PID 0x1001
+
extern "C" {
#include <interface/vmcs_host/vc_cecservice.h>
#include <interface/vchiq_arm/vchiq_if.h>
namespace CEC
{
class CRPiCECAdapterMessageQueue;
- class CRPiCECAdapterCommunication;
-
- class CRPiCECAdapterFindNewLogicalAddress : public PLATFORM::CThread
- {
- public:
- CRPiCECAdapterFindNewLogicalAddress(CRPiCECAdapterCommunication* communication, const cec_logical_address address);
- void *Process(void);
- private:
- CRPiCECAdapterCommunication* m_communication;
- cec_logical_address m_address;
- };
class CRPiCECAdapterCommunication : public IAdapterCommunication
{
- friend class CRPiCECAdapterFindNewLogicalAddress;
-
public:
/*!
* @brief Create a new USB-CEC communication handler.
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);
PLATFORM::CMutex m_mutex;
VCHI_INSTANCE_T m_vchi_instance;
VCHI_CONNECTION_T * m_vchi_connection;
- CRPiCECAdapterFindNewLogicalAddress* m_laLost;
+ cec_logical_address m_previousLogicalAddress;
+ bool m_bLogicalAddressRegistered;
};
};