# External PCM plugin SDK

## Modules

| External Filter plugin SDK
| External I/O plugin SDK

## Files

file | pcm_extplug.c

| External Filter Plugin SDK.
file | pcm_ioplug.c

| I/O Plugin SDK.

## Defines

#define | SND_PCM_PLUGIN_ENTRY(name) _snd_pcm_##name##_open
#define | SND_PCM_PLUGIN_SYMBOL(name) SND_DLSYM_BUILD_VERSION(SND_PCM_PLUGIN_ENTRY(name), SND_PCM_DLSYM_VERSION);
#define | SND_PCM_PLUGIN_DEFINE_FUNC(plugin)

## Functions

int | snd_pcm_parse_control_id (snd_config_t *conf, snd_ctl_elem_id_t *ctl_id, int *cardp, int *cchannelsp, int *hwctlp)
| Parse control element id from the config.

## Define Documentation

#define SND_PCM_PLUGIN_DEFINE_FUNC | ( | plugin |  | ) |

Value:

    int SND_PCM_PLUGIN_ENTRY(plugin) (snd_pcm_t **pcmp, const char *name,\
                                      snd_config_t *root, snd_config_t *conf, \
                                      snd_pcm_stream_t stream, int mode)

Define the plugin

#define SND_PCM_PLUGIN_ENTRY | ( | name |  | ) | _snd_pcm_##name##_open

Define the object entry for external PCM plugins

#define SND_PCM_PLUGIN_SYMBOL | ( | name |  | ) | SND_DLSYM_BUILD_VERSION(SND_PCM_PLUGIN_ENTRY(name), SND_PCM_DLSYM_VERSION);

Define the symbols of the given plugin with versions

## Function Documentation

int snd_pcm_parse_control_id | ( | snd_config_t * | conf,
|  | snd_ctl_elem_id_t * | ctl_id,
|  | int * | cardp,
|  | int * | cchannelsp,
|  | int * | hwctlp |
| ) |  |  |

Parse control element id from the config.

Parameters:

  | conf | the config tree to parse
  | ctl_id | the pointer to store the resultant control element id
  | cardp | the pointer to store the card index
  | cchannelsp | the pointer to store the number of channels (optional)
  | hwctlp | the pointer to store the h/w control flag (optional)

Returns:
  0 if successful, or a negative error code

This function parses the given config tree to retrieve the control element id and the card index. It's used by softvol. External PCM plugins can use this function for creating or assigining their controls.

cchannelsp and hwctlp arguments are optional. Set NULL if not necessary.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines