X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcectypes.h;h=fe8678f6df1d112ffbc04850a92f40234615e4d6;hb=75af24f133bfd316bc69a9b63e190047186f169a;hp=951def42b0f9a6f62514dfa206cd5904bc84ff29;hpb=30b4aac02b90b71baaf1f41bab67cb1c77c4858f;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index 951def4..fe8678f 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -74,7 +74,7 @@ namespace CEC { #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_ACTIVATE_SOURCE 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 @@ -466,15 +466,11 @@ typedef enum cec_user_control_code CEC_USER_CONTROL_CODE_F4_YELLOW = 0x74, CEC_USER_CONTROL_CODE_F5 = 0x75, CEC_USER_CONTROL_CODE_DATA = 0x76, - CEC_USER_CONTROL_CODE_MAX = 0x76, + CEC_USER_CONTROL_CODE_AN_RETURN = 0x91, + CEC_USER_CONTROL_CODE_MAX = 0x91, CEC_USER_CONTROL_CODE_UNKNOWN } cec_user_control_code; -typedef enum cec_an_user_control_code -{ - CEC_AN_USER_CONTROL_CODE_RETURN = 0x91 -} cec_an_user_control_code; - typedef enum cec_logical_address { CECDEVICE_UNKNOWN = -1, //not a valid logical address @@ -907,9 +903,12 @@ typedef struct cec_logical_addresses #endif } cec_logical_addresses; -typedef int (CEC_CDECL* CBCecLogMessageType)(void *param, const CEC::cec_log_message &); +struct libcec_configuration; + +typedef int (CEC_CDECL* CBCecLogMessageType)(void *param, const cec_log_message &); typedef int (CEC_CDECL* CBCecKeyPressType)(void *param, const cec_keypress &); typedef int (CEC_CDECL* CBCecCommandType)(void *param, const cec_command &); +typedef int (CEC_CDECL* CBCecConfigurationChangedType)(void *param, const libcec_configuration &); typedef struct ICECCallbacks { @@ -933,6 +932,13 @@ typedef struct ICECCallbacks * @return 1 when ok, 0 otherwise. */ CBCecCommandType CBCecCommand; + + /*! + * @brief Transfer a changed configuration from libCEC to the client + * @param configuration The configuration to transfer + * @return 1 when ok, 0 otherwise + */ + CBCecConfigurationChangedType CBCecConfigurationChanged; } ICECCallbacks; typedef enum cec_client_version @@ -949,14 +955,14 @@ typedef struct libcec_configuration 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_logical_addresses wakeDevices; /*!< wake these CEC devices when starting libCEC */ + cec_vendor_id tvVendor; /*!< override the vendor ID of the TV. leave this untouched to autodetect */ + cec_logical_addresses wakeDevices; /*!< wake these CEC devices when initialising libCEC or when calling PowerOnDevices() without any parameter */ + cec_logical_addresses powerOffDevices; /*!< power off these devices when calling StandbyDevices() without any parameter */ // 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 bActivateSource; /*!< make libCEC the active source on the bus when starting 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 */ @@ -974,11 +980,17 @@ typedef struct libcec_configuration tvVendor = CEC_VENDOR_UNKNOWN; clientVersion = CEC_CLIENT_VERSION_PRE_1_5; wakeDevices.Clear(); + powerOffDevices.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; + bActivateSource = CEC_DEFAULT_SETTING_ACTIVATE_SOURCE; + #if CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN == 1 + powerOffDevices.Set(CECDEVICE_BROADCAST); + #endif + #if CEC_DEFAULT_SETTING_ACTIVATE_SOURCE == 1 + wakeDevices.Set(CECDEVICE_TV); + #endif bPowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER; bPowerOffOnStandby = CEC_DEFAULT_SETTING_POWER_OFF_ON_STANDBY;