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