Imported Upstream version 3.2.2
[debian/gnuradio] / gr-usrp2 / src / usrp2_source_base.cc
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2008 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 #ifdef HAVE_CONFIG_H
24 #include <config.h>
25 #endif
26
27 #include <usrp2_source_base.h>
28 #include <gr_io_signature.h>
29 #include <iostream>
30
31 usrp2_source_base::usrp2_source_base(const char *name,
32                                      gr_io_signature_sptr output_signature,
33                                      const std::string &ifc,
34                                      const std::string &mac) 
35   throw (std::runtime_error)
36   : usrp2_base(name,
37                gr_make_io_signature(0, 0, 0),
38                output_signature,
39                ifc, mac)
40 {
41   // NOP
42 }
43
44 usrp2_source_base::~usrp2_source_base ()
45 {
46   // NOP
47 }
48
49 bool
50 usrp2_source_base::set_gain(double gain)
51 {
52   return d_u2->set_rx_gain(gain);
53 }
54
55 bool
56 usrp2_source_base::set_lo_offset(double frequency)
57 {
58   return d_u2->set_rx_lo_offset(frequency);
59 }
60
61 bool
62 usrp2_source_base::set_center_freq(double frequency, usrp2::tune_result *tr)
63 {
64   return d_u2->set_rx_center_freq(frequency, tr);
65 }
66
67 bool
68 usrp2_source_base::set_decim(int decimation_factor)
69 {
70   return d_u2->set_rx_decim(decimation_factor);
71 }
72
73 bool 
74 usrp2_source_base::set_scale_iq(int scale_i, int scale_q)
75 {
76   return d_u2->set_rx_scale_iq(scale_i, scale_q);
77 }
78
79 int
80 usrp2_source_base::decim()
81 {
82   return d_u2->rx_decim();
83 }
84
85 bool
86 usrp2_source_base::adc_rate(long *rate)
87 {
88   return d_u2->adc_rate(rate);
89 }
90
91 double
92 usrp2_source_base::gain_min()
93 {
94   return d_u2->rx_gain_min();
95 }
96
97 double
98 usrp2_source_base::gain_max()
99 {
100   return d_u2->rx_gain_max();
101 }
102
103 double
104 usrp2_source_base::gain_db_per_step()
105 {
106   return d_u2->rx_gain_db_per_step();
107 }
108   
109 double
110 usrp2_source_base::freq_min()
111 {
112   return d_u2->rx_freq_min();
113 }
114
115 double
116 usrp2_source_base::freq_max()
117 {
118   return d_u2->rx_freq_max();
119 }
120
121 bool
122 usrp2_source_base::daughterboard_id(int *dbid)
123 {
124   return d_u2->rx_daughterboard_id(dbid);
125 }
126
127 unsigned int
128 usrp2_source_base::overruns()
129 {
130   return d_u2->rx_overruns();
131 }
132
133 unsigned int
134 usrp2_source_base::missing()
135 {
136   return d_u2->rx_missing();
137 }
138
139 bool
140 usrp2_source_base::start()
141 {
142   return d_u2->start_rx_streaming(0); // FIXME: someday sources will have channel #s
143 }
144
145 bool
146 usrp2_source_base::stop()
147 {
148   return d_u2->stop_rx_streaming(0); // FIXME: someday sources will have channel #s
149 }
150
151 bool
152 usrp2_source_base::set_gpio_ddr(uint16_t value, uint16_t mask)
153 {
154   return d_u2->set_gpio_ddr(usrp2::GPIO_RX_BANK, value, mask);
155 }
156
157 bool
158 usrp2_source_base::set_gpio_sels(std::string sels)
159 {
160   return d_u2->set_gpio_sels(usrp2::GPIO_RX_BANK, sels);
161 }
162
163 bool
164 usrp2_source_base::write_gpio(uint16_t value, uint16_t mask)
165 {
166   return d_u2->write_gpio(usrp2::GPIO_RX_BANK, value, mask);
167 }
168
169 bool
170 usrp2_source_base::read_gpio(uint16_t *value)
171 {
172   return d_u2->read_gpio(usrp2::GPIO_RX_BANK, value);
173 }
174
175 bool
176 usrp2_source_base::enable_gpio_streaming(int enable)
177 {
178   return d_u2->enable_gpio_streaming(usrp2::GPIO_RX_BANK, enable);
179 }