Added gain, fc (carrier frequency) and sample frequency parameters to the rtlsdr and usrp apps.
diff --git a/apps/airprobe_rtlsdr.py b/apps/airprobe_rtlsdr.py
index c1f816d..8423acd 100755
--- a/apps/airprobe_rtlsdr.py
+++ b/apps/airprobe_rtlsdr.py
@@ -2,7 +2,7 @@
 ##################################################
 # Gnuradio Python Flow Graph
 # Title: Airprobe Rtlsdr
-# Generated: Sat Jan  3 00:02:56 2015
+# Generated: Sat Jan  3 00:30:45 2015
 ##################################################
 
 from PyQt4 import Qt
@@ -25,7 +25,7 @@
 from distutils.version import StrictVersion
 class airprobe_rtlsdr(gr.top_block, Qt.QWidget):
 
-    def __init__(self, ppm_param=0):
+    def __init__(self, ppm=0, fc=939.4e6, gain=30, samp_rate=2000000.052982):
         gr.top_block.__init__(self, "Airprobe Rtlsdr")
         Qt.QWidget.__init__(self)
         self.setWindowTitle("Airprobe Rtlsdr")
@@ -52,15 +52,17 @@
         ##################################################
         # Parameters
         ##################################################
-        self.ppm_param = ppm_param
+        self.ppm = ppm
+        self.fc = fc
+        self.gain = gain
+        self.samp_rate = samp_rate
 
         ##################################################
         # Variables
         ##################################################
-        self.samp_rate = samp_rate = 2000000.052982
-        self.ppm = ppm = ppm_param
-        self.g = g = 43
-        self.fc = fc = 939.4e6
+        self.ppm_slider = ppm_slider = ppm
+        self.g_slider = g_slider = gain
+        self.fc_slider = fc_slider = fc
         self.SDCCH = SDCCH = 6
         self.RACH = RACH = 3
         self.PCH = PCH = 5
@@ -72,69 +74,69 @@
         ##################################################
         # Blocks
         ##################################################
-        self._ppm_layout = Qt.QHBoxLayout()
-        self._ppm_layout.addWidget(Qt.QLabel("PPM Offset"+": "))
+        self._ppm_slider_layout = Qt.QHBoxLayout()
+        self._ppm_slider_layout.addWidget(Qt.QLabel("PPM Offset"+": "))
         class qwt_counter_pyslot(Qwt.QwtCounter):
             def __init__(self, parent=None):
                 Qwt.QwtCounter.__init__(self, parent)
             @pyqtSlot('double')
             def setValue(self, value):
                 super(Qwt.QwtCounter, self).setValue(value)
-        self._ppm_counter = qwt_counter_pyslot()
-        self._ppm_counter.setRange(-150, 150, 1)
-        self._ppm_counter.setNumButtons(2)
-        self._ppm_counter.setMinimumWidth(100)
-        self._ppm_counter.setValue(self.ppm)
-        self._ppm_layout.addWidget(self._ppm_counter)
-        self._ppm_counter.valueChanged.connect(self.set_ppm)
-        self.top_layout.addLayout(self._ppm_layout)
-        self._g_layout = Qt.QHBoxLayout()
-        self._g_layout.addWidget(Qt.QLabel("Gain"+": "))
+        self._ppm_slider_counter = qwt_counter_pyslot()
+        self._ppm_slider_counter.setRange(-150, 150, 1)
+        self._ppm_slider_counter.setNumButtons(2)
+        self._ppm_slider_counter.setMinimumWidth(100)
+        self._ppm_slider_counter.setValue(self.ppm_slider)
+        self._ppm_slider_layout.addWidget(self._ppm_slider_counter)
+        self._ppm_slider_counter.valueChanged.connect(self.set_ppm_slider)
+        self.top_layout.addLayout(self._ppm_slider_layout)
+        self._g_slider_layout = Qt.QHBoxLayout()
+        self._g_slider_layout.addWidget(Qt.QLabel("Gain"+": "))
         class qwt_counter_pyslot(Qwt.QwtCounter):
             def __init__(self, parent=None):
                 Qwt.QwtCounter.__init__(self, parent)
             @pyqtSlot('double')
             def setValue(self, value):
                 super(Qwt.QwtCounter, self).setValue(value)
