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.
104 lines
2.9 KiB
104 lines
2.9 KiB
TinyALSA
|
|
========
|
|
|
|
[![Build Status](https://travis-ci.org/tinyalsa/tinyalsa.svg?branch=master)](https://travis-ci.org/tinyalsa/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:
|
|
|
|
- [CMake](https://en.wikipedia.org/wiki/CMake)
|
|
- [Make](https://en.wikipedia.org/wiki/Make_(software))
|
|
- [Meson](https://en.wikipedia.org/wiki/Meson_(software))
|
|
- [Soong](https://android.googlesource.com/platform/build/soong/+/refs/heads/master/README.md) for Android
|
|
|
|
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](https://en.wikipedia.org/wiki/Debian)
|
|
packages from [launchpad](https://launchpad.net/~taylorcholberton/+archive/ubuntu/tinyalsa):
|
|
|
|
| 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](https://docs.bazel.build/versions/3.7.0/install.html) 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
|
|
```
|