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 %feature("autodoc", "1"); // generate python docstrings
25 %import (module="gnuradio.gr.gnuradio_swig_py_runtime") "gnuradio.i" // the common stuff
28 #include "gnuradio_swig_bug_workaround.h" // mandatory bug fix
32 %include <usrp_subdev_spec.h>
34 %include <fpga_regs_common.h>
35 %include <fpga_regs_standard.h>
36 %include "usrp_standard.i"
37 %include "usrp_base.i"
38 %include "usrp_source_base.i"
39 %include "usrp_source_c.i"
40 %include "usrp_source_s.i"
41 %include "usrp_sink_base.i"
42 %include "usrp_sink_c.i"
43 %include "usrp_sink_s.i"
45 //---Allow a more Pythonic interface
48 # Allow subdev_spec to be tuple
49 def __selected_subdev(self, subdev_spec):
50 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
51 return self._real_selected_subdev(ss)
53 # Allow subdev_spec to be tuple
54 def __determine_tx_mux_value(self, subdev_spec):
55 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
56 return self._real_determine_tx_mux_value(ss)
58 # Allow subdev_spec to be tuple
59 def __determine_rx_mux_value(self, subdev_spec):
60 ss = usrp_subdev_spec(subdev_spec[0], subdev_spec[1])
61 return self._real_determine_rx_mux_value(ss)
63 # Allow subdev_spec to be tuple
64 def __pick_subdev(self, candidates=[]):
65 ss = self._real_pick_subdev(candidates)
66 return (ss.side, ss.subdev)
68 # Allow subdev_spec to be tuple
69 def __pick_tx_subdevice(self):
70 ss = self._real_pick_tx_subdevice()
71 return (ss.side, ss.subdev)
73 # Allow subdev_spec to be tuple
74 def __pick_rx_subdevice(self):
75 ss = self._real_pick_rx_subdevice()
76 return (ss.side, ss.subdev)
78 # Make return tune_result or None on failure
79 def __tune(self, chan, db, target_freq):
80 tr = usrp_tune_result()
81 r = self._real_tune(chan, db, target_freq, tr)
87 # Allow to be called as a free function
88 def tune(u, chan, subdev, target_freq):
89 return u.tune(chan, subdev, target_freq)
91 # Allow to be called as free function
92 def determine_tx_mux_value(u, subdev_spec):
93 return u.determine_tx_mux_value(subdev_spec)
95 # Allow to be called as free function
96 def determine_rx_mux_value(u, subdev_spec):
97 return u.determine_rx_mux_value(subdev_spec)
99 # Allow to be called as free function
100 def selected_subdev(u, subdev_spec):
101 return u.selected_subdev(subdev_spec)
103 # Allow to be called as free function
104 def pick_subdev(u, candidates=[]):
105 return u.pick_subdev(candidates);
107 # Allow to be called as free function
108 def pick_tx_subdevice(u):
109 return u.pick_tx_subdevice();
111 # Allow to be called as free function
112 def pick_rx_subdevice(u):
113 return u.pick_rx_subdevice();
115 # Jam into Python objects
116 usrp_sink_c_sptr.determine_tx_mux_value = __determine_tx_mux_value
117 usrp_sink_s_sptr.determine_tx_mux_value = __determine_tx_mux_value
119 usrp_source_c_sptr.determine_rx_mux_value = __determine_rx_mux_value
120 usrp_source_s_sptr.determine_rx_mux_value = __determine_rx_mux_value
122 usrp_sink_c_sptr.selected_subdev = __selected_subdev
123 usrp_sink_s_sptr.selected_subdev = __selected_subdev
124 usrp_source_c_sptr.selected_subdev = __selected_subdev
125 usrp_source_s_sptr.selected_subdev = __selected_subdev
127 usrp_sink_c_sptr.tune = __tune
128 usrp_sink_s_sptr.tune = __tune
129 usrp_source_c_sptr.tune = __tune
130 usrp_source_s_sptr.tune = __tune
132 usrp_sink_c_sptr.pick_subdev = __pick_subdev
133 usrp_sink_s_sptr.pick_subdev = __pick_subdev
134 usrp_source_c_sptr.pick_subdev = __pick_subdev
135 usrp_source_s_sptr.pick_subdev = __pick_subdev
137 usrp_sink_c_sptr.pick_tx_subdevice = __pick_tx_subdevice
138 usrp_sink_s_sptr.pick_tx_subdevice = __pick_tx_subdevice
139 usrp_source_c_sptr.pick_rx_subdevice = __pick_rx_subdevice
140 usrp_source_s_sptr.pick_rx_subdevice = __pick_rx_subdevice