[alsa-devel] Individual PCM stream control

Takashi Iwai tiwai at suse.de
Wed Apr 4 18:21:15 CEST 2007


At Fri, 30 Mar 2007 05:47:11 -0500,
Nagalla, Hari wrote:
> 
> Thanks for the advice.. Couple of inline questions below..
> 
> 
> > -----Original Message-----
> > > I am new to ALSA, so some help from experienced folks would help..
> > >
> > > We are trying to develop ALSA support for our DSP based mixer. In
> our
> > > architecture DSP performs the mixing, sample rate conversion etc. My
> > > question is how, can does the user space applications exercise
> > > controlling individual PCM stream to the mixer? Ex: individual
> stream
> > > gain control, individual stream mute, etc.. Any user space example
> code
> > > would be useful too..
> > 
> > Most drivers create PCM volume controls with IFACE_PCM tag, and set up
> > the volume appropriately at each PCM open, or let alsa-lib configs to
> > set up the initial volumes.  Usually, the control element index
> > corresponds to the PCM substream number.
> 
> Which alsa library API lets us to set up the PCM stream volume? And can
> it be used dynamically when the stream is active?

It is controlled via the normal control API.  Open the snd_ctl_t
handle for the same card (e.g. "hw:0" or "default"), and change the
value of the element.  However, there is no standard name for the
individual PCM volume controls, and currrently depending on the driver
implementation...

> I could n't figure out 'index' of the control element.

It's the index in snd_ctl_elem_id.  You can access via
snd_ctl_elem_id_{get|set}_index() in alsa-lib.


Takashi


More information about the Alsa-devel mailing list