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 linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb