fixed comboKeyTimeout=0. closes #168
authorLars Op den Kamp <lars@opdenkamp.eu>
Tue, 14 May 2013 23:27:54 +0000 (01:27 +0200)
committerLars Op den Kamp <lars@opdenkamp.eu>
Tue, 14 May 2013 23:27:54 +0000 (01:27 +0200)
src/lib/CECClient.cpp

index 4db7fcd50f1476eb2caf9df8e77966253f808cc7..85df46d376859c9c24575abb175b110202af7a90 100644 (file)
@@ -973,10 +973,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
     {
       key.duration = (unsigned int) (GetTimeMs() - m_buttontime);
 
-      cec_user_control_code comboKey(m_configuration.comboKey);
-      uint32_t iTimeoutMs(m_configuration.iComboKeyTimeoutMs);
-
-      if (key.duration > iTimeoutMs || m_iCurrentButton != comboKey || bSendComboKey)
+      if (key.duration > m_configuration.iComboKeyTimeoutMs ||
+          m_configuration.iComboKeyTimeoutMs == 0 ||
+          m_iCurrentButton != m_configuration.comboKey ||
+          bSendComboKey)
       {
         key.keycode = m_iCurrentButton;
 
@@ -1009,7 +1009,7 @@ void CCECClient::AddKey(const cec_keypress &key)
 
   {
     CLockObject lock(m_mutex);
-    if (m_iCurrentButton == comboKey && key.duration == 0)
+    if (m_configuration.iComboKeyTimeoutMs > 0 && m_iCurrentButton == comboKey && key.duration == 0)
     {
       // stop + ok -> exit
       if (key.keycode == CEC_USER_CONTROL_CODE_SELECT)
@@ -1070,7 +1070,7 @@ void CCECClient::CheckKeypressTimeout(void)
         m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
 
     if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
-          ((m_iCurrentButton == comboKey && iNow - m_buttontime > iTimeoutMs) ||
+          ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_buttontime > iTimeoutMs) ||
           (m_iCurrentButton != comboKey && iNow - m_buttontime > CEC_BUTTON_TIMEOUT)))
     {
       key.duration = (unsigned int) (iNow - m_buttontime);