3 * Copyright 2008,2009 Free Software Foundation, Inc.
5 * This file is part of GNU Radio
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
23 %include "gnuradio.i" // the common stuff
29 %include <usrp/usrp_subdev_spec.h>
30 %include <usrp/db_base.i>
31 %include <fpga_regs_common.h>
32 %include <fpga_regs_standard.h>
33 %include "usrp_standard.i"
34 %include "usrp_base.i"
35 %include "usrp_source_base.i"
36 %include "usrp_source_c.i"
37 %include "usrp_source_s.i"
38 %include "usrp_sink_base.i"
39 %include "usrp_sink_c.i"
40 %include "usrp_sink_s.i"
42 //---Allow a more Pythonic interface
45 # Allow subdev_spec to be tuple
46 def __selected_subdev(self, subdev_spec):
47 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
48 return self._real_selected_subdev(ss)
50 # Allow subdev_spec to be tuple
51 def __determine_tx_mux_value(self, subdev_spec, subdev_spec_=None):
52 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
53 if subdev_spec_ is None: return self._real_determine_tx_mux_value(ss)
54 ss_ = usrp_subdev_spec(subdev_spec_[0], subdev_spec_[1])
55 return self._real_determine_tx_mux_value(ss, ss_)
57 # Allow subdev_spec to be tuple
58 def __determine_rx_mux_value(self, subdev_spec, subdev_spec_=None):
59 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
60 if subdev_spec_ is None: return self._real_determine_rx_mux_value(ss)
61 ss_ = usrp_subdev_spec(subdev_spec_[0], subdev_spec_[1])
62 return self._real_determine_rx_mux_value(ss, ss_)
64 # Allow subdev_spec to be tuple
65 def __pick_subdev(self, candidates=[]):
66 ss = self._real_pick_subdev(candidates)
67 return (ss.side, ss.subdev)
69 # Allow subdev_spec to be tuple
70 def __pick_tx_subdevice(self):
71 ss = self._real_pick_tx_subdevice()
72 return (ss.side, ss.subdev)
74 # Allow subdev_spec to be tuple
75 def __pick_rx_subdevice(self):
76 ss = self._real_pick_rx_subdevice()
77 return (ss.side, ss.subdev)
79 # Make return tune_result or None on failure
80 def __tune(self, chan, db, target_freq):
81 tr = usrp_tune_result()
82 r = self._real_tune(chan, db, target_freq, tr)
88 # Allow to be called as a free function
89 def tune(u, chan, subdev, target_freq):
90 return u.tune(chan, subdev, target_freq)
92 # Allow to be called as free function
93 def determine_tx_mux_value(u, subdev_spec, subdev_spec_=None):
94 return u.determine_tx_mux_value(subdev_spec, subdev_spec_)
96 # Allow to be called as free function
97 def determine_rx_mux_value(u, subdev_spec, subdev_spec_=None):
98 return u.determine_rx_mux_value(subdev_spec, subdev_spec_)
100 # Allow to be called as free function
101 def selected_subdev(u, subdev_spec):
102 return u.selected_subdev(subdev_spec)
104 # Allow to be called as free function
105 def pick_subdev(u, candidates=[]):
106 return u.pick_subdev(candidates);
108 # Allow to be called as free function
109 def pick_tx_subdevice(u):
110 return u.pick_tx_subdevice();
112 # Allow to be called as free function
113 def pick_rx_subdevice(u):
114 return u.pick_rx_subdevice();
116 # Jam into Python objects
117 usrp_sink_c_sptr.determine_tx_mux_value = __determine_tx_mux_value
118 usrp_sink_s_sptr.determine_tx_mux_value = __determine_tx_mux_value
120 usrp_source_c_sptr.determine_rx_mux_value = __determine_rx_mux_value
121 usrp_source_s_sptr.determine_rx_mux_value = __determine_rx_mux_value
123 usrp_sink_c_sptr.selected_subdev = __selected_subdev
124 usrp_sink_s_sptr.selected_subdev = __selected_subdev
125 usrp_source_c_sptr.selected_subdev = __selected_subdev
126 usrp_source_s_sptr.selected_subdev = __selected_subdev
128 usrp_sink_c_sptr.tune = __tune
129 usrp_sink_s_sptr.tune = __tune
130 usrp_source_c_sptr.tune = __tune
131 usrp_source_s_sptr.tune = __tune
133 usrp_sink_c_sptr.pick_subdev = __pick_subdev
134 usrp_sink_s_sptr.pick_subdev = __pick_subdev
135 usrp_source_c_sptr.pick_subdev = __pick_subdev
136 usrp_source_s_sptr.pick_subdev = __pick_subdev
138 usrp_sink_c_sptr.pick_tx_subdevice = __pick_tx_subdevice
139 usrp_sink_s_sptr.pick_tx_subdevice = __pick_tx_subdevice
140 usrp_source_c_sptr.pick_rx_subdevice = __pick_rx_subdevice
141 usrp_source_s_sptr.pick_rx_subdevice = __pick_rx_subdevice