X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcectypes.h;h=1adf2fd6cd871aeb8ed11d4d0605faa22f10e117;hb=f2b8f0c0c5f78765d550e8bc7b8681f0b4276482;hp=d8376206f31d442dfb6957aa9796e48eda0a77c6;hpb=e9654a0e343790159462527352a50f584590d062;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index d837620..1adf2fd 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -73,6 +73,12 @@ namespace CEC { #define CEC_POWER_STATE_REFRESH_TIME 30000 #define CEC_FW_VERSION_UNKNOWN 0xFFFF +#define CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE 1 +#define CEC_DEFAULT_SETTING_POWER_ON_STARTUP 1 +#define CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN 1 +#define CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER 1 +#define CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY 1 + #define CEC_DEFAULT_TRANSMIT_RETRY_WAIT 500 #define CEC_DEFAULT_TRANSMIT_TIMEOUT 1000 #define CEC_DEFAULT_TRANSMIT_WAIT 2000 @@ -904,6 +910,59 @@ typedef struct ICECCallbacks CBCecCommandType CBCecCommand; } ICECCallbacks; +typedef enum cec_client_version +{ + CEC_CLIENT_VERSION_PRE_1_5 = 0, + CEC_CLIENT_VERSION_1_5_0 = 1 +} cec_client_version; + +typedef struct libcec_configuration +{ + char strDeviceName[13]; /*!< how to name the device on the CEC bus */ + cec_device_type_list deviceTypes; /*!< the CEC device types to emulate */ + uint16_t iPhysicalAddress; /*!< the physical address of the CEC adapter */ + cec_logical_address baseDevice; /*!< the logical address of the device to which the adapter is connected. only used when iPhysicalAddress = 0 */ + uint8_t iHDMIPort; /*!< the HDMI port to which the adapter is connected. only used when iPhysicalAddress = 0 */ + cec_vendor_id tvVendor; /*!< the vendor ID of the TV. leave this untouched to autodetect */ + cec_client_version clientVersion; /*!< the version of the client that is connecting */ + cec_logical_addresses wakeDevices; /*!< wake these CEC devices when starting libCEC */ + + // player specific settings + uint8_t bGetSettingsFromROM; /*!< true to get the settings from the ROM (if set, and a v2 ROM is present), false to use these settings. */ + uint8_t bUseTVMenuLanguage; /*!< use the menu language of the TV in the player application */ + uint8_t bPowerOnStartup; /*!< power on CEC devices when start the player application */ + uint8_t bPowerOffShutdown; /*!< power off CEC devices when stopping the player application */ + uint8_t bPowerOffScreensaver; /*!< put devices in standby mode when activating the screensaver */ + uint8_t bPowerOffOnStandby; /*!< put this PC in standby mode when the TV is switched off */ + + void * callbackParam; /*!< the object to pass along with a call of the callback methods. NULL to ignore */ + ICECCallbacks * callbacks; /*!< the callback methods to use. set this to NULL when not using callbacks */ + +#ifdef __cplusplus + void Clear(void) + { + memset(strDeviceName, 0, 13); + deviceTypes.clear(); + iPhysicalAddress = 0; + baseDevice = (cec_logical_address)CEC_DEFAULT_BASE_DEVICE; + iHDMIPort = CEC_DEFAULT_HDMI_PORT; + tvVendor = CEC_VENDOR_UNKNOWN; + clientVersion = CEC_CLIENT_VERSION_PRE_1_5; + wakeDevices.Clear(); + + bGetSettingsFromROM = 0; + bUseTVMenuLanguage = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE; + bPowerOnStartup = CEC_DEFAULT_SETTING_POWER_ON_STARTUP; + bPowerOffShutdown = CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN; + bPowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER; + bPowerOffOnStandby = CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY; + + callbackParam = NULL; + callbacks = NULL; + } +#endif +} libcec_configuration; + #ifdef UNUSED #elif defined(__GNUC__) #define UNUSED(x) UNUSED_ ## x __attribute__((unused))