rendered paste bodydiff --git a/guilib/common/LIRC.cpp b/guilib/common/LIRC.cppindex 98723c1..e8aa1c1 100644--- a/guilib/common/LIRC.cpp+++ b/guilib/common/LIRC.cpp@@ -44,6 +44,11 @@ void CRemoteControl::setUsed(bool value) m_used=value; if (!value) CLog::Log(LOGINFO, "LIRC %s: disabled", __FUNCTION__);+ else+ {+ m_lastInitAttempt = -5000;+ m_initRetryPeriod = 5000;+ } } void CRemoteControl::Reset()@@ -62,6 +67,8 @@ void CRemoteControl::Disconnect() m_bInitialized = false; if (m_file != NULL) fclose(m_file);+ if (m_fd != -1)+ close(m_fd); m_fd = -1; m_file = NULL; if (m_inotify_wd >= 0) {@@ -71,9 +78,6 @@ void CRemoteControl::Disconnect() if (m_inotify_fd >= 0) close(m_inotify_fd); }- - m_lastInitAttempt = -5000;- m_initRetryPeriod = 5000; } void CRemoteControl::setDeviceName(const CStdString& value)@@ -91,22 +95,8 @@ void CRemoteControl::Initialize() if (!m_used || now < m_lastInitAttempt + m_initRetryPeriod) return;+ m_lastInitAttempt = now;-- if (!XFILE::CFile::Exists(m_deviceName)) {- m_initRetryPeriod *= 2;- if (m_initRetryPeriod > 60000)- {- m_used = false;- CLog::Log(LOGDEBUG, "LIRC device %s does not exist. Giving up.", m_deviceName.c_str());- }- else- CLog::Log(LOGDEBUG, "LIRC device %s does not exist. Retry in %ds.", m_deviceName.c_str(), m_initRetryPeriod/1000);- return;- }-- m_initRetryPeriod = 5000;- addr.sun_family = AF_UNIX; strcpy(addr.sun_path, m_deviceName.c_str()); @@ -168,7 +158,19 @@ void CRemoteControl::Initialize() else CLog::Log(LOGINFO, "LIRC %s: socket failed: %s", __FUNCTION__, strerror(errno)); if (!m_bInitialized)+ { Disconnect();+ m_initRetryPeriod *= 2;+ if (m_initRetryPeriod > 60000)+ {+ m_used = false;+ CLog::Log(LOGDEBUG, "Failed to connect to LIRC. Giving up.");+ }+ else+ CLog::Log(LOGDEBUG, "Failed to connect to LIRC. Retry in %ds.", m_initRetryPeriod/1000);+ }+ else+ m_initRetryPeriod = 5000; } bool CRemoteControl::CheckDevice() {