summaryrefslogtreecommitdiff
path: root/dvbdevice.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2006-01-05 15:30:06 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2006-01-05 15:30:06 +0100
commit526c94f017e2f484abf447d59b8fd2f2c3ab3c00 (patch)
tree8d5ec5cb3033b41d54b392479a8f7d00f1e395e3 /dvbdevice.c
parent01bbd53fa1160ba27e215036ef9d0f8f4686efa8 (diff)
downloadvdr-526c94f017e2f484abf447d59b8fd2f2c3ab3c00.tar.gz
vdr-526c94f017e2f484abf447d59b8fd2f2c3ab3c00.tar.bz2
Improved tuner timeout handling (cont'd)
Diffstat (limited to 'dvbdevice.c')
-rw-r--r--dvbdevice.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/dvbdevice.c b/dvbdevice.c
index e10d5e02..6f99939e 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 1.146 2006/01/04 11:47:36 kls Exp $
+ * $Id: dvbdevice.c 1.147 2006/01/05 15:30:06 kls Exp $
*/
#include "dvbdevice.h"
@@ -152,12 +152,10 @@ bool cDvbTuner::GetFrontendStatus(fe_status_t &Status, int TimeoutMs)
if (TimeoutMs) {
cPoller Poller(fd_frontend);
if (Poller.Poll(TimeoutMs)) {
- // just to clear the event queue - we'll read the actual status below
dvb_frontend_event Event;
- CHECK(ioctl(fd_frontend, FE_GET_EVENT, &Event));
+ while (ioctl(fd_frontend, FE_GET_EVENT, &Event) == 0)
+ ; // just to clear the event queue - we'll read the actual status below
}
- else
- return false;
}
do {
int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status);
@@ -316,7 +314,7 @@ void cDvbTuner::Action(void)
tunerStatus = tsSet;
diseqcCommands = NULL;
if (time(NULL) - lastTimeoutReport > 60) { // let's not get too many of these
- esyslog("ERROR: frontend %d timed out while tuning", cardIndex);
+ esyslog("ERROR: frontend %d timed out while tuning to channel %d, tp %d", cardIndex, channel.Number(), channel.Transponder());
lastTimeoutReport = time(NULL);
}
continue;
@@ -331,7 +329,7 @@ void cDvbTuner::Action(void)
}
else if (Status & FE_HAS_LOCK) {
if (LostLock) {
- esyslog("frontend %d regained lock", cardIndex);
+ esyslog("frontend %d regained lock on channel %d, tp %d", cardIndex, channel.Number(), channel.Transponder());
LostLock = false;
}
tunerStatus = tsLocked;
@@ -340,7 +338,7 @@ void cDvbTuner::Action(void)
}
else if (tunerStatus == tsLocked) {
LostLock = true;
- esyslog("ERROR: frontend %d lost lock", cardIndex);
+ esyslog("ERROR: frontend %d lost lock on channel %d, tp %d", cardIndex, channel.Number(), channel.Transponder());
tunerStatus = tsTuned;
Timer.Set(lockTimeout);
lastTimeoutReport = 0;