You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.2 KiB
1.2 KiB
lws minimal raw audio
This demonstrates operating ALSA playback and capture using the lws event loop via raw file descriptors.
You need the lws cmake option -DLWS_WITH_ALSA=1
This example opens the default ALSA playback and capture devices and pipes the capture data into the playback with something over 1s delay via a ringbuffer.
ALSA doesn't really lend itself to direct use with event loops... this example uses the capture channel which does create POLLIN normally as the timesource for the playback as well; they're both set to 16000Hz sample rate.
build
$ cmake . && make
usage
$ ./lws-minimal-raw-audio
[2019/10/14 18:58:49:3288] U: LWS minimal raw audio
[2019/10/14 18:58:50:3438] N: LWS_CALLBACK_RAW_ADOPT_FILE
[2019/10/14 18:58:50:3455] N: LWS_CALLBACK_RAW_ADOPT_FILE
[2019/10/14 18:58:50:4764] N: LWS_CALLBACK_RAW_RX_FILE: 2062 samples
[2019/10/14 18:58:50:6132] N: LWS_CALLBACK_RAW_RX_FILE: 2205 samples
[2019/10/14 18:58:50:7592] N: LWS_CALLBACK_RAW_RX_FILE: 2328 samples
...
^C[2019/10/14 18:58:56:8460] N: LWS_CALLBACK_RAW_CLOSE_FILE
[2019/10/14 18:58:56:8461] N: LWS_CALLBACK_RAW_CLOSE_FILE
[2019/10/14 18:58:56:8461] N: LWS_CALLBACK_PROTOCOL_DESTROY
$