ALSA project - the C library reference
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Files | Data Structures | Macros | Typedefs | Enumerations | Functions
External Control Plugin SDK

Files

file  control_ext.c
 External Control Plugin SDK.
 

Data Structures

struct  snd_ctl_ext_t
 
struct  snd_ctl_ext_callback_t
 

Macros

#define SND_CTL_PLUGIN_ENTRY(name)   _snd_ctl_##name##_open
 
#define SND_CTL_PLUGIN_SYMBOL(name)   SND_DLSYM_BUILD_VERSION(SND_CTL_PLUGIN_ENTRY(name), SND_CONTROL_DLSYM_VERSION);
 
#define SND_CTL_PLUGIN_DEFINE_FUNC(plugin)
 
#define SND_CTL_EXT_VERSION_MAJOR   1
 
#define SND_CTL_EXT_VERSION_MINOR   0
 
#define SND_CTL_EXT_VERSION_TINY   0
 
#define SND_CTL_EXT_VERSION
 
#define SND_CTL_EXT_KEY_NOT_FOUND   (snd_ctl_ext_key_t)(-1)
 

Typedefs

typedef unsigned long snd_ctl_ext_key_t
 

Enumerations

enum  snd_ctl_ext_access_t {
  SND_CTL_EXT_ACCESS_READ = (1<<0), SND_CTL_EXT_ACCESS_WRITE = (1<<1), SND_CTL_EXT_ACCESS_READWRITE = (3<<0), SND_CTL_EXT_ACCESS_VOLATILE = (1<<2),
  SND_CTL_EXT_ACCESS_INACTIVE = (1<<8)
}
 

Functions

int snd_ctl_ext_create (snd_ctl_ext_t *ext, const char *name, int mode)
 Create an external control plugin instance. More...
 
int snd_ctl_ext_delete (snd_ctl_ext_t *ext)
 Delete the external control plugin. More...
 

Detailed Description

Macro Definition Documentation

#define SND_CTL_EXT_KEY_NOT_FOUND   (snd_ctl_ext_key_t)(-1)

find_elem callback returns this if no matching control element is found

#define SND_CTL_EXT_VERSION
Value:
#define SND_CTL_EXT_VERSION_MAJOR
Definition: control_external.h:67
#define SND_CTL_EXT_VERSION_TINY
Definition: control_external.h:69
#define SND_CTL_EXT_VERSION_MINOR
Definition: control_external.h:68

external plugin protocol version

#define SND_CTL_EXT_VERSION_MAJOR   1

Protocol major version

#define SND_CTL_EXT_VERSION_MINOR   0

Protocol minor version

#define SND_CTL_EXT_VERSION_TINY   0

Protocol tiny version

#define SND_CTL_PLUGIN_DEFINE_FUNC (   plugin)
Value:
int SND_CTL_PLUGIN_ENTRY(plugin) (snd_ctl_t **handlep, const char *name,\
snd_config_t *root, snd_config_t *conf, int mode)
struct _snd_ctl snd_ctl_t
Definition: control.h:207
#define SND_CTL_PLUGIN_ENTRY(name)
Definition: control_external.h:43
struct _snd_config snd_config_t
Internal structure for a configuration node object.
Definition: conf.h:69

Define the control plugin

#define SND_CTL_PLUGIN_ENTRY (   name)    _snd_ctl_##name##_open

Define the object entry for external control plugins

#define SND_CTL_PLUGIN_SYMBOL (   name)    SND_DLSYM_BUILD_VERSION(SND_CTL_PLUGIN_ENTRY(name), SND_CONTROL_DLSYM_VERSION);

Define the symbols of the given control plugin with versions

Typedef Documentation

typedef unsigned long snd_ctl_ext_key_t

Key to access a control pointer

Enumeration Type Documentation

The access type bits stored in get_attribute callback

Function Documentation

int snd_ctl_ext_create ( snd_ctl_ext_t *  ext,
const char *  name,
int  mode 
)

Create an external control plugin instance.

Parameters
extthe plugin handle
namename of control
modecontrol open mode
Returns
0 if successful, or a negative error code

Creates the external control instance.

int snd_ctl_ext_delete ( snd_ctl_ext_t *  ext)

Delete the external control plugin.

Parameters
extthe plugin handle
Returns
0 if successful, or a negative error code