On Thu, Oct 31, 2013 at 08:55:53AM +0100, Takashi Iwai wrote:
At Wed, 30 Oct 2013 16:54:29 +0000, Dimitris Papastamos wrote:
Currently the ALSA ABI imposes a hard limit of 512 bytes per binary control. To support coefficient data blocks of larger sizes we carve up this space into multiple alsa controls. All of these controls are identified by a common prefix and suffix of the form ":<blk id>".
Control groupings can also consist of a single block in which case the suffix ":0" is used.
Why not using the control element index?
You can create each kctl element individually with a different index, but also you can create multiple ctl elements in a single shot by passing to snd_kcontrol_new.count field. This will create a grouped object, thus it saves spaces, too, in comparison with individual kctls. The drawback is that you need to retrieve the real index via snd_ctl_get_ioff*() in each control callback.
I will give this a shot when I have some time and re-send the patch.
Thanks, Dimitris