Re: Master vs. Front/Rear/LFE/... elements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 07.05.09 12:30, Takashi Iwai (tiwai@xxxxxxx) wrote:

> 
> At Thu, 7 May 2009 11:09:16 +0100,
> Mark Brown wrote:
> > 
> > On Thu, May 07, 2009 at 10:49:22AM +0200, Takashi Iwai wrote:
> > 
> > > IMO, the best would be a total rewrite of the current mixer API, as I
> > > mentioned some times.  Right now it's more complicated than needed,
> > > but not powerful enough to handle exceptional cases.
> > 
> > Indeed - for example, something that allowed audio routing to be
> > expressed in the mixing API would be a very big win for embedded systems
> > too.
> 
> Right.  But this would also require some changes in the driver side,
> and it could be complicated.
> 
> Actually, we had this kind of information in the time of ALSA 0.5.
> However, it ended up with too burden to the driver code because one
> had to write a comprehensive static graph in the driver code itself
> (generated by hand!).  Also, some mixer elements are tightly coupled
> with certain audio components, but some are pretty abstract and hard
> to put into a graph.  So, we reduced that in the newer API and
> implemented a straight array of control elements instead.
> 
> Nevertheless, a sort of linking would be useful in addition to the
> current form.  For example, coupling between the control element and
> the PCM stream is missing, too.
> 
> Alternatively, we may have an external data outside the kernel
> driver.  In that case, the data can be expressed more flexibly
> (XML? Oh yeah :)

That would actually work for me and I wouldn't even be that disgusted
by this usage of XML ;-)

>From the PA perspective I actually don't really need the full routing
of the sound card exposed. I always want to focus on actual end-user
use cases instead of exposing the full mixer capabilities. All I need
to know is which elements are in the pipeline from my PCM streams to a
specific output, resp. from a specific input to my PCM stream and a
more high-level idea what those elements actually mean. i.e. all I
need would be an API like this:

int snd_pcm_get_mixer_path(snd_pcm_t *pcm, snd_mixer_selem_id_t
path[], unsigned n);

This would simply return an array of mixer element ids that are in the
pipeline to the output, resp. from the input, ordered.

Then, a trivial API that allows me to identify what a mixer element's
use is would be all I need. 

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux