X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2FCECExportsCpp.h;h=34905735ea63a3931fde9925cc20bccf564b2f2c;hb=88c05b08388985d752f86ed1451a20e9f4f3e22c;hp=ec69a4bb8e946bb7e8c4a2643a901eff6c470fff;hpb=bcd03b376090dafc233889bbf7405221d1a37cb0;p=deb_libcec.git diff --git a/include/CECExportsCpp.h b/include/CECExportsCpp.h index ec69a4b..3490573 100644 --- a/include/CECExportsCpp.h +++ b/include/CECExportsCpp.h @@ -33,53 +33,46 @@ namespace CEC { - class ICECDevice + class ICECAdapter { public: + /*! @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_find_devices + * @see cec_close */ - virtual int FindDevices(std::vector &deviceList, const char *strDevicePath = NULL) = 0; + virtual void Close(void) = 0; /*! - * @see cec_ping + * @see cec_find_adapters */ - virtual bool Ping(void) = 0; + virtual int8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL) = 0; /*! - * @see cec_start_bootloader - */ - virtual bool StartBootloader(void) = 0; - - /*! - * @see cec_power_off_devices - */ - virtual bool PowerOffDevices(cec_logical_address address = CECDEVICE_BROADCAST) = 0; - - /*! - * @see cec_power_on_devices + * @see cec_ping_adapters */ - virtual bool PowerOnDevices(cec_logical_address address = CECDEVICE_BROADCAST) = 0; + virtual bool PingAdapter(void) = 0; /*! - * @see cec_standby_devices + * @see cec_start_bootloader */ - virtual bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST) = 0; + virtual bool StartBootloader(void) = 0; + //@} /*! - * @see cec_set_active_view + * @see cec_get_min_version */ - virtual bool SetActiveView(void) = 0; + virtual int8_t GetMinVersion(void) = 0; /*! - * @see cec_set_inactive_view + * @see cec_get_lib_version */ - virtual bool SetInactiveView(void) = 0; + virtual int8_t GetLibVersion(void) = 0; /*! * @see cec_get_next_log_message @@ -91,10 +84,15 @@ namespace CEC */ virtual bool GetNextKeypress(cec_keypress *key) = 0; + /*! + * @see cec_get_next_command + */ + virtual bool GetNextCommand(cec_command *command) = 0; + /*! * @see cec_transmit */ - virtual bool Transmit(const cec_frame &data, bool bWaitForAck = true, int64_t iTimeout = (int64_t) 5000) = 0; + virtual bool Transmit(const cec_frame &data, bool bWaitForAck = true) = 0; /*! * @see cec_set_logical_address @@ -102,23 +100,31 @@ namespace CEC virtual bool SetLogicalAddress(cec_logical_address iLogicalAddress) = 0; /*! - * @deprecated use SetLogicalAddress() instead + * @see cec_power_on_devices */ - virtual bool SetAckMask(uint16_t iMask) = 0; + virtual bool PowerOnDevices(cec_logical_address address = CECDEVICE_TV) = 0; /*! - * @see cec_get_min_version + * @see cec_standby_devices */ - virtual int GetMinVersion(void) = 0; + virtual bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST) = 0; /*! - * @see cec_get_lib_version + * @see cec_set_active_view */ - virtual int GetLibVersion(void) = 0; + virtual bool SetActiveView(void) = 0; + + /*! + * @see cec_set_inactive_view + */ + virtual bool SetInactiveView(void) = 0; + }; }; -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) @@ -131,9 +137,9 @@ static int g_iLibCECInstanceCount = 0; /*! * @see cec_init */ -inline CEC::ICECDevice *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) @@ -145,16 +151,20 @@ inline CEC::ICECDevice *LoadLibCec(const char *strName, CEC::cec_logical_address CreateLibCec = (_CreateLibCec) (GetProcAddress(g_libCEC, "CECCreate")); if (!CreateLibCec) return NULL; - return static_cast< CEC::ICECDevice* > (CreateLibCec(strName, iLogicalAddress, iPhysicalAddress)); + return static_cast< CEC::ICECAdapter* > (CreateLibCec(strName, (uint8_t) iLogicalAddress, iPhysicalAddress)); } /*! * @brief Unload the given libcec instance. * @param device The instance to unload. */ -inline void UnloadLibCec(CEC::ICECDevice *device) +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) { @@ -168,18 +178,19 @@ inline void UnloadLibCec(CEC::ICECDevice *device) /*! * @see cec_init */ -inline CEC::ICECDevice *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::ICECDevice*) CECCreate(strName, iLogicalAddress, iPhysicalAddress); + return (CEC::ICECAdapter*) CECCreate(strName, iLogicalAddress, iPhysicalAddress); }; /*! * @brief Unload the given libcec instance. * @param device The instance to unload. */ -inline void UnloadLibCec(CEC::ICECDevice *device) +inline void UnloadLibCec(CEC::ICECAdapter *device) { - delete device; + device->Close(); + CECDestroy(device); }; #endif