diff options
author | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-05-20 12:30:28 +0200 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-05-20 12:55:52 +0200 |
commit | 3ea0b388109bb8086418dbca62337cc18da420d7 (patch) | |
tree | 212cd38e0b2debbb5ef37bc400f6a5ac2165ad47 /lib/osmosdr_source_c_impl.cc | |
parent | e256bf332e3190d0dba3294698c0855b60ae8bf9 (diff) |
introduce device discovery api
This API allows to acquire a list of devices connected to the host and
creates an argument string ready to be passed to a source object for
cunstruction.
Each device_t entry contains a "label" entry, which holds the generic
device name which may be shown to the user for device selection.
For certain radio hardware extended entries ("name", "serial", "type")
may be available to make bijective device addressing possible.
The argument string for target types "rtl_tcp" and "file" might be
constructed using the osmosdr::device_t class facilities.
Example:
#include <osmosdr_device.h>
#include <osmosdr_source_c.h>
osmosdr::devices_t devs = osmosdr::device::find();
BOOST_FOREACH(osmosdr::device_t &dev, devs) // try to create each dev
osmosdr_source_c_sptr src = osmosdr_make_source_c(dev.to_string());
Diffstat (limited to 'lib/osmosdr_source_c_impl.cc')
-rw-r--r-- | lib/osmosdr_source_c_impl.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/osmosdr_source_c_impl.cc b/lib/osmosdr_source_c_impl.cc index 0c43f74..129701e 100644 --- a/lib/osmosdr_source_c_impl.cc +++ b/lib/osmosdr_source_c_impl.cc @@ -96,7 +96,8 @@ osmosdr_source_c_impl::osmosdr_source_c_impl (const std::string &args) std::vector< std::string > dev_list; #ifdef ENABLE_OSMOSDR - // TODO: implement + BOOST_FOREACH( std::string dev, osmosdr_src_c::get_devices() ) + dev_list.push_back( dev ); #endif #ifdef ENABLE_FCD BOOST_FOREACH( std::string dev, fcd_source::get_devices() ) @@ -133,10 +134,10 @@ osmosdr_source_c_impl::osmosdr_source_c_impl (const std::string &args) if ( dict.count("osmosdr") ) { osmosdr_src_c_sptr src = osmosdr_make_src_c( arg ); -// for (size_t i = 0; i < src->get_num_channels(); i++) -// connect(src, i, self(), channel++); + for (size_t i = 0; i < src->get_num_channels(); i++) + connect(src, i, self(), channel++); -// _devs.push_back( src.get() ); // FIXME: implement interface + _devs.push_back( src.get() ); } #endif |