mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	ctl: add an overview for design of ALSA control interface
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>
This commit is contained in:
		
							parent
							
								
									f449a29943
								
							
						
					
					
						commit
						f3c24de8c0
					
				
					 1 changed files with 22 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue