Throw a runtime error if the buffer cannot be created

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Device source block: Fix segfault when demuxing samples

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Device source block: Fix block outputing incorrect values

The demultiplexing process was stopping too early, and only the first
part of the buffer would contain meaningful values.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Device source block: Don't refill in a thread

This seems to give zero advantage, as GnuRadio already expects the
block to take some time to execute.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Drop requirement of C++11

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
Added a 'fmradio' example using the FMCOMMS2 source block

For it to work properly, you may have to switch the "gain control mode"
to "fast attack" with the IIO oscilloscope, then to "slow attack" again.

It is advised to run the generated Python script with a negative
niceness and/or with a realtime kernel, to ensure that no samples are
lost.

Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>