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   1
#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
typedef snd_ctl_ext snd_ctl_ext_t
typedef snd_ctl_ext_callback snd_ctl_ext_callback_t
typedef int( snd_ctl_ext_tlv_rw_t )(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, int op_flag, unsigned int numid, unsigned int *tlv, unsigned int tlv_size)

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_TLV_READ = (1<<4), SND_CTL_EXT_ACCESS_TLV_WRITE = (1<<5), SND_CTL_EXT_ACCESS_TLV_READWRITE = (3<<4), SND_CTL_EXT_ACCESS_TLV_COMMAND = (1<<6),
  SND_CTL_EXT_ACCESS_INACTIVE = (1<<8), SND_CTL_EXT_ACCESS_TLV_CALLBACK = (1<<28)
}

Functions

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

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:

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   1

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)

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

Callback table of control ext

typedef unsigned long snd_ctl_ext_key_t

Key to access a control pointer

typedef struct snd_ctl_ext snd_ctl_ext_t

External control plugin handle

typedef int( snd_ctl_ext_tlv_rw_t)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, int op_flag, unsigned int numid, unsigned int *tlv, unsigned int tlv_size)

Callback to handle TLV commands.


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