-        self._g_counter = qwt_counter_pyslot()
-        self._g_counter.setRange(0, 50, 0.5)
-        self._g_counter.setNumButtons(2)
-        self._g_counter.setMinimumWidth(100)
-        self._g_counter.setValue(self.g)
-        self._g_layout.addWidget(self._g_counter)
-        self._g_counter.valueChanged.connect(self.set_g)
-        self.top_layout.addLayout(self._g_layout)
-        self._fc_layout = Qt.QVBoxLayout()
-        self._fc_tool_bar = Qt.QToolBar(self)
-        self._fc_layout.addWidget(self._fc_tool_bar)
-        self._fc_tool_bar.addWidget(Qt.QLabel("Frequency"+": "))
+        self._g_slider_counter = qwt_counter_pyslot()
+        self._g_slider_counter.setRange(0, 50, 0.5)
+        self._g_slider_counter.setNumButtons(2)
+        self._g_slider_counter.setMinimumWidth(100)
+        self._g_slider_counter.setValue(self.g_slider)
+        self._g_slider_layout.addWidget(self._g_slider_counter)
+        self._g_slider_counter.valueChanged.connect(self.set_g_slider)
+        self.top_layout.addLayout(self._g_slider_layout)
+        self._fc_slider_layout = Qt.QVBoxLayout()
+        self._fc_slider_tool_bar = Qt.QToolBar(self)
+        self._fc_slider_layout.addWidget(self._fc_slider_tool_bar)
+        self._fc_slider_tool_bar.addWidget(Qt.QLabel("Frequency"+": "))
         class qwt_counter_pyslot(Qwt.QwtCounter):
             def __init__(self, parent=None):
                 Qwt.QwtCounter.__init__(self, parent)
             @pyqtSlot('double')
             def setValue(self, value):
                 super(Qwt.QwtCounter, self).setValue(value)
-        self._fc_counter = qwt_counter_pyslot()
-        self._fc_counter.setRange(925e6, 960e6, 2e5)
-        self._fc_counter.setNumButtons(2)
-        self._fc_counter.setValue(self.fc)
-        self._fc_tool_bar.addWidget(self._fc_counter)
-        self._fc_counter.valueChanged.connect(self.set_fc)
-        self._fc_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot)
-        self._fc_slider.setRange(925e6, 960e6, 2e5)
-        self._fc_slider.setValue(self.fc)
-        self._fc_slider.setMinimumWidth(100)
-        self._fc_slider.valueChanged.connect(self.set_fc)
-        self._fc_layout.addWidget(self._fc_slider)
-        self.top_layout.addLayout(self._fc_layout)
+        self._fc_slider_counter = qwt_counter_pyslot()
+        self._fc_slider_counter.setRange(925e6, 960e6, 2e5)
+        self._fc_slider_counter.setNumButtons(2)
+        self._fc_slider_counter.setValue(self.fc_slider)
+        self._fc_slider_tool_bar.addWidget(self._fc_slider_counter)
+        self._fc_slider_counter.valueChanged.connect(self.set_fc_slider)
+        self._fc_slider_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot)
+        self._fc_slider_slider.setRange(925e6, 960e6, 2e5)
+        self._fc_slider_slider.setValue(self.fc_slider)
+        self._fc_slider_slider.setMinimumWidth(100)
+        self._fc_slider_slider.valueChanged.connect(self.set_fc_slider)
+        self._fc_slider_layout.addWidget(self._fc_slider_slider)
+        self.top_layout.addLayout(self._fc_slider_layout)
         self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + "" )
         self.rtlsdr_source_0.set_sample_rate(samp_rate)
-        self.rtlsdr_source_0.set_center_freq(fc, 0)
-        self.rtlsdr_source_0.set_freq_corr(ppm, 0)
+        self.rtlsdr_source_0.set_center_freq(fc_slider, 0)
+        self.rtlsdr_source_0.set_freq_corr(ppm_slider, 0)
         self.rtlsdr_source_0.set_dc_offset_mode(2, 0)
         self.rtlsdr_source_0.set_iq_balance_mode(2, 0)
         self.rtlsdr_source_0.set_gain_mode(True, 0)
-        self.rtlsdr_source_0.set_gain(g, 0)
+        self.rtlsdr_source_0.set_gain(g_slider, 0)
         self.rtlsdr_source_0.set_if_gain(20, 0)
         self.rtlsdr_source_0.set_bb_gain(20, 0)
         self.rtlsdr_source_0.set_antenna("", 0)
@@ -212,37 +214,12 @@
         self.settings.setValue("geometry", self.saveGeometry())
         event.accept()
 
