X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fcectypes.h;h=ca065c606051ade2507c39ab669db40004d4a308;hb=14b59e255bb7c4bd118f2635538fca6a89db558f;hp=6de565d2fb4c37e8402cf26a70d046f787c4200a;hpb=b32ffd87ed707124e700477e8b2a10f6132de2c8;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index 6de565d..ca065c6 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -72,11 +72,22 @@ namespace CEC { #define CEC_BUTTON_TIMEOUT 500 #define CEC_POWER_STATE_REFRESH_TIME 30000 #define CEC_FW_VERSION_UNKNOWN 0xFFFF +#define CEC_FW_BUILD_UNKNOWN 0 #define CEC_CONNECT_TRIES 3 + #define CEC_PHYSICAL_ADDRESS_TV 0 +#define CEC_MIN_PHYSICAL_ADDRESS 0x1000 #define CEC_MAX_PHYSICAL_ADDRESS 0xFFFE #define CEC_INVALID_PHYSICAL_ADDRESS 0xFFFF +#define CEC_MIN_VENDORID 1 +#define CEC_MAX_VENDORID 0xFFFFFE +#define CEC_INVALID_VENDORID 0xFFFFFF + +#define CEC_MIN_HDMI_PORTNUMBER 1 +#define CEC_MAX_HDMI_PORTNUMBER 15 +#define CEC_HDMI_PORTNUMBER_NONE 0 + #define CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE 1 #define CEC_DEFAULT_SETTING_ACTIVATE_SOURCE 1 #define CEC_DEFAULT_SETTING_POWER_OFF_SHUTDOWN 1 @@ -86,11 +97,12 @@ namespace CEC { #define CEC_DEFAULT_SETTING_SEND_INACTIVE_SOURCE 1 #define CEC_DEFAULT_SETTING_POWER_OFF_DEVICES_STANDBY 1 #define CEC_DEFAULT_DEVICE_LANGUAGE "eng" -#define CEC_DEFAULT_FIRMWARE_BUILD_DATE 0 +#define CEC_DEFAULT_SETTING_AUTODETECT_ADDRESS 1 +#define CEC_DEFAULT_SETTING_GET_SETTINGS_FROM_ROM 0 #define CEC_DEFAULT_TRANSMIT_RETRY_WAIT 500 #define CEC_DEFAULT_TRANSMIT_TIMEOUT 1000 -#define CEC_DEFAULT_TRANSMIT_WAIT 2000 +#define CEC_DEFAULT_TRANSMIT_WAIT 1000 #define CEC_DEFAULT_TRANSMIT_RETRIES 1 #define CEC_DEFAULT_CONNECT_TIMEOUT 10000 @@ -1218,19 +1230,54 @@ typedef struct libcec_configuration libcec_configuration(void) { Clear(); } ~libcec_configuration(void) { Clear(); } + bool operator==(const libcec_configuration &other) const + { + return ( clientVersion == other.clientVersion && + !strncmp(strDeviceName, other.strDeviceName, 13) && + deviceTypes == other.deviceTypes && + bAutodetectAddress == other.bAutodetectAddress && + iPhysicalAddress == other.iPhysicalAddress && + baseDevice == other.baseDevice && + iHDMIPort == other.iHDMIPort && + tvVendor == other.tvVendor && + wakeDevices == other.wakeDevices && + powerOffDevices == other.powerOffDevices && + serverVersion == other.serverVersion && + bGetSettingsFromROM == other.bGetSettingsFromROM && + bUseTVMenuLanguage == other.bUseTVMenuLanguage && + bActivateSource == other.bActivateSource && + bPowerOffScreensaver == other.bPowerOffScreensaver && + bPowerOffOnStandby == other.bPowerOffOnStandby && + bSendInactiveSource == other.bSendInactiveSource && + /* libcec 1.5.3+ */ + (other.serverVersion < CEC_SERVER_VERSION_1_5_3 || logicalAddresses == other.logicalAddresses) && + /* libcec 1.6.0+ */ + (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || iFirmwareVersion == other.iFirmwareVersion) && + (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || bPowerOffDevicesOnStandby == other.bPowerOffDevicesOnStandby) && + (other.serverVersion < CEC_SERVER_VERSION_1_6_0 || bShutdownOnStandby == other.bShutdownOnStandby) && + /* libcec 1.6.2+ */ + (other.serverVersion < CEC_SERVER_VERSION_1_6_2 || !strncmp(strDeviceLanguage, other.strDeviceLanguage, 3)) && + (other.serverVersion < CEC_SERVER_VERSION_1_6_2 || iFirmwareBuildDate == other.iFirmwareBuildDate)); + } + + bool operator!=(const libcec_configuration &other) const + { + return !(*this == other); + } + /*! * @brief Reset this configution struct to the default values. */ void Clear(void) { - iPhysicalAddress = 0; + iPhysicalAddress = CEC_PHYSICAL_ADDRESS_TV; baseDevice = (cec_logical_address)CEC_DEFAULT_BASE_DEVICE; iHDMIPort = CEC_DEFAULT_HDMI_PORT; tvVendor = (uint64_t)CEC_VENDOR_UNKNOWN; clientVersion = (uint32_t)CEC_CLIENT_VERSION_PRE_1_5; serverVersion = (uint32_t)CEC_SERVER_VERSION_PRE_1_5; - bAutodetectAddress = 1; - bGetSettingsFromROM = 0; + bAutodetectAddress = CEC_DEFAULT_SETTING_AUTODETECT_ADDRESS; + bGetSettingsFromROM = CEC_DEFAULT_SETTING_GET_SETTINGS_FROM_ROM; bUseTVMenuLanguage = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE; bActivateSource = CEC_DEFAULT_SETTING_ACTIVATE_SOURCE; bPowerOffScreensaver = CEC_DEFAULT_SETTING_POWER_OFF_SCREENSAVER; @@ -1240,7 +1287,7 @@ typedef struct libcec_configuration iFirmwareVersion = CEC_FW_VERSION_UNKNOWN; bPowerOffDevicesOnStandby = CEC_DEFAULT_SETTING_POWER_OFF_DEVICES_STANDBY; memcpy(strDeviceLanguage, CEC_DEFAULT_DEVICE_LANGUAGE, 3); - iFirmwareBuildDate = CEC_DEFAULT_FIRMWARE_BUILD_DATE; + iFirmwareBuildDate = CEC_FW_BUILD_UNKNOWN; memset(strDeviceName, 0, 13); deviceTypes.clear();