cec: default to firmware version 1 after 3 tries. some versions might not send this...
authorLars Op den Kamp <lars@opdenkamp.eu>
Sat, 3 Mar 2012 14:09:55 +0000 (15:09 +0100)
committerLars Op den Kamp <lars@opdenkamp.eu>
Sat, 3 Mar 2012 14:09:55 +0000 (15:09 +0100)
src/lib/adapter/USBCECAdapterCommunication.cpp

index 2fe62fedcc134cab6cfb6ce3894ba16f93cd3735..e51a861f28579ebe6d5685c883032626e05add52 100644 (file)
@@ -97,13 +97,19 @@ bool CUSBCECAdapterCommunication::CheckAdapter(uint32_t iTimeoutMs /* = 10000 */
   /* try to read the firmware version */
   m_iFirmwareVersion = CEC_FW_VERSION_UNKNOWN;
   unsigned iFwVersionTry(0);
-  while (bPinged && iNow < iTarget && (m_iFirmwareVersion = GetFirmwareVersion()) == CEC_FW_VERSION_UNKNOWN)
+  while (bPinged && iNow < iTarget && (m_iFirmwareVersion = GetFirmwareVersion()) == CEC_FW_VERSION_UNKNOWN && iFwVersionTry < 3)
   {
-    CLibCEC::AddLog(CEC_LOG_ERROR, "the adapter did not respond with a correct firmware version (try %d)", ++iFwVersionTry);
+    CLibCEC::AddLog(CEC_LOG_WARNING, "the adapter did not respond with a correct firmware version (try %d)", ++iFwVersionTry);
     CEvent::Sleep(500);
     iNow = GetTimeMs();
   }
 
+  if (m_iFirmwareVersion == CEC_FW_VERSION_UNKNOWN)
+  {
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "defaulting to firmware version 1");
+    m_iFirmwareVersion = 1;
+  }
+
   if (m_iFirmwareVersion >= 2)
   {
     /* try to set controlled mode */