cec: fix win32 compilation (new parameter)
[deb_libcec.git] / include / cectypes.h
index 3b81bdce41444c62a2b8280da875856e88e1b779..ce09d8383e37f7a82e0dadb632a904fa810101e8 100644 (file)
 #include <stdint.h>
 #include <string.h>
 
+#if defined(_WIN32) || defined(_WIN64)
+#define CEC_CDECL    __cdecl
+#else
+#define CEC_CDECL
+#endif
+
 #if !defined(DECLSPEC)
 #if defined(_WIN32) || defined(_WIN64)
 #include <windows.h>
@@ -866,29 +872,34 @@ typedef struct cec_logical_addresses
 #endif
 } cec_logical_addresses;
 
-struct ICECCallbacks
+
+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.
    */
-  int (*CecLogMessage)(const cec_log_message &message);
+  CBCecLogMessageType CBCecLogMessage;
 
   /*!
    * @brief Transfer a keypress from libCEC to the client.
    * @param key The keypress to transfer.
    * @return 1 when ok, 0 otherwise.
    */
-  int (*CecKeyPress)(const cec_keypress &key);
+  CBCecKeyPressType CBCecKeyPress;
 
   /*!
    * @brief Transfer a CEC command from libCEC to the client.
    * @param command The command to transfer.
    * @return 1 when ok, 0 otherwise.
    */
-  int (*CecCommand)(const cec_command &command);
-};
+  CBCecCommandType CBCecCommand;
+} ICECCallbacks;
 
 #ifdef UNUSED
 #elif defined(__GNUC__)