Use runtime valid module names for import
[debian/gnuradio] / gr-usrp / src / usrp.i
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2008,2009 Free Software Foundation, Inc.
4  * 
5  * This file is part of GNU Radio
6  * 
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)
10  * any later version.
11  * 
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.
16  * 
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.
21  */
22
23 %feature("autodoc", "1");               // generate python docstrings
24
25 %import (module="gnuradio.gr.gnuradio_swig_py_runtime") "gnuradio.i"    // the common stuff
26
27 %{
28 #include "gnuradio_swig_bug_workaround.h"       // mandatory bug fix
29 #include <vector>
30 %}
31
32 %include <usrp_subdev_spec.h>
33 %include <db_base.i>
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"
44
45 //---Allow a more Pythonic interface
46 %pythoncode %{
47
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)
52
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)
57
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)
62
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)
67
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)
72
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)
77
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)
82     if r:
83         return tr
84     else:
85         return None
86
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)
90
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)
94
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)
98
99 # Allow to be called as free function
100 def selected_subdev(u, subdev_spec):
101     return u.selected_subdev(subdev_spec)
102
103 # Allow to be called as free function
104 def pick_subdev(u, candidates=[]):
105     return u.pick_subdev(candidates);
106
107 # Allow to be called as free function
108 def pick_tx_subdevice(u):
109     return u.pick_tx_subdevice();
110
111 # Allow to be called as free function
112 def pick_rx_subdevice(u):
113     return u.pick_rx_subdevice();
114
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
118
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
121
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
126
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
131
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
136
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
141
142 %}