reset internally cached gain/freq values on setter failure

This commit is contained in:
Dimitri Stolnikov 2012-05-05 18:30:13 +02:00
parent eded5bf5c3
commit e9251da6e2
2 changed files with 9 additions and 4 deletions

View File

@ -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.
*
* \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);

View File

@ -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;