[alsa-devel] Channel mapping

Takashi Iwai tiwai at suse.de
Wed Nov 21 15:57:53 CET 2007

At Wed, 21 Nov 2007 16:17:41 +0100,
Clemens Ladisch wrote:
> Takashi Iwai wrote:
> > Yes, querying channel mapping is another missing piece with popular
> > demand.
> > 
> > The implementation would be easy, I guess.  But we have to define the
> > way to inform this from kernel to user space: whether create a new
> > ioctl or extend the existing ones (if possible)...
> It's just metadata that describes a PCM device, so I think we should use
> TLV for this.

Yes, TLV came to my mind, too.
First I thought it might be possible to extend channel_info, but it's
apparently not.  So, an ioctl would be the only way.

> The existing struct snd_ctl_tlv uses a single integer to identify
> control elements.  We could restrict control numid's to 31 bits and
> use the upper bit to signal that this value includes device type and
> device number in the lower bits, if we want to reuse the same TLV
> ioctls.

IMO, adding a new ioctl to PCM is better than reusing ctl TLV.
The channel mapping is variable and depends on the hw_params currently
set.  So, it cannot be returned properly until a PCM is opened.
Impelenting it in ctl ioctl implies rather a global information.


More information about the Alsa-devel mailing list