20 #ifndef INCLUDED_OSMOSDR_SOURCE_H
21 #define INCLUDED_OSMOSDR_SOURCE_H
26 #include <gnuradio/hier_block2.h>
41 typedef boost::shared_ptr< source >
sptr;
53 static sptr make(
const std::string & args =
"" );
59 virtual size_t get_num_channels(
void ) = 0;
68 virtual bool seek(
long seek_point,
int whence,
size_t chan = 0 ) = 0;
81 virtual double set_sample_rate(
double rate ) = 0;
88 virtual double get_sample_rate(
void ) = 0;
104 virtual double set_center_freq(
double freq,
size_t chan = 0 ) = 0;
112 virtual double get_center_freq(
size_t chan = 0 ) = 0;
120 virtual double set_freq_corr(
double ppm,
size_t chan = 0 ) = 0;
127 virtual double get_freq_corr(
size_t chan = 0 ) = 0;
134 virtual std::vector<std::string> get_gain_names(
size_t chan = 0 ) = 0;
150 size_t chan = 0 ) = 0;
159 virtual bool set_gain_mode(
bool automatic,
size_t chan = 0 ) = 0;
166 virtual bool get_gain_mode(
size_t chan = 0 ) = 0;
176 virtual double set_gain(
double gain,
size_t chan = 0 ) = 0;
185 virtual double set_gain(
double gain,
186 const std::string & name,
187 size_t chan = 0 ) = 0;
194 virtual double get_gain(
size_t chan = 0 ) = 0;
202 virtual double get_gain(
const std::string & name,
size_t chan = 0 ) = 0;
212 virtual double set_if_gain(
double gain,
size_t chan = 0 ) = 0;
222 virtual double set_bb_gain(
double gain,
size_t chan = 0 ) = 0;
229 virtual std::vector< std::string > get_antennas(
size_t chan = 0 ) = 0;
237 virtual std::string set_antenna(
const std::string & antenna,
238 size_t chan = 0 ) = 0;
245 virtual std::string get_antenna(
size_t chan = 0 ) = 0;
265 virtual void set_dc_offset_mode(
int mode,
size_t chan = 0) = 0;
275 virtual void set_dc_offset(
const std::complex<double> &offset,
size_t chan = 0 ) = 0;
289 virtual void set_iq_balance_mode(
int mode,
size_t chan = 0 ) = 0;
298 virtual void set_iq_balance(
const std::complex<double> &balance,
size_t chan = 0 ) = 0;
306 virtual double set_bandwidth(
double bandwidth,
size_t chan = 0 ) = 0;
313 virtual double get_bandwidth(
size_t chan = 0 ) = 0;
330 virtual void set_time_source(
const std::string &
source,
331 const size_t mboard = 0) = 0;
338 virtual std::string get_time_source(
const size_t mboard) = 0;
345 virtual std::vector<std::string> get_time_sources(
const size_t mboard) = 0;
354 virtual void set_clock_source(
const std::string &
source,
355 const size_t mboard = 0) = 0;
362 virtual std::string get_clock_source(
const size_t mboard) = 0;
369 virtual std::vector<std::string> get_clock_sources(
const size_t mboard) = 0;
376 virtual double get_clock_rate(
size_t mboard = 0) = 0;
383 virtual void set_clock_rate(
double rate,
size_t mboard = 0) = 0;
390 virtual ::osmosdr::time_spec_t get_time_now(
size_t mboard = 0) = 0;
397 virtual ::osmosdr::time_spec_t get_time_last_pps(
size_t mboard = 0) = 0;
404 virtual void set_time_now(const ::osmosdr::time_spec_t &time_spec,
405 size_t mboard = 0) = 0;
411 virtual void set_time_next_pps(const ::osmosdr::time_spec_t &time_spec) = 0;
417 virtual void set_time_unknown_pps(const ::osmosdr::time_spec_t &time_spec) = 0;