[pulseaudio-discuss] [RFC] Alsa UCM integration.

Margarita Olaya magi at slimlogic.co.uk
Mon Feb 7 12:49:22 PST 2011


I'm working on the integration of pulseaudio with ALSA Use Case
Manager (UCM) - released in alsa-lib 1.0.24.  UCM abstracts sound card
mixer controls into high level use case verbs like "phone call" or
"music". This is especially important on complicated audio devices
like phones that expose a lot of mixers.

UCM stores the mixer settings per use case in configuration files.
These files also contain other information that pulseaudio could use

* list of use case verbs per card or machine - The use case verb is
the audio use case action.
e.g. the "phone call" use case verb will configure the audio hardware
for phone call playback and capture. Other example verbs are:  FM
Analog Radio, HiFi Music, etc.

* supported devices per use case verb
e.g configures hardware for Speaker, Line, Headphones, Headset,
Handset. etc. for each use case. The use case could be HiFi music and
the device could be set to either Speaker or Headphones, etc.

* use case sink device
* use case source device

e.g. pcm0 is the sink for music, pcm3 is the sink for tones

* hardware playback volume control id (per use case verb and device)
* hardware playback mute switch id
* hardware capture volume control id
* hardware capture mute switch id

e.g. The alsa mixer control id that directly effects the audio for
each use case and device.

I've created some code that can read this data out of UCM in module
alsa-card but I'm now looking for the best way to store this into the
prop list for the sound card. e.g. should I extend intended roles
proplist or add new proplist types for UCM.

It's intended that the UCM properties will be checked every time a new
stream is opened so that pulseaudio can configure the hardware
correctly for that stream. e.g. phone call application opens a new
stream so pulseaudio will configure sound hardware via UCM for a phone

Any suggestions appreciated.


More information about the pulseaudio-discuss mailing list