ALSA project - the C library reference

Loading...
Searching...
No Matches
Topics | Files | Macros | Functions
External PCM plugin SDK

## Topics
| 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.

## Macros
#define | SND_PCM_PLUGIN_ENTRY(name)
#define | SND_PCM_PLUGIN_SYMBOL(name)
#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.

## Detailed Description

## Macro Definition Documentation

## ◆ SND_PCM_PLUGIN_DEFINE_FUNC

#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)
snd_config_t
struct _snd_config snd_config_t
Internal structure for a configuration node object.
Definition conf.h:74
snd_pcm_t
struct _snd_pcm snd_pcm_t
Definition pcm.h:422
snd_pcm_stream_t
snd_pcm_stream_t
Definition pcm.h:105
SND_PCM_PLUGIN_ENTRY
#define SND_PCM_PLUGIN_ENTRY(name)
Definition pcm_external.h:45

Define the plugin

## ◆ SND_PCM_PLUGIN_ENTRY

#define SND_PCM_PLUGIN_ENTRY | ( |  | name | ) |

Value:
_snd_pcm_##name##_open

Define the object entry for external PCM plugins

## ◆ SND_PCM_PLUGIN_SYMBOL

#define SND_PCM_PLUGIN_SYMBOL | ( |  | name | ) |

Value:
SND_DLSYM_BUILD_VERSION(SND_PCM_PLUGIN_ENTRY(name), SND_PCM_DLSYM_VERSION);
SND_DLSYM_BUILD_VERSION
#define SND_DLSYM_BUILD_VERSION(name, version)
Appends the build version to the name of a versioned dynamic symbol.
Definition global.h:70
SND_PCM_DLSYM_VERSION
#define SND_PCM_DLSYM_VERSION
Definition pcm.h:49

Define the symbols of the given plugin with versions

## Function Documentation

## ◆ snd_pcm_parse_control_id()

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

Deprecated
  Since 1.2.5 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.