X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.cpp;h=a4bbcbc8e0b7ed0d6acb30f0190ed6f21b67a5dd;hb=3b5e433aedcade91b053d591bf19b02605ef8697;hp=2391ca7e411d9b8d32c7fc060e7adef96f1003fa;hpb=30a09f32c9fb0c3d56e3a4e8da58a04fd4c3756f;p=deb_libcec.git diff --git a/src/lib/CECProcessor.cpp b/src/lib/CECProcessor.cpp index 2391ca7..a4bbcbc 100644 --- a/src/lib/CECProcessor.cpp +++ b/src/lib/CECProcessor.cpp @@ -181,16 +181,14 @@ bool CCECProcessor::OpenConnection(const char *strPort, uint16_t iBaudRate, uint return bReturn; } - uint64_t iNow = GetTimeMs(); - uint64_t iTarget = iTimeoutMs > 0 ? iNow + iTimeoutMs : iNow + CEC_DEFAULT_TRANSMIT_WAIT; + CTimeout timeout(iTimeoutMs > 0 ? iTimeoutMs : CEC_DEFAULT_TRANSMIT_WAIT); /* open a new connection */ unsigned iConnectTry(0); - while (iNow < iTarget && (bReturn = m_communication->Open(this, iTimeoutMs)) == false) + while (timeout.TimeLeft() > 0 && (bReturn = m_communication->Open(this, (timeout.TimeLeft() / CEC_CONNECT_TRIES))) == false) { CLibCEC::AddLog(CEC_LOG_ERROR, "could not open a connection (try %d)", ++iConnectTry); Sleep(500); - iNow = GetTimeMs(); } if (bReturn)