Pārlūkot izejas kodu

use default xtal freq when 0 is given

Dimitri Stolnikov 13 gadi atpakaļ
vecāks
revīzija
cec93754a2
1 mainītis faili ar 7 papildinājumiem un 7 dzēšanām
  1. 7 7
      src/rtl-sdr.c

+ 7 - 7
src/rtl-sdr.c

@@ -484,14 +484,15 @@ int rtlsdr_set_xtal_freq(rtlsdr_dev_t *dev, uint32_t rtl_freq, uint32_t tuner_fr
 	if (!dev)
 		return -1;
 
-	if (rtl_freq < MIN_RTL_XTAL_FREQ || rtl_freq > MAX_RTL_XTAL_FREQ)
+	if (rtl_freq > 0 &&
+	    (rtl_freq < MIN_RTL_XTAL_FREQ || rtl_freq > MAX_RTL_XTAL_FREQ))
 		return -2;
 
 	if (dev->rtl_xtal != rtl_freq) {
-		dev->rtl_xtal = rtl_freq;
+		if (0 == rtl_freq)
+			rtl_freq = DEF_RTL_XTAL_FREQ;
 
-		if (0 == dev->rtl_xtal)
-			dev->rtl_xtal = DEF_RTL_XTAL_FREQ;
+		dev->rtl_xtal = rtl_freq;
 
 		/* update xtal-dependent settings */
 		if (dev->rate)
@@ -499,12 +500,11 @@ int rtlsdr_set_xtal_freq(rtlsdr_dev_t *dev, uint32_t rtl_freq, uint32_t tuner_fr
 	}
 
 	if (dev->tun_xtal != tuner_freq) {
+		if (0 == tuner_freq)
+			tuner_freq = dev->rtl_xtal;
 
 		dev->tun_xtal = tuner_freq;
 
-		if (0 == dev->tun_xtal)
-			dev->tun_xtal = dev->rtl_xtal;
-
 		/* update xtal-dependent settings */
 		if (dev->freq)
 			r = rtlsdr_set_center_freq(dev, dev->freq);