Hi,
This patchset is revised version of below one:
[alsa-devel] [alsa-lib][PATCH 0/6] control: add APIs for control element set http://mailman.alsa-project.org/pipermail/alsa-devel/2016-February/104795.ht...
In this time, I add a program to test the feature.
Changes: - Use a model which consists of element set/element/member/value. - Add an description about the design of ALSA ctl feature. - Obsolete old APIs due to the lack of const semantics. - Add an description about threshold level feature and topology framework. - Improve comments to threshold level APIs. - Add a test program.
Before starting any discussions, please read description of the model, to stand on the same basis of understanding.
I note that execution of the test program causes an abort to PulseAudio. I can see this line below.
pulseaudio: hcontrol.c:745: snd_hctl_handle_event: Assertion `res >= 0 && dir == 0' failed.
I guess that quick addition/removal of control element set causes this assertion, but I have little time to investigate the cause. I wish to get helps of ALSA developers in PulseAudio side.
If you need an practical example of the feature, please test one of Python 3 samples in my 'alsa-gi'. https://github.com/takaswie/alsa-gi/
This works without alsa-lib, by using kernel/userspace interface directly. Therefore, this patchet doesn't affect the implementation.
Takashi Sakamoto (10): ctl: add an overview for design of ALSA control interface ctl: improve comments for handling element data ctl: add functions to add an element set ctl: improve comments for API to add an element of IEC958 type ctl: change former APIs as wrapper functions of element set APIs ctl: deprecate APIs to add an element set with a single element pcm: use new APIs to add a control element set for softvol plugin ctl: add explaination about threshold level feature ctl: improve API documentation for threshold level operations ctl: add test program for control element set
include/control.h | 36 +- src/control/control.c | 829 ++++++++++++++++++++++++++++++++------------ src/pcm/pcm_softvol.c | 7 +- test/Makefile.am | 5 +- test/user-ctl-element-set.c | 561 ++++++++++++++++++++++++++++++ 5 files changed, 1216 insertions(+), 222 deletions(-) create mode 100644 test/user-ctl-element-set.c