xref: /aosp_15_r20/external/libwebsockets/minimal-examples/raw/minimal-raw-audio/README.md (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker# lws minimal raw audio
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates operating ALSA playback and capture using the lws event loop
4*1c60b9acSAndroid Build Coastguard Workervia raw file descriptors.
5*1c60b9acSAndroid Build Coastguard Worker
6*1c60b9acSAndroid Build Coastguard WorkerYou need the lws cmake option `-DLWS_WITH_ALSA=1`
7*1c60b9acSAndroid Build Coastguard Worker
8*1c60b9acSAndroid Build Coastguard WorkerThis example opens the default ALSA playback and capture devices and pipes the
9*1c60b9acSAndroid Build Coastguard Workercapture data into the playback with something over 1s delay via a ringbuffer.
10*1c60b9acSAndroid Build Coastguard Worker
11*1c60b9acSAndroid Build Coastguard WorkerALSA doesn't really lend itself to direct use with event loops... this example
12*1c60b9acSAndroid Build Coastguard Workeruses the capture channel which does create POLLIN normally as the timesource
13*1c60b9acSAndroid Build Coastguard Workerfor the playback as well; they're both set to 16000Hz sample rate.
14*1c60b9acSAndroid Build Coastguard Worker
15*1c60b9acSAndroid Build Coastguard Worker## build
16*1c60b9acSAndroid Build Coastguard Worker
17*1c60b9acSAndroid Build Coastguard Worker```
18*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make
19*1c60b9acSAndroid Build Coastguard Worker```
20*1c60b9acSAndroid Build Coastguard Worker
21*1c60b9acSAndroid Build Coastguard Worker## usage
22*1c60b9acSAndroid Build Coastguard Worker
23*1c60b9acSAndroid Build Coastguard Worker```
24*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-raw-audio
25*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:49:3288] U: LWS minimal raw audio
26*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:50:3438] N: LWS_CALLBACK_RAW_ADOPT_FILE
27*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:50:3455] N: LWS_CALLBACK_RAW_ADOPT_FILE
28*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:50:4764] N: LWS_CALLBACK_RAW_RX_FILE: 2062 samples
29*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:50:6132] N: LWS_CALLBACK_RAW_RX_FILE: 2205 samples
30*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:50:7592] N: LWS_CALLBACK_RAW_RX_FILE: 2328 samples
31*1c60b9acSAndroid Build Coastguard Worker...
32*1c60b9acSAndroid Build Coastguard Worker^C[2019/10/14 18:58:56:8460] N: LWS_CALLBACK_RAW_CLOSE_FILE
33*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:56:8461] N: LWS_CALLBACK_RAW_CLOSE_FILE
34*1c60b9acSAndroid Build Coastguard Worker[2019/10/14 18:58:56:8461] N: LWS_CALLBACK_PROTOCOL_DESTROY
35*1c60b9acSAndroid Build Coastguard Worker$
36*1c60b9acSAndroid Build Coastguard Worker
37*1c60b9acSAndroid Build Coastguard Worker```
38