summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authorJavier S. Pedro <javier@javispedro.com>2012-02-13 20:43:21 +0100
committerJavier S. Pedro <javier@javispedro.com>2012-02-13 20:43:21 +0100
commit25fa8dc39b10e8710d5818e51534d59e728ac641 (patch)
tree6882cd0a59a5995a329a3ef6393eb610d9c91930 /signal.c
parent3fbc3f186f8f7817be2ecbdcc7117bd294bb7d88 (diff)
downloadfmrxd-25fa8dc39b10e8710d5818e51534d59e728ac641.tar.gz
fmrxd-25fa8dc39b10e8710d5818e51534d59e728ac641.zip
add a workaround for non-v4l standard signal reporting
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/signal.c b/signal.c
index 3618e34..667da6a 100644
--- a/signal.c
+++ b/signal.c
@@ -27,7 +27,15 @@ static uint16_t last_signal_level = 0;
static void signal_update()
{
- uint16_t new_signal_level = tuner_get_signal();
+ uint16_t new_signal_level;
+#if WORKAROUND_BAD_WL1273_SIGNAL
+ /* rssi is a value from -128 to +127. */
+ new_signal_level = (tuner_get_signal() + 128) * 257;
+#else
+ /* rssi is a value from 0 to 65535. */
+ new_signal_level = tuner_get_signal();
+#endif
+
if (new_signal_level != last_signal_level) {
server_notify_signal(new_signal_level);
last_signal_level = new_signal_level;