X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=include%2FCECExportsCpp.h;h=7d70e7fe24c830cf74a36512bf7f316d6a5e0bff;hb=3ab277988a47c251d5ec5f630e5a4e4bfe0ae5dc;hp=f052592b5d034688d376cdd5ac81f23e1e34392e;hpb=b1f5095277970600e999f0ba268b1ea11e778614;p=deb_libcec.git diff --git a/include/CECExportsCpp.h b/include/CECExportsCpp.h index f052592..7d70e7f 100644 --- a/include/CECExportsCpp.h +++ b/include/CECExportsCpp.h @@ -36,12 +36,13 @@ namespace CEC class ICECAdapter { public: + virtual ~ICECAdapter() {}; /*! @name Adapter methods */ //@{ /*! * @see cec_open */ - virtual bool Open(const char *strPort, int iTimeoutMs = 10000) = 0; + virtual bool Open(const char *strPort, uint32_t iTimeoutMs = 10000) = 0; /*! * @see cec_close @@ -51,7 +52,7 @@ namespace CEC /*! * @see cec_find_adapters */ - virtual int FindAdapters(std::vector &deviceList, const char *strDevicePath = NULL) = 0; + virtual int8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL) = 0; /*! * @see cec_ping_adapters @@ -67,12 +68,12 @@ namespace CEC /*! * @see cec_get_min_version */ - virtual int GetMinVersion(void) = 0; + virtual int8_t GetMinVersion(void) = 0; /*! * @see cec_get_lib_version */ - virtual int GetLibVersion(void) = 0; + virtual int8_t GetLibVersion(void) = 0; /*! * @see cec_get_next_log_message @@ -92,7 +93,7 @@ namespace CEC /*! * @see cec_transmit */ - virtual bool Transmit(const cec_frame &data, bool bWaitForAck = true) = 0; + virtual bool Transmit(const cec_command &data, bool bWaitForAck = true) = 0; /*! * @see cec_set_logical_address @@ -122,7 +123,9 @@ namespace CEC }; }; -extern DECLSPEC void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS); +extern DECLSPEC void * CECCreate(const char *strDeviceName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS); + +extern DECLSPEC void CECDestroy(CEC::ICECAdapter *instance); #if !defined(DLL_EXPORT) #if defined(_WIN32) || defined(_WIN64) @@ -135,9 +138,9 @@ static int g_iLibCECInstanceCount = 0; /*! * @see cec_init */ -inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS) +inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS) { - typedef void* (__cdecl*_CreateLibCec)(const char *, uint8_t, uint8_t); + typedef void* (__cdecl*_CreateLibCec)(const char *, uint8_t, uint16_t); _CreateLibCec CreateLibCec; if (!g_libCEC) @@ -149,7 +152,7 @@ inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_addres CreateLibCec = (_CreateLibCec) (GetProcAddress(g_libCEC, "CECCreate")); if (!CreateLibCec) return NULL; - return static_cast< CEC::ICECAdapter* > (CreateLibCec(strName, iLogicalAddress, iPhysicalAddress)); + return static_cast< CEC::ICECAdapter* > (CreateLibCec(strName, (uint8_t) iLogicalAddress, iPhysicalAddress)); } /*! @@ -158,7 +161,11 @@ inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_addres */ inline void UnloadLibCec(CEC::ICECAdapter *device) { - delete device; + typedef void (__cdecl*_DestroyLibCec)(void * device); + _DestroyLibCec DestroyLibCec; + DestroyLibCec = (_DestroyLibCec) (GetProcAddress(g_libCEC, "CECDestroy")); + if (DestroyLibCec) + DestroyLibCec(device); if (--g_iLibCECInstanceCount == 0) { @@ -172,7 +179,7 @@ inline void UnloadLibCec(CEC::ICECAdapter *device) /*! * @see cec_init */ -inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, int iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS) +inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_address iLogicalAddress = CEC::CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS) { return (CEC::ICECAdapter*) CECCreate(strName, iLogicalAddress, iPhysicalAddress); }; @@ -184,7 +191,7 @@ inline CEC::ICECAdapter *LoadLibCec(const char *strName, CEC::cec_logical_addres inline void UnloadLibCec(CEC::ICECAdapter *device) { device->Close(); - delete device; + CECDestroy(device); }; #endif