TinyALSA
TinyALSA is a small library to interface with ALSA in the Linux kernel.
The aims are:
- Provide a basic pcm and mixer API.
- If it's not absolutely needed, don't add it to the API.
- Avoid supporting complex and unnecessary operations, that could be dealt with at a higher level.
- Provide comprehensive documentation.
Building
TinyALSA supports these build systems:
To build and install with Make, run the commands:
make
sudo make install
sudo ldconfig
Installing
TinyALSA is now available as a set of the following Debian packages from launchpad:
| Package Name: | Description: | |-----------------|-----------------------------------------------------| | tinyalsa | Contains tinyplay, tinycap, tinymix and tinypcminfo | | libtinyalsa | Contains the shared library | | libtinyalsa-dev | Contains the static library and header files |
To install these packages, run the commands:
sudo apt-add-repository ppa:taylorcholberton/tinyalsa
sudo apt-get update
sudo apt-get install tinyalsa
sudo apt-get install libtinyalsa-dev
Documentation
Once installed, the man pages are available via:
man tinyplay
man tinycap
man tinymix
man tinypcminfo
man libtinyalsa-pcm
man libtinyalsa-mixer
Test
To test libtinyalsa, please follow the instructions,
Setup Bazel build environment
Visit here to get more info to setup Bazel environment.
Insert loopback devices
The test program does pcm_* operations on loopback devices. You have to insert loopback devices after your system boots up.
sudo modprobe snd-aloop
sudo chmod 777 /dev/snd/*
Run test program
bazel test //:tinyalsa_tests --test_output=all
The default playback device is hw:2,0 and the default capture device is hw:2,1. If your loopback devices are not hw:2,0 and hw:2,1, you can specify the loopback device.
bazel test //:tinyalsa_tests --test_output=all \
--copt=-DTEST_LOOPBACK_CARD=[loopback card] \
--copt=-DTEST_LOOPBACK_PLAYBACK_DEVICE=[loopback playback device] \
--copt=-DTEST_LOOPBACK_CAPTURE_DEVICE=[loopback capture device]
Generate coverage report
bazel coverage //:tinyalsa_tests --combined_report=lcov --test_output=all
genhtml bazel-out/_coverage/_coverage_report.dat -o tinyalsa_tests_coverage