CLibCEC::AddLog(CEC_LOG_ERROR, "could not open a connection");
/* try to ping the adapter */
- if ((bReturn = m_communication->PingAdapter()) == false)
- CLibCEC::AddLog(CEC_LOG_ERROR, "the adapter does not respond correctly");
+ int iPingTry(0);
+ bool bPingOk(false);
+ while (!bPingOk && iPingTry++ < CEC_PING_ADAPTER_TRIES)
+ {
+ if ((bPingOk = m_communication->PingAdapter()) == false)
+ {
+ CLibCEC::AddLog(CEC_LOG_ERROR, "the adapter did not respond correctly to a ping (try %d of %d)", iPingTry, CEC_PING_ADAPTER_TRIES);
+ Sleep(500);
+ }
+ }
- uint16_t iFirmwareVersion = m_communication->GetFirmwareVersion();
- if ((bReturn = (iFirmwareVersion != CEC_FW_VERSION_UNKNOWN)) == false)
- m_controller->AddLog(CEC_LOG_ERROR, "the adapter is running an unknown firmware version");
+ if (bPingOk)
+ {
+ uint16_t iFirmwareVersion(CEC_FW_VERSION_UNKNOWN);
+ int iFwVersionTry(0);
+ bool bFwVersionOk(false);
+ while (!bFwVersionOk && iFwVersionTry++ < CEC_FW_VERSION_TRIES)
+ {
+ if ((iFirmwareVersion = m_communication->GetFirmwareVersion()) == CEC_FW_VERSION_UNKNOWN)
+ {
+ CLibCEC::AddLog(CEC_LOG_ERROR, "the adapter did not respond with a correct firmware version (try %d of %d)", iFwVersionTry, CEC_FW_VERSION_TRIES);
+ Sleep(500);
+ }
+ }
- CLibCEC::AddLog(CEC_LOG_NOTICE, "CEC Adapter firmware version: %d", iFirmwareVersion);
+ if (iFirmwareVersion == CEC_FW_VERSION_UNKNOWN)
+ {
+ bReturn = false;
+ }
+ else
+ {
+ bReturn = true;
+ CLibCEC::AddLog(CEC_LOG_NOTICE, "CEC Adapter firmware version: %d", iFirmwareVersion);
+ }
+ }
return bReturn;
}
return false;
}
-void CCECProcessor::SetCurrentButton(cec_user_control_code iButtonCode)
-{
- m_controller->SetCurrentButton(iButtonCode);
-}
-
-void CCECProcessor::AddCommand(const cec_command &command)
-{
- m_controller->AddCommand(command);
-}
-
-void CCECProcessor::AddKey(cec_keypress &key)
-{
- m_controller->AddKey(key);
-}
-
-void CCECProcessor::AddKey(void)
-{
- m_controller->AddKey();
-}
-
bool CCECProcessor::SetAckMask(uint16_t iMask)
{
return m_communication->SetAckMask(iMask);