This patch series follows on from the RFC and adds sound card hardware Use Case Management support to alsa-lib.
The main features of UCM are :-
o Abstraction of sound card hardware routing and controls into high level use case verbs, devices and modifiers. o Discovery of source/sink PCMs for each use case. o Discovery of hardware master volume controls for each use case.
It's intended UCM will provide clients (like pulseaudio) complete control over hardware signal routing within a sound card without any knowledge of the sound card hardware.
Use case definintions are stored in text files (per sound card) and are now divided into three components as descibed in the RFC.
A working use case definition file can be found here :-
http://git.slimlogic.co.uk/cgi-bin/cgit.cgi/alsa-ucm-conf.git/tree/cards/SDP...
The three components of a use case are now :-
1) Verb (or action). This is mandatory and describes (in terms of ALSA control settings) the system use case action. e.g "Phone Call", "Music Playback".
2) Device. This is also mandatory and describes the audio playback or capture device. e.g. "Handset", "Bluetooth", "Headset".
3) Modifier. This is optional and is used to modify the current use case verb. i.e. The user could be listening to music when an incoming phone call requires that a ring tone is played. In this case the use case verb would be set to "Music Playback" when the music playback started and then the "Tone Playback" modifier could be enabled to play the ring tone. The use case verb would then be changed to "Voice Call" if the call was accepted.
Patch 2/3 is a little on the large side so, I've included a link if it gets bounced by the list.
http://git.slimlogic.co.uk/cgi-bin/cgit.cgi/alsa-lib.git/commit/?h=ucm-upstr...
Liam Girdwood (3): ucm: header - ALSA Use Case Manager ucm: core - Add initial Use Case Manager support. ucm: build - add build support for Use Case Manager
doc/doxygen.cfg.in | 1 + include/Makefile.am | 2 +- include/use-case.h | 427 +++++++ src/Makefile.am | 2 +- src/use-case.c | 3515 +++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 3945 insertions(+), 2 deletions(-) create mode 100644 include/use-case.h create mode 100644 src/use-case.c