X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=include%2Fcectypes.h;h=48d1ab8f7b840a5c41b965235903acf43b18f53b;hb=d5890d16af8ca61857553a4285ee34c1d104353c;hp=c80354e580284b06fcee86b9e21e373ea6eecdfe;hpb=dbf90acfa110122cb4e993babb0f75a411355795;p=deb_libcec.git diff --git a/include/cectypes.h b/include/cectypes.h index c80354e..48d1ab8 100644 --- a/include/cectypes.h +++ b/include/cectypes.h @@ -82,7 +82,7 @@ namespace CEC { /*! * don't send the same key twice within this timeout in milliseconds */ -#define CEC_DOUBLE_TAP_TIMEOUT_MS 200 +#define CEC_DOUBLE_TAP_TIMEOUT_MS 250 /*! * don't query the power state for the same device within this timeout in milliseconds @@ -257,7 +257,7 @@ namespace CEC { /*! * wait this amount of milliseconds before retrying when libCEC failed to make itself the active source */ -#define CEC_ACTIVE_SOURCE_SWITCH_RETRY_TIME_MS 5000 +#define CEC_ACTIVE_SOURCE_SWITCH_RETRY_TIME_MS 1000 /*! * don't forward any power off command to the client application for this amount of milliseconds after sending a power off command @@ -274,6 +274,16 @@ namespace CEC { */ #define CEC_RPI_VIRTUAL_COM "RPI" +/*! + * the path to use for the TDA995x's CEC wire + */ +#define CEC_TDA995x_PATH "/dev/hdmicec" + +/*! + * the name of the virtual COM port to use for the TDA995x's CEC wire + */ +#define CEC_TDA995x_VIRTUAL_COM "CuBox" + /*! * Mimimum client version */ @@ -299,6 +309,7 @@ namespace CEC { #define MSGESC 0xFD #define ESCOFFSET 3 + typedef enum cec_abort_reason { CEC_ABORT_REASON_UNRECOGNIZED_OPCODE = 0,//!< CEC_ABORT_REASON_UNRECOGNIZED_OPCODE @@ -830,7 +841,8 @@ typedef enum cec_adapter_type ADAPTERTYPE_UNKNOWN = 0, ADAPTERTYPE_P8_EXTERNAL = 0x1, ADAPTERTYPE_P8_DAUGHTERBOARD = 0x2, - ADAPTERTYPE_RPI = 0x100 + ADAPTERTYPE_RPI = 0x100, + ADAPTERTYPE_TDA995x = 0x200 } cec_adapter_type; typedef struct cec_menu_language @@ -1362,6 +1374,9 @@ typedef enum cec_client_version CEC_CLIENT_VERSION_1_9_0 = 0x1900, CEC_CLIENT_VERSION_1_99_0 = 0x1990, CEC_CLIENT_VERSION_2_0_0 = 0x2000, + CEC_CLIENT_VERSION_2_0_1 = 0x2001, + CEC_CLIENT_VERSION_2_0_2 = 0x2002, + CEC_CLIENT_VERSION_2_0_3 = 0x2003, } cec_client_version; typedef enum cec_server_version @@ -1384,6 +1399,9 @@ typedef enum cec_server_version CEC_SERVER_VERSION_1_9_0 = 0x1900, CEC_SERVER_VERSION_1_99_0 = 0x1990, CEC_SERVER_VERSION_2_0_0 = 0x2000, + CEC_SERVER_VERSION_2_0_1 = 0x2001, + CEC_SERVER_VERSION_2_0_2 = 0x2002, + CEC_SERVER_VERSION_2_0_3 = 0x2003, } cec_server_version; struct libcec_configuration @@ -1421,6 +1439,7 @@ struct libcec_configuration uint8_t bMonitorOnly; /*!< won't allocate a CCECClient when starting the connection when set (same as monitor mode). added in 1.6.3 */ cec_version cecVersion; /*!< CEC spec version to use by libCEC. defaults to v1.4. added in 1.8.0 */ cec_adapter_type adapterType; /*!< type of the CEC adapter that we're connected to. added in 1.8.2 */ + uint8_t iDoubleTapTimeoutMs; /*!< prevent double taps withing this timeout. defaults to 200ms. added in 2.0.0 */ #ifdef __cplusplus libcec_configuration(void) { Clear(); } @@ -1428,38 +1447,33 @@ struct libcec_configuration 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.clientVersion < CEC_CLIENT_VERSION_1_5_3 || logicalAddresses == other.logicalAddresses) && - /* libcec 1.6.0+ */ - (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || iFirmwareVersion == other.iFirmwareVersion) && - (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || bPowerOffDevicesOnStandby == other.bPowerOffDevicesOnStandby) && - (other.clientVersion < CEC_CLIENT_VERSION_1_6_0 || bShutdownOnStandby == other.bShutdownOnStandby) && - /* libcec 1.6.2+ */ - (other.clientVersion < CEC_CLIENT_VERSION_1_6_2 || !strncmp(strDeviceLanguage, other.strDeviceLanguage, 3)) && - (other.clientVersion < CEC_CLIENT_VERSION_1_6_2 || iFirmwareBuildDate == other.iFirmwareBuildDate) && - /* libcec 1.6.3+ */ - (other.clientVersion < CEC_CLIENT_VERSION_1_6_3 || bMonitorOnly == other.bMonitorOnly) && - /* libcec 1.8.0+ */ - (other.clientVersion < CEC_CLIENT_VERSION_1_8_0 || cecVersion == other.cecVersion) && - /* libcec 1.8.2+ */ - (other.clientVersion < CEC_CLIENT_VERSION_1_8_2 || adapterType == other.adapterType)); + 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 && + logicalAddresses == other.logicalAddresses && + iFirmwareVersion == other.iFirmwareVersion && + bPowerOffDevicesOnStandby == other.bPowerOffDevicesOnStandby && + bShutdownOnStandby == other.bShutdownOnStandby && + !strncmp(strDeviceLanguage, other.strDeviceLanguage, 3) && + iFirmwareBuildDate == other.iFirmwareBuildDate && + bMonitorOnly == other.bMonitorOnly && + cecVersion == other.cecVersion && + adapterType == other.adapterType && + iDoubleTapTimeoutMs == other.iDoubleTapTimeoutMs); } bool operator!=(const libcec_configuration &other) const @@ -1476,8 +1490,8 @@ struct libcec_configuration 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; + clientVersion = (uint32_t)CEC_CLIENT_VERSION_2_0_0; + serverVersion = (uint32_t)CEC_SERVER_VERSION_2_0_0; bAutodetectAddress = 0; bGetSettingsFromROM = CEC_DEFAULT_SETTING_GET_SETTINGS_FROM_ROM; bUseTVMenuLanguage = CEC_DEFAULT_SETTING_USE_TV_MENU_LANGUAGE; @@ -1493,6 +1507,7 @@ struct libcec_configuration bMonitorOnly = 0; cecVersion = (cec_version)CEC_DEFAULT_SETTING_CEC_VERSION; adapterType = ADAPTERTYPE_UNKNOWN; + iDoubleTapTimeoutMs = CEC_DOUBLE_TAP_TIMEOUT_MS; memset(strDeviceName, 0, 13); deviceTypes.Clear();