Some of you may have seen this already when I was asking licensing
questions, but others may still be curious.
In the course of other development efforts, I had a need for an abstraction
layer that had more features than ExtIO. In particular, I wanted transmit
support (for my bladeRF), as well as better control over gain and other
settings.
What I have come up with is SDRIO: a straightforward C interface for
interacting with SDR devices. I currently support rtl-sdr, bladeRF, and
the Funcube Dongle. Each driver lives in its own module:
SDRIO_bladeRF.dll, etc. Applications can load these modules, query if
devices are present, and then interact with them. All data transfer is
asynchronous.
Currently I only support Windows, though the API is OS-agnostic and the
drivers (particularly rtl-sdr) should be able to be ported in a
straightforward manner.
SDRIO is licensed as LGPL. However, because it uses GPL code, it may not
be distributed with non-GPL applications. It may still be used with
non-GPL applications as long as the distributions are kept wholly separate
(no bundling, auto-downloaders, etc.).
Code is currently kept at:
https://github.com/spcutler/SDRIO
Right now it is in a very alpha state, and subject to change.
Documentation is also currently minimal, although I hope the API is clear
enough to be obvious. I hope to stabilize things once I get some outside
feedback and suggestions. Thanks!
-Scott
PS: Mirics dongle support should be coming soon due to the generosity of a
fellow member of this mailing list.