X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcectypes.h;h=b8ae24dda13e70102fe705b9534d7603a72af50c;hb=dd4ace4fb38ecd5c24f94bd590572bbd9660d12c;hp=bc661a8d2d7e1840462af64357337a02cb4de8ec;hpb=f8ae32954754d261552c2c11a6a9055f02d61bba;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index bc661a8..b8ae24d 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -57,15 +57,22 @@ namespace CEC { //default physical address 1.0.0.0, HDMI port 1 #define CEC_DEFAULT_PHYSICAL_ADDRESS 0x1000 +#define CEC_DEFAULT_HDMI_PORT 1 +#define CEC_DEFAULT_BASE_DEVICE 0 #define MSGSTART 0xFF #define MSGEND 0xFE #define MSGESC 0xFD #define ESCOFFSET 3 #define CEC_BUTTON_TIMEOUT 500 +#define CEC_POWER_STATE_REFRESH_TIME 30000 + +#define CEC_DEFAULT_TRANSMIT_TIMEOUT 1000 +#define CEC_DEFAULT_TRANSMIT_WAIT 2000 +#define CEC_DEFAULT_TRANSMIT_RETRIES 1 #define CEC_MIN_LIB_VERSION 1 #define CEC_LIB_VERSION_MAJOR 1 -#define CEC_LIB_VERSION_MINOR 2 +#define CEC_LIB_VERSION_MINOR 3 typedef enum cec_abort_reason { @@ -152,7 +159,8 @@ typedef enum cec_deck_info CEC_DECK_INFO_SKIP_REVERSE_REWIND = 0x1C, CEC_DECK_INFO_INDEX_SEARCH_FORWARD = 0x1D, CEC_DECK_INFO_INDEX_SEARCH_REVERSE = 0x1E, - CEC_DECK_INFO_OTHER_STATUS = 0x1F + CEC_DECK_INFO_OTHER_STATUS = 0x1F, + CEC_DECK_INFO_OTHER_STATUS_LG = 0x20 } cec_deck_info; typedef enum cec_device_type @@ -592,11 +600,14 @@ typedef enum cec_bus_device_status typedef enum cec_vendor_id { - CEC_VENDOR_SAMSUNG = 0x00F0, - CEC_VENDOR_LG = 0xE091, - CEC_VENDOR_PANASONIC = 0x8045, - CEC_VENDOR_PIONEER = 0xE036, - CEC_VENDOR_ONKYO = 0x09B0, + CEC_VENDOR_SAMSUNG = 0x0000F0, + CEC_VENDOR_LG = 0x00E091, + CEC_VENDOR_PANASONIC = 0x008045, + CEC_VENDOR_PIONEER = 0x00E036, + CEC_VENDOR_ONKYO = 0x0009B0, + CEC_VENDOR_YAMAHA = 0x00A0DE, + CEC_VENDOR_PHILIPS = 0x00903E, + CEC_VENDOR_SONY = 0x080046, CEC_VENDOR_UNKNOWN = 0 } cec_vendor_id; @@ -606,6 +617,12 @@ typedef struct cec_menu_language cec_logical_address device; } cec_menu_language; +typedef struct cec_osd_name +{ + char name[14]; + cec_logical_address device; +} cec_osd_name; + typedef struct cec_log_message { char message[1024]; @@ -700,11 +717,12 @@ typedef struct cec_command return *this; } - static void Format(cec_command &command, cec_logical_address initiator, cec_logical_address destination, cec_opcode opcode) + static void Format(cec_command &command, cec_logical_address initiator, cec_logical_address destination, cec_opcode opcode, int32_t timeout = CEC_DEFAULT_TRANSMIT_TIMEOUT) { command.Clear(); - command.initiator = initiator; - command.destination = destination; + command.initiator = initiator; + command.destination = destination; + command.transmit_timeout = timeout; if (opcode != CEC_OPCODE_NONE) { command.opcode = opcode; @@ -736,7 +754,7 @@ typedef struct cec_command eom = 0; opcode_set = 0; opcode = CEC_OPCODE_FEATURE_ABORT; - transmit_timeout = 1000; + transmit_timeout = CEC_DEFAULT_TRANSMIT_TIMEOUT; parameters.Clear(); }; #endif @@ -848,6 +866,43 @@ typedef struct cec_logical_addresses #endif } cec_logical_addresses; +typedef int (__cdecl *CBCecLogMessageType)(const CEC::cec_log_message &); +typedef int (__cdecl* CBCecKeyPressType)(const cec_keypress &key); +typedef int (__cdecl* CBCecCommandType)(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)) +#elif defined(__LCLINT__) +#define UNUSED(x) /*@unused@*/ x +#else +#define UNUSED(x) x +#endif + #ifdef __cplusplus }; };