summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/remote.c b/remote.c
index e1f392d..f5ed0e8 100644
--- a/remote.c
+++ b/remote.c
@@ -45,14 +45,24 @@ cLearningThread::~cLearningThread(void)
void cLearningThread::Action(void)
{
- while (!cOSDWorker::ClientIsReady())
- usleep(100000);
+ int i = 10;
+ while ((!cOSDWorker::ClientIsReady()) && (i-- > 0))
+ sleep(1);
- while (cOsd::IsOpen() > 0)
- usleep(100000);
+ i = 10;
+ while ((cOsd::IsOpen() > 0) && (i-- > 0))
+ cRemote::Put(kBack);
+
+ if (!cOSDWorker::ClientIsReady() || (cOsd::IsOpen() > 0))
+ {
+ dsyslog("[ffnetdev] ClientIsReady=%d OsdIsOpen=%d SkinsIsOpen=%d",
+ cOSDWorker::ClientIsReady(), cOsd::IsOpen(), Skins.IsOpen());
+ delete this;
+ return;
+ }
- sleep(5);
dsyslog("[ffnetdev] start learning keys");
Interface->LearnKeys();
+
delete this;
}