From e9251da6e238a64018d3a4b64d4d4593aa7acbfb Mon Sep 17 00:00:00 2001 From: Dimitri Stolnikov Date: Sat, 5 May 2012 18:30:13 +0200 Subject: reset internally cached gain/freq values on setter failure --- src/rtl-sdr.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/rtl-sdr.c b/src/rtl-sdr.c index 6910694..1e7a41c 100644 --- a/src/rtl-sdr.c +++ b/src/rtl-sdr.c @@ -593,6 +593,8 @@ int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq) if (!r) dev->freq = freq; + else + dev->freq = 0; rtlsdr_set_i2c_repeater(dev, 0); } @@ -629,7 +631,7 @@ int rtlsdr_set_freq_correction(rtlsdr_dev_t *dev, int ppm) int rtlsdr_get_freq_correction(rtlsdr_dev_t *dev) { if (!dev || !dev->tuner) - return -1; + return 0; return dev->corr; } @@ -649,6 +651,8 @@ int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain) if (!r) dev->gain = gain; + else + dev->gain = 0; return r; } @@ -656,7 +660,7 @@ int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain) int rtlsdr_get_tuner_gain(rtlsdr_dev_t *dev) { if (!dev || !dev->tuner) - return -1; + return 0; return dev->gain; } @@ -1129,7 +1133,8 @@ int rtlsdr_cancel_async(rtlsdr_dev_t *dev) return -2; } -uint32_t rtlsdr_get_tuner_clock(void *dev) { +uint32_t rtlsdr_get_tuner_clock(void *dev) +{ if (!dev) return 0; -- cgit v1.3.1