# External Filter plugin SDK
[External PCM plugin SDK]

## Data Structures

struct | snd_pcm_extplug_t
struct | snd_pcm_extplug_callback_t

## Defines

#define | SND_PCM_EXTPLUG_VERSION_MAJOR 1
#define | SND_PCM_EXTPLUG_VERSION_MINOR 0
#define | SND_PCM_EXTPLUG_VERSION_TINY 2
#define | SND_PCM_EXTPLUG_VERSION

## Typedefs

typedef snd_pcm_extplug | snd_pcm_extplug_t
typedef snd_pcm_extplug_callback | snd_pcm_extplug_callback_t

## Enumerations

enum | { SND_PCM_EXTPLUG_HW_FORMAT, SND_PCM_EXTPLUG_HW_CHANNELS, SND_PCM_EXTPLUG_HW_PARAMS }

## Functions

int | snd_pcm_extplug_create (snd_pcm_extplug_t *ext, const char *name, snd_config_t *root, snd_config_t *slave_conf, snd_pcm_stream_t stream, int mode)
| Create an extplug instance.
int | snd_pcm_extplug_delete (snd_pcm_extplug_t *ext)
| Delete the extplug instance.
void | snd_pcm_extplug_params_reset (snd_pcm_extplug_t *ext)
| Reset extplug parameters.
int | snd_pcm_extplug_set_param_list (snd_pcm_extplug_t *extplug, int type, unsigned int num_list, const unsigned int *list)
| Set master parameter as the list.
int | snd_pcm_extplug_set_param_minmax (snd_pcm_extplug_t *extplug, int type, unsigned int min, unsigned int max)
| Set master parameter as the min/max values.
int | snd_pcm_extplug_set_slave_param_list (snd_pcm_extplug_t *extplug, int type, unsigned int num_list, const unsigned int *list)
| Set slave parameter as the list.
int | snd_pcm_extplug_set_slave_param_minmax (snd_pcm_extplug_t *extplug, int type, unsigned int min, unsigned int max)
| Set slave parameter as the min/max values.

## Detailed Description

See the PCM (digital audio) interface page for more details.

## Define Documentation

#define SND_PCM_EXTPLUG_VERSION

Value:

    ((SND_PCM_EXTPLUG_VERSION_MAJOR<<16) |\
                                             (SND_PCM_EXTPLUG_VERSION_MINOR<<8) |\
                                             (SND_PCM_EXTPLUG_VERSION_TINY))

Filter-plugin protocol version

#define SND_PCM_EXTPLUG_VERSION_MAJOR 1

Protocol major version

#define SND_PCM_EXTPLUG_VERSION_MINOR 0

Protocol minor version

#define SND_PCM_EXTPLUG_VERSION_TINY 2

Protocol tiny version

## Typedef Documentation

typedef struct snd_pcm_extplug_callback snd_pcm_extplug_callback_t `[read]`

Callback table of extplug

typedef struct snd_pcm_extplug snd_pcm_extplug_t `[read]`

Handle of external filter plugin

## Enumeration Type Documentation

anonymous enum

hw constraints for extplug

Enumerator:

  SND_PCM_EXTPLUG_HW_FORMAT | format
  SND_PCM_EXTPLUG_HW_CHANNELS | channels
  SND_PCM_EXTPLUG_HW_PARAMS | max number of hw constraints

## Function Documentation

int snd_pcm_extplug_create | ( | snd_pcm_extplug_t * | extplug,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | slave_conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode |
| ) |  |  |

Create an extplug instance.

Parameters:

  | extplug | the extplug handle
  | name | name of the PCM
  | root | configuration tree root
  | slave_conf | slave configuration root
  | stream | stream direction
  | mode | PCM open mode

Returns:
  0 if successful, or a negative error code

Creates the extplug instance based on the given handle. The slave_conf argument is mandatory, and usually taken from the config tree of the PCM plugin as "slave" config value. name, root, stream and mode arguments are the values used for opening the PCM.

The callback is the mandatory field of extplug handle. At least, start, stop and pointer callbacks must be set before calling this function.

int snd_pcm_extplug_delete | ( | snd_pcm_extplug_t * | extplug | ) |

Delete the extplug instance.

Parameters:

  | extplug | the extplug handle to delete

Returns:
  0 if successful, or a negative error code

The destructor of extplug instance. Closes the PCM and deletes the associated resources.

void snd_pcm_extplug_params_reset | ( | snd_pcm_extplug_t * | extplug | ) |

Reset extplug parameters.

Parameters:

  | extplug | the extplug handle

Resets the all parameters for the given extplug handle.

int snd_pcm_extplug_set_param_list | ( | snd_pcm_extplug_t * | extplug,
|  | int | type,
|  | unsigned int | num_list,
|  | const unsigned int * | list |
| ) |  |  |

Set master parameter as the list.

Parameters:

  | extplug | the extplug handle
  | type | parameter type
  | num_list | number of available values
  | list | the list of available values

Returns:
  0 if successful, or a negative error code

Sets the master parameter as the list. The available values of the given parameter type of this PCM (as input) is restricted to the ones of the given list.

int snd_pcm_extplug_set_param_minmax | ( | snd_pcm_extplug_t * | extplug,
|  | int | type,
|  | unsigned int | min,
|  | unsigned int | max |
| ) |  |  |

Set master parameter as the min/max values.

Parameters:

  | extplug | the extplug handle
  | type | parameter type
  | min | the minimum value
  | max | the maximum value

Returns:
  0 if successful, or a negative error code

Sets the master parameter as the min/max values. The available values of the given parameter type of this PCM (as input) is restricted between the given minimum and maximum values.

int snd_pcm_extplug_set_slave_param_list | ( | snd_pcm_extplug_t * | extplug,
|  | int | type,
|  | unsigned int | num_list,
|  | const unsigned int * | list |
| ) |  |  |

Set slave parameter as the list.

Parameters:

  | extplug | the extplug handle
  | type | parameter type
  | num_list | number of available values
  | list | the list of available values

Returns:
  0 if successful, or a negative error code

Sets the slave parameter as the list. The available values of the given parameter type of the slave PCM is restricted to the ones of the given list.

int snd_pcm_extplug_set_slave_param_minmax | ( | snd_pcm_extplug_t * | extplug,
|  | int | type,
|  | unsigned int | min,
|  | unsigned int | max |
| ) |  |  |

Set slave parameter as the min/max values.

Parameters:

  | extplug | the extplug handle
  | type | parameter type
  | min | the minimum value
  | max | the maximum value

Returns:
  0 if successful, or a negative error code

Sets the slave parameter as the min/max values. The available values of the given parameter type of the slave PCM is restricted between the given minimum and maximum values.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines