Hi,
sometimes femon reports wrong status infos. The problem is in dvbfe_get_info().
The status bits (signal, carrier,
viterbi, sync, lock) are only set. If one of this bits was already set in the
buffer, it isn't reset if it is necessary.
The attached patch does fix this problem.
- Hartmut
diff -r 92cd5208d2cf lib/libdvbapi/dvbfe.c
--- a/lib/libdvbapi/dvbfe.c Mon Sep 18 21:27:12 2006 +0100
+++ b/lib/libdvbapi/dvbfe.c Sun Oct 22 12:03:09 2006 +0200
@@ -278,20 +278,11 @@ extern int dvbfe_get_info(struct dvbfe_h
}
if (returnval & DVBFE_INFO_LOCKSTATUS) {
- if (kevent.status & FE_HAS_SIGNAL)
- result->signal = 1;
-
- if (kevent.status & FE_HAS_CARRIER)
- result->carrier = 1;
-
- if (kevent.status & FE_HAS_VITERBI)
- result->viterbi = 1;
-
- if (kevent.status & FE_HAS_SYNC)
- result->sync = 1;
-
- if (kevent.status & FE_HAS_LOCK)
- result->lock = 1;
+ result->signal = kevent.status & FE_HAS_SIGNAL ? 1 : 0;
+ result->carrier = kevent.status & FE_HAS_CARRIER ? 1 : 0;
+ result->viterbi = kevent.status & FE_HAS_VITERBI ? 1 : 0;
+ result->sync = kevent.status & FE_HAS_SYNC ? 1 : 0;
+ result->lock = kevent.status & FE_HAS_LOCK ? 1 : 0;
}
if (returnval & DVBFE_INFO_FEPARAMS) {
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb