X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fcectypes.h;h=ba21200fece893f93d0c13cde4be1f56d6ca5828;hb=1fe867c5130bfa2aa5b25425e288350f5e1ca4fd;hp=10f8a566862c4dfa1e6de4efa67337140b9b1984;hpb=1a87cacc08dda28c8f4c42a20bd7fdbe12364bf6;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index 10f8a56..ba21200 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -37,6 +37,12 @@ #include #include +#if defined(_WIN32) || defined(_WIN64) +#define CEC_CDECL __cdecl +#else +#define CEC_CDECL +#endif + #if !defined(DECLSPEC) #if defined(_WIN32) || defined(_WIN64) #include @@ -72,7 +78,7 @@ namespace CEC { #define CEC_MIN_LIB_VERSION 1 #define CEC_LIB_VERSION_MAJOR 1 -#define CEC_LIB_VERSION_MINOR 3 +#define CEC_LIB_VERSION_MINOR 4 typedef enum cec_abort_reason { @@ -866,6 +872,35 @@ typedef struct cec_logical_addresses #endif } cec_logical_addresses; + +typedef int (CEC_CDECL* CBCecLogMessageType)(void *param, const CEC::cec_log_message &); +typedef int (CEC_CDECL* CBCecKeyPressType)(void *param, const cec_keypress &key); +typedef int (CEC_CDECL* CBCecCommandType)(void *param, const cec_command &command); + +typedef struct ICECCallbacks +{ + /*! + * @brief Transfer a log message from libCEC to the client. + * @param message The message to transfer. + * @return 1 when ok, 0 otherwise. + */ + CBCecLogMessageType CBCecLogMessage; + + /*! + * @brief Transfer a keypress from libCEC to the client. + * @param key The keypress to transfer. + * @return 1 when ok, 0 otherwise. + */ + CBCecKeyPressType CBCecKeyPress; + + /*! + * @brief Transfer a CEC command from libCEC to the client. + * @param command The command to transfer. + * @return 1 when ok, 0 otherwise. + */ + CBCecCommandType CBCecCommand; +} ICECCallbacks; + #ifdef UNUSED #elif defined(__GNUC__) #define UNUSED(x) UNUSED_ ## x __attribute__((unused))