[alsa-devel] [RFC] Add scenario management

Jaroslav Kysela perex at perex.cz
Fri Oct 2 11:58:47 CEST 2009


On Fri, 2 Oct 2009, Takashi Iwai wrote:

> At Thu,  1 Oct 2009 11:47:14 +0200,
> Stefan Schmidt wrote:
>>
>> Hello.
>>
>> This patchset add support for scenario management, aka use cases, in alsa-lib
>> and example programs in alsa-utils. It allows to adjust the current audio kcontrol
>> settings from a prespective of a changed use case like the switch from listening
>> to music on your phone to an incoming phone call and back.
>
> Great, I've been waiting for this :)
>
>> To achieve this it offers control aliasing for playback, capture master and
>> switch as well as the option to post- and prefix a sequence of control changes
>> avoiding pops and other unwanted noise.
>>
>> This is of course not meant to replace gstreamer, PulseAudio or a sound server,
>> but is meant to work in tandem with such audio software. We think alsa-lib is
>> the best place for this as it will be used on small embedded system which only
>> use alsa from the full stack of audio libs in linux. We see potential for
>> desktop usage as well though.
>
> Agreed.  If any need, I can merge it to salsa-lib, too.

I'm not very persuaded to merge such thing to alsa-lib (at least not to 
alsa-lib.so file - I may accept another library in the alsa-lib package). 
My comments:

1) configuration syntax

    - I know, simple text files are fine, but there are some structured
      things - we have already configuration parsers in alsa-lib for
      structured texts which can be migrated to XML some day

2) mixing high-level and low-level things

    - the idea is to "hide" some hardware details introducing some
      abstraction, but the scenario API ended with "ctl interface" instead
      using a mixer API for apps?
    - I would like to see handling all "virtual card" stuff in the scenario
      API, so user chooses one scenario and gets mixer controls,
      preconfigured pcm devices for playback and capture, rawmidi devices,
      timer devices etc.; it means that user can divide - for example - one
      physical card to more virtual ones with a custom configuration

 						Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.



More information about the Alsa-devel mailing list