From: Lars Op den Kamp Date: Thu, 11 Oct 2012 10:59:15 +0000 (+0200) Subject: fixed - reset the delayed source switch timeout properly, so we don't spam commands... X-Git-Tag: upstream/2.2.0~1^2~15^2^2~13 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=085df3099c0067ae6ccb5638718f34a30bf04e48;p=deb_libcec.git fixed - reset the delayed source switch timeout properly, so we don't spam commands every second --- diff --git a/src/lib/implementations/CECCommandHandler.cpp b/src/lib/implementations/CECCommandHandler.cpp index cf0984b..08bc528 100644 --- a/src/lib/implementations/CECCommandHandler.cpp +++ b/src/lib/implementations/CECCommandHandler.cpp @@ -1174,9 +1174,10 @@ bool CCECCommandHandler::ActivateSource(bool bTransmitDelayedCommandsOnly /* = f if (bActiveSourceFailed || !bSourceSwitchAllowed) { LIB_CEC->AddLog(CEC_LOG_DEBUG, "failed to make '%s' the active source. will retry later", m_busDevice->GetLogicalAddressName()); + int64_t now(GetTimeMs()); CLockObject lock(m_mutex); - if (m_iActiveSourcePending == 0) - m_iActiveSourcePending = GetTimeMs() + (int64_t)CEC_ACTIVE_SOURCE_SWITCH_RETRY_TIME_MS; + if (m_iActiveSourcePending == 0 || m_iActiveSourcePending < now) + m_iActiveSourcePending = now + (int64_t)CEC_ACTIVE_SOURCE_SWITCH_RETRY_TIME_MS; return false; } else