added iDoubleTapTimeoutMs to libcec_configuration
authorLars Op den Kamp <lars@opdenkamp.eu>
Mon, 8 Oct 2012 13:54:28 +0000 (15:54 +0200)
committerLars Op den Kamp <lars@opdenkamp.eu>
Mon, 8 Oct 2012 13:54:28 +0000 (15:54 +0200)
include/cectypes.h
src/lib/CECClient.cpp

index 526a5d85c5896c58b12c4bff2f84e5497def3a16..58b6ef4cc97bd0ff44df0d5d6bfcf6de9fee3605 100644 (file)
@@ -1421,6 +1421,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(); }
@@ -1453,7 +1454,8 @@ struct libcec_configuration
                   iFirmwareBuildDate        == other.iFirmwareBuildDate &&
                   bMonitorOnly              == other.bMonitorOnly &&
                   cecVersion                == other.cecVersion &&
-                  adapterType               == other.adapterType);
+                  adapterType               == other.adapterType &&
+                  iDoubleTapTimeoutMs       == other.iDoubleTapTimeoutMs);
   }
 
   bool operator!=(const libcec_configuration &other) const
@@ -1487,6 +1489,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();
index 6be95b735b2bf560226b1857b215f0fa5d2ddeb6..d6f8100dec9daa25b26b7e55986eeaf8e85f6858 100644 (file)
@@ -1377,7 +1377,7 @@ void CCECClient::CallbackAddKey(const cec_keypress &key)
     int64_t now = GetTimeMs();
     if (m_lastKeypress.keycode != key.keycode ||
         key.duration > 0 ||
-        now - m_iLastKeypressTime >= CEC_DOUBLE_TAP_TIMEOUT_MS)
+        now - m_iLastKeypressTime >= m_configuration.iDoubleTapTimeoutMs)
     {
       // no double tap
       if (key.duration == 0)