I have created a new top level component called gr-audio. The goal of
gr-audio is to combine all supported audio architectures under a single
source and sink block.
Gnuradio has 6 different top level components, each for a different
audio architecture. If you used audio in python, this was transparent,
as the python file was test-importing each possible architecture. But if
you used audio in c++, you would have to hard-code a specific audio
architecture into your code.
gr-audio presents one interface to the user in both c++ and python. At
build-time, all architectures available to the compiler are built into
the library. At runtime, an available audio architecture is selected.
This selection is based on default priority, or if present, a
configuration file setting.
The build system will continue to configure and build the old top-level
components; so this will not break C++ that was coded for a specific
audio component. Anyone using audio block in python will be
automatically calling into the new component.
I was able to test 4 of the 6 architectures. Testers for the osx and
windows audio support would be appreciated.