-    def get_ppm_param(self):
-        return self.ppm_param
-
-    def set_ppm_param(self, ppm_param):
-        self.ppm_param = ppm_param
-        self.set_ppm(self.ppm_param)
-
-    def get_samp_rate(self):
-        return self.samp_rate
-
-    def set_samp_rate(self, samp_rate):
-        self.samp_rate = samp_rate
-        self.gsm_input_0.set_samp_rate_in(self.samp_rate)
-        self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
-        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
-
     def get_ppm(self):
         return self.ppm
 
     def set_ppm(self, ppm):
         self.ppm = ppm
-        self.rtlsdr_source_0.set_freq_corr(self.ppm, 0)
-        Qt.QMetaObject.invokeMethod(self._ppm_counter, "setValue", Qt.Q_ARG("double", self.ppm))
-
-    def get_g(self):
-        return self.g
-
-    def set_g(self, g):
-        self.g = g
-        Qt.QMetaObject.invokeMethod(self._g_counter, "setValue", Qt.Q_ARG("double", self.g))
-        self.rtlsdr_source_0.set_gain(self.g, 0)
+        self.set_ppm_slider(self.ppm)
 
     def get_fc(self):
         return self.fc
@@ -250,10 +227,49 @@
     def set_fc(self, fc):
         self.fc = fc
         self.gsm_input_0.set_fc(self.fc)
-        self.rtlsdr_source_0.set_center_freq(self.fc, 0)
         self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
-        Qt.QMetaObject.invokeMethod(self._fc_counter, "setValue", Qt.Q_ARG("double", self.fc))
-        Qt.QMetaObject.invokeMethod(self._fc_slider, "setValue", Qt.Q_ARG("double", self.fc))
+        self.set_fc_slider(self.fc)
+
+    def get_gain(self):
+        return self.gain
+
+    def set_gain(self, gain):
+        self.gain = gain
+        self.set_g_slider(self.gain)
+
+    def get_samp_rate(self):
+        return self.samp_rate
+
+    def set_samp_rate(self, samp_rate):
+        self.samp_rate = samp_rate
+        self.gsm_input_0.set_samp_rate_in(self.samp_rate)
+        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
+        self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
+
+    def get_ppm_slider(self):
+        return self.ppm_slider
+
+    def set_ppm_slider(self, ppm_slider):
+        self.ppm_slider = ppm_slider
+        self.rtlsdr_source_0.set_freq_corr(self.ppm_slider, 0)
+        Qt.QMetaObject.invokeMethod(self._ppm_slider_counter, "setValue", Qt.Q_ARG("double", self.ppm_slider))
+
+    def get_g_slider(self):
+        return self.g_slider
+
+    def set_g_slider(self, g_slider):
+        self.g_slider = g_slider
+        self.rtlsdr_source_0.set_gain(self.g_slider, 0)
+        Qt.QMetaObject.invokeMethod(self._g_slider_counter, "setValue", Qt.Q_ARG("double", self.g_slider))
+
+    def get_fc_slider(self):
+        return self.fc_slider
+
+    def set_fc_slider(self, fc_slider):
+        self.fc_slider = fc_slider
+        self.rtlsdr_source_0.set_center_freq(self.fc_slider, 0)
+        Qt.QMetaObject.invokeMethod(self._fc_slider_counter, "setValue", Qt.Q_ARG("double", self.fc_slider))
+        Qt.QMetaObject.invokeMethod(self._fc_slider_slider, "setValue", Qt.Q_ARG("double", self.fc_slider))
 
     def get_SDCCH(self):
         return self.SDCCH
@@ -307,13 +323,19 @@
         except:
             print "Warning: failed to XInitThreads()"
     parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
-    parser.add_option("-p", "--ppm-param", dest="ppm_param", type="intx", default=0,
+    parser.add_option("-p", "--ppm", dest="ppm", type="intx", default=0,
         help="Set ppm [default=%default]")
+    parser.add_option("-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(939.4e6),
+        help="Set fc [default=%default]")
+    parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30),
+        help="Set gain [default=%default]")
+    parser.add_option("-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982),
+        help="Set samp_rate [default=%default]")
     (options, args) = parser.parse_args()
     if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")):
         Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
     qapp = Qt.QApplication(sys.argv)
-    tb = airprobe_rtlsdr(ppm_param=options.ppm_param)
+    tb = airprobe_rtlsdr(ppm=options.ppm, fc=options.fc, gain=options.gain, samp_rate=options.samp_rate)
     tb.start()
     tb.show()
     def quitting():