]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ctl: add an overview for design of ALSA control interface
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 15 Jun 2016 14:57:37 +0000 (23:57 +0900)
committerTakashi Iwai <tiwai@suse.de>
Thu, 16 Jun 2016 13:45:57 +0000 (15:45 +0200)
This commit adds a description about the design of ALSA control interface
for  developers to understand a few components of low level.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/control/control.c

index ae7884313c63de4ef03c6562bc2fa55af6efb54b..504da1f92e43cc4c1aec1a7811bcd82fbdfbf26a 100644 (file)
@@ -35,9 +35,29 @@ also interface notifying about control and structure changes.
 
 \section control_general_overview General overview
 
-The primitive controls can be integer, inter64, boolean, enumerators, bytes
-and IEC958 structure.
-
+In ALSA control feature, each sound card can have control elements. The elements
+are managed according to below model.
+
+ - element set
+   - A set of elements with the same attribute (i.e. name, get/put operations).
+     Some element sets can be added to a sound card by drivers in kernel and
+     userspace applications.
+ - element
+   - An element can be identified by userspace applications. Each element has
+     own identical information.
+ - member
+   - An element includes some members to have a value. The value of each member
+     can be changed by both of userspace applications and drivers in kernel.
+
+Each element can be identified by two ways; a combination of name and index, or
+numerical number (numid).
+
+The type of element set is one of integer, integerr64, boolean, enumerators,
+bytes and IEC958 structure. This indicates the type of value for each member in
+elements included in the element set.
+
+When the value of member is changed, corresponding events are transferred to
+userspace applications. The applications should subscribe any events in advance.
 */
 
 #include <stdio.h>