reset internally cached gain/freq values on setter failure

master
Dimitri Stolnikov 13 years ago
parent eded5bf5c3
commit e9251da6e2
  1. 2
      include/rtl-sdr.h
  2. 11
      src/rtl-sdr.c

@ -101,7 +101,7 @@ RTLSDR_API int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain);
* Get actual gain the device is configured to. * Get actual gain the device is configured to.
* *
* \param dev the device handle given by rtlsdr_open() * \param dev the device handle given by rtlsdr_open()
* \return < 0 on error, gain in tenths of a dB, 115 means 11.5 dB. * \return 0 on error, gain in tenths of a dB, 115 means 11.5 dB.
*/ */
RTLSDR_API int rtlsdr_get_tuner_gain(rtlsdr_dev_t *dev); RTLSDR_API int rtlsdr_get_tuner_gain(rtlsdr_dev_t *dev);

@ -593,6 +593,8 @@ int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq)
if (!r) if (!r)
dev->freq = freq; dev->freq = freq;
else
dev->freq = 0;
rtlsdr_set_i2c_repeater(dev, 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) int rtlsdr_get_freq_correction(rtlsdr_dev_t *dev)
{ {
if (!dev || !dev->tuner) if (!dev || !dev->tuner)
return -1; return 0;
return dev->corr; return dev->corr;
} }
@ -649,6 +651,8 @@ int rtlsdr_set_tuner_gain(rtlsdr_dev_t *dev, int gain)
if (!r) if (!r)
dev->gain = gain; dev->gain = gain;
else
dev->gain = 0;
return r; 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) int rtlsdr_get_tuner_gain(rtlsdr_dev_t *dev)
{ {
if (!dev || !dev->tuner) if (!dev || !dev->tuner)
return -1; return 0;
return dev->gain; return dev->gain;
} }
@ -1129,7 +1133,8 @@ int rtlsdr_cancel_async(rtlsdr_dev_t *dev)
return -2; return -2;
} }
uint32_t rtlsdr_get_tuner_clock(void *dev) { uint32_t rtlsdr_get_tuner_clock(void *dev)
{
if (!dev) if (!dev)
return 0; return 0;

Loading…
Cancel
Save