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