alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Liam Girdwood <lrg@slimlogic.co.uk>
To: Jaroslav Kysela <perex@perex.cz>
Cc: ALSA development <alsa-devel@alsa-project.org>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>
Subject: Re: [PATCH 0/3] alsa-lib: UCM - Use Case Manager
Date: Tue, 07 Sep 2010 21:02:35 +0100	[thread overview]
Message-ID: <1283889755.3048.185.camel@odin> (raw)
In-Reply-To: <alpine.LNX.2.00.1009072001580.10278@eeebox2.perex-int.cz>

On Tue, 2010-09-07 at 20:17 +0200, Jaroslav Kysela wrote:
> On Tue, 7 Sep 2010, Mark Brown wrote:
> 
> > On Tue, Sep 07, 2010 at 04:42:57PM +0200, Jaroslav Kysela wrote:
> >
> >> control API. I think that it might be more "easy to understand" and
> >> universal to define just sequence of commands like:
> >
> >> SectionDefaults [
> >>          exec "amixer cset name='Master Playback Switch',index=2 1,1"
> >
> > ...
> >
> >> Because "amixer cset" command will be probably most used command, we can
> >> eventually move the amixer code to alsa-lib to not create so much
> >> processes and speed-up things.
> >
> >> It means that the ucm should not track card controls, but commands for
> >> transitions.
> >
> > I don't understand the motivation here - what does this buy us?
> >
> > Looking at this from the embedded perspective I really would much rather
> > see a use case manager that understands what it's doing (rather than
> > essentially just running shell script).  This allows us to do things
> > like specify target states (rather than having to have full sequences
> > for all transitions, which is one of the things it'd be good to avoid)
> > and will allow us to take advantage of any additions to the ALSA APIs
> > for things like batching operations without changes to the per machine
> > configurations.
> >
> > Having the facility to shell out in case some non-ALSA stuff needs to be
> > done might be handy but I'd expect that for things within ALSA a tool
> > like the use case manager would understand ALSA natively.
> >
> > For embedded systems, especially those like mobile phones with extensive
> > use case requirements, the usability issues mostly come from the very
> > large numbers of controls which is at best orthogonal to shelling out to
> > amixer (or whatever) commands.
> 
> My idea is to have the most used commands working with the ALSA API 
> built directly into the ucm code to not use fork/exec so much in embedded 
> environments. 

What does this really buy us over the current (direct alsa-lib API)
code ? 

Fwiw, UCM was never intended to replace any of the alsa-utils, but to
complement them in complex audio systems (like phones).

> But I can imagine that some system configurations can use 
> this API to send events to another manager which can control another 
> parts of the system like video, input devices, network devices and so on 
> according the sound setup.

UCM is purely to abstract the audio hardware for higher level
middle-ware and applications. It's really up to the system middle-ware
and daemons here to configure/control the other subsystems in line with
the system use case.

> 
> Also, the possibility to generate the alsa-lib's configuration files at 
> run-time might be a nice feature for future. 

Fwiw, UCM is _needed_ now and I really can't emphasise this strongly
enough atm. Some embedded ODMs are even now using and shipping closed
source proprietary software for audio hardware UCM.

The UCM configuration files for embedded system will likely be very
specific to the hardware and not really suited to run time generation.
However, there is nothing stopping runtime generation with the original
file format.   

> I take UCM like a way to 
> integrate all things regarding PCM streams and mixer controls together and 
> let users / system administrators / distribution makers create the 
> abstract layers depending their requirements.
> 
> It's about flexibility.

Exactly, but there is nothing stopping flexibility with the current code
base.

Liam 
-- 
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk

  parent reply	other threads:[~2010-09-07 20:08 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-23 16:17 [PATCH 0/3] alsa-lib: UCM - Use Case Manager Liam Girdwood
2010-08-23 16:17 ` [PATCH 1/3] ucm: header - ALSA " Liam Girdwood
2010-08-24 19:09   ` Chris Winter
2010-08-24 20:34     ` Liam Girdwood
2010-08-23 16:17 ` [PATCH 3/3] ucm: build - add build support for " Liam Girdwood
2010-08-23 17:47 ` [PATCH 0/3] alsa-lib: UCM - " Jaroslav Kysela
2010-08-23 17:50   ` Mark Brown
2010-08-23 17:51     ` Mark Brown
2010-08-24  9:09   ` Liam Girdwood
2010-08-25  8:28     ` Jaroslav Kysela
2010-08-25  9:26       ` Liam Girdwood
2010-08-25  9:35         ` Jaroslav Kysela
2010-08-25 10:43           ` Liam Girdwood
2010-08-25 16:34             ` Jaroslav Kysela
     [not found]               ` <1283864698.3048.26.camel@odin>
2010-09-07 14:42                 ` Jaroslav Kysela
2010-09-07 15:53                   ` Mark Brown
2010-09-07 18:17                     ` Jaroslav Kysela
2010-09-07 18:53                       ` Mark Brown
2010-09-08  7:54                         ` Jaroslav Kysela
2010-09-08  9:47                           ` Mark Brown
2010-09-08  8:19                         ` Jaroslav Kysela
2010-09-09 12:16                           ` Mark Brown
2010-09-07 20:02                       ` Liam Girdwood [this message]
2010-09-07 22:43                         ` Mark Brown
2010-09-20 16:26                   ` Colin Guthrie
2010-09-21 17:13                     ` Chris Winter
2010-09-21 17:40                       ` Mark Brown
2010-09-21 18:11                       ` Jaroslav Kysela
2010-09-22 11:47                         ` Colin Guthrie
2010-09-22 13:20                         ` Mark Brown
2010-09-22 14:06                           ` Jaroslav Kysela
2010-09-22 15:14                             ` Mark Brown
2010-09-22 18:05                               ` Jaroslav Kysela
2010-09-22 18:48                                 ` Mark Brown
2010-09-23  7:18                                   ` Niels Mayer
2010-09-23 10:06                                     ` Mark Brown
2010-09-25 13:07                                     ` Colin Guthrie
2010-09-22 15:20                             ` Liam Girdwood
2010-08-24  1:23 ` Raymond Yau
2010-08-24  9:41   ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1283889755.3048.185.camel@odin \
    --to=lrg@slimlogic.co.uk \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=perex@perex.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).