External Control Plugin SDK

Overview

// 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
    );

// enums

enum snd_ctl_ext_access_t;

// structs

struct snd_ctl_ext;
struct snd_ctl_ext_callback;

// global functions

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

int
snd_ctl_ext_delete(snd_ctl_ext_t* ext);

// macros

#define SND_CTL_EXT_KEY_NOT_FOUND
#define SND_CTL_EXT_VERSION
#define SND_CTL_EXT_VERSION_MAJOR
#define SND_CTL_EXT_VERSION_MINOR
#define SND_CTL_EXT_VERSION_TINY
#define SND_CTL_PLUGIN_DEFINE_FUNC(plugin)
#define SND_CTL_PLUGIN_ENTRY(name)
#define SND_CTL_PLUGIN_SYMBOL(name)

Detailed Documentation

Typedefs

typedef unsigned long snd_ctl_ext_key_t

Key to access a control pointer

typedef snd_ctl_ext snd_ctl_ext_t

External control plugin handle

typedef snd_ctl_ext_callback snd_ctl_ext_callback_t

Callback table of control ext

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.

Global Functions

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

Create an external control plugin instance.

Creates the external control instance.

Parameters:

ext the plugin handle
name name of control
mode control open mode

Returns:

0 if successful, or a negative error code

int
snd_ctl_ext_delete(snd_ctl_ext_t* ext)

Delete the external control plugin.

Parameters:

ext the plugin handle

Returns:

0 if successful, or a negative error code

Macros

#define SND_CTL_EXT_KEY_NOT_FOUND

find_elem callback returns this if no matching control element is found

#define SND_CTL_EXT_VERSION

external plugin protocol version

#define SND_CTL_EXT_VERSION_MAJOR

Protocol major version

#define SND_CTL_EXT_VERSION_MINOR

Protocol minor version

#define SND_CTL_EXT_VERSION_TINY

Protocol tiny version

#define SND_CTL_PLUGIN_DEFINE_FUNC(plugin)

Define the control plugin

#define SND_CTL_PLUGIN_ENTRY(name)

Define the object entry for external control plugins

#define SND_CTL_PLUGIN_SYMBOL(name)

Define the symbols of the given control plugin with versions