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

Reply via email to