20 #ifndef INCLUDED_OSMOSDR_SOURCE_H
21 #define INCLUDED_OSMOSDR_SOURCE_H
26 #include <gnuradio/hier_block2.h>
41 typedef std::shared_ptr< source >
sptr;
53 static sptr make(
const std::string & args =
"" );
59 virtual size_t get_num_channels(
void ) = 0;
69 virtual bool seek(
long seek_point,
int whence,
size_t chan = 0 ) = 0;
82 virtual double set_sample_rate(
double rate ) = 0;
89 virtual double get_sample_rate(
void ) = 0;
105 virtual double set_center_freq(
double freq,
size_t chan = 0 ) = 0;
113 virtual double get_center_freq(
size_t chan = 0 ) = 0;
121 virtual double set_freq_corr(
double ppm,
size_t chan = 0 ) = 0;
128 virtual double get_freq_corr(
size_t chan = 0 ) = 0;
135 virtual std::vector<std::string> get_gain_names(
size_t chan = 0 ) = 0;
151 size_t chan = 0 ) = 0;
160 virtual bool set_gain_mode(
bool automatic,
size_t chan = 0 ) = 0;
167 virtual bool get_gain_mode(
size_t chan = 0 ) = 0;
177 virtual double set_gain(
double gain,
size_t chan = 0 ) = 0;
186 virtual double set_gain(
double gain,
187 const std::string & name,
188 size_t chan = 0 ) = 0;
195 virtual double get_gain(
size_t chan = 0 ) = 0;
203 virtual double get_gain(
const std::string & name,
size_t chan = 0 ) = 0;
213 virtual double set_if_gain(
double gain,
size_t chan = 0 ) = 0;
223 virtual double set_bb_gain(
double gain,
size_t chan = 0 ) = 0;
230 virtual std::vector< std::string > get_antennas(
size_t chan = 0 ) = 0;
238 virtual std::string set_antenna(
const std::string & antenna,
239 size_t chan = 0 ) = 0;
246 virtual std::string get_antenna(
size_t chan = 0 ) = 0;
266 virtual void set_dc_offset_mode(
int mode,
size_t chan = 0) = 0;
276 virtual void set_dc_offset(
const std::complex<double> &offset,
size_t chan = 0 ) = 0;
290 virtual void set_iq_balance_mode(
int mode,
size_t chan = 0 ) = 0;
299 virtual void set_iq_balance(
const std::complex<double> &balance,
size_t chan = 0 ) = 0;
307 virtual double set_bandwidth(
double bandwidth,
size_t chan = 0 ) = 0;
314 virtual double get_bandwidth(
size_t chan = 0 ) = 0;
331 virtual void set_time_source(
const std::string &
source,
332 const size_t mboard = 0) = 0;
339 virtual std::string get_time_source(
const size_t mboard) = 0;
346 virtual std::vector<std::string> get_time_sources(
const size_t mboard) = 0;
355 virtual void set_clock_source(
const std::string &
source,
356 const size_t mboard = 0) = 0;
363 virtual std::string get_clock_source(
const size_t mboard) = 0;
370 virtual std::vector<std::string> get_clock_sources(
const size_t mboard) = 0;
377 virtual double get_clock_rate(
size_t mboard = 0) = 0;
384 virtual void set_clock_rate(
double rate,
size_t mboard = 0) = 0;
391 virtual ::osmosdr::time_spec_t get_time_now(
size_t mboard = 0) = 0;
398 virtual ::osmosdr::time_spec_t get_time_last_pps(
size_t mboard = 0) = 0;
405 virtual void set_time_now(const ::osmosdr::time_spec_t &time_spec,
406 size_t mboard = 0) = 0;
412 virtual void set_time_next_pps(const ::osmosdr::time_spec_t &time_spec) = 0;
418 virtual void set_time_unknown_pps(const ::osmosdr::time_spec_t &time_spec) = 0;