Loading...
Searching...
No Matches
PCM Plugins
PCM Interface

## Files

file | pcm_hw.c
| PCM HW Plugin Interface.
file | pcm_mmap_emul.c
| PCM Mmap-Emulation Plugin Interface.
file | pcm_shm.c
| PCM Shared Memory Plugin Interface.
file | pcm_null.c
| PCM Null Plugin Interface.
file | pcm_copy.c
| PCM Copy Plugin Interface.
file | pcm_linear.c
| PCM Linear Conversion Plugin Interface.
file | pcm_lfloat.c
| PCM Linear<->Float Conversion Plugin Interface.
file | pcm_mulaw.c
| PCM Mu-Law Conversion Plugin Interface.
file | pcm_alaw.c
| PCM A-Law Conversion Plugin Interface.
file | pcm_adpcm.c
| PCM Ima-ADPCM Conversion Plugin Interface.
file | pcm_route.c
| PCM Route & Volume Plugin Interface.
file | pcm_rate.c
| PCM Rate Plugin Interface.
file | pcm_file.c
| PCM File Plugin Interface.
file | pcm_multi.c
| PCM Multi Streams to One Conversion Plugin Interface.
file | pcm_share.c
| PCM Share Plugin Interface.
file | pcm_dmix.c
| PCM Direct Stream Mixing (dmix) Plugin Interface.
file | pcm_dshare.c
| PCM Direct Sharing of Channels Plugin Interface.
file | pcm_dsnoop.c
| PCM Capture Stream Snooping (dsnoop) Plugin Interface.
file | pcm_ladspa.c
| ALSA Plugin <-> LADSPA Plugin Interface.
file | pcm_asym.c
| PCM Asymmetrical Plugin Interface.
file | pcm_iec958.c
| PCM IEC958 Subframe Conversion Plugin Interface.
file | pcm_softvol.c
| PCM Soft Volume Plugin Interface.
file | pcm_empty.c
| PCM Empty Plugin Interface.

## Macros

#define | SND_PCM_PLUGIN_RATE_MIN 4000
#define | SND_PCM_PLUGIN_RATE_MAX 768000
#define | SND_PCM_PLUGIN_ROUTE_FLOAT 1
#define | SND_PCM_PLUGIN_ROUTE_RESOLUTION 16
#define | SND_PCM_PLUGIN_ROUTE_HALF (SND_PCM_PLUGIN_ROUTE_RESOLUTION / 2)
#define | SND_PCM_PLUGIN_ROUTE_FULL SND_PCM_PLUGIN_ROUTE_RESOLUTION

## Typedefs

typedef int | snd_pcm_route_ttable_entry_t

## Functions

int | snd_pcm_hw_open (snd_pcm_t **pcmp, const char *name, int card, int device, int subdevice, snd_pcm_stream_t stream, int mode, int mmap_emulation, int sync_ptr_ioctl)
| Creates a new hw PCM.
int | _snd_pcm_hw_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new hw PCM.
int | snd_pcm_copy_open (snd_pcm_t **pcmp, const char *name, snd_pcm_t *slave, int close_slave)
| Creates a new copy PCM.
int | _snd_pcm_copy_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new copy PCM.
int | snd_pcm_linear_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave)
| Creates a new linear conversion PCM.
int | _snd_pcm_linear_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new linear conversion PCM.
int | snd_pcm_lfloat_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave)
| Creates a new linear conversion PCM.
int | _snd_pcm_lfloat_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new linear<->float conversion PCM.
int | snd_pcm_mulaw_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave)
| Creates a new Mu-Law conversion PCM.
int | _snd_pcm_mulaw_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new Mu-Law conversion PCM.
int | snd_pcm_alaw_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave)
| Creates a new A-Law conversion PCM.
int | _snd_pcm_alaw_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new A-Law conversion PCM.
int | snd_pcm_adpcm_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave)
| Creates a new Ima-ADPCM conversion PCM.
int | _snd_pcm_adpcm_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new Ima-ADPCM conversion PCM.
int | snd_pcm_iec958_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, snd_pcm_t *slave, int close_slave, const unsigned char *status_bits, const unsigned char *preamble_vals, int hdmi_mode)
| Creates a new IEC958 subframe conversion PCM.
int | _snd_pcm_iec958_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new IEC958 subframe conversion PCM.
int | snd_pcm_route_load_ttable (snd_config_t *tt, snd_pcm_route_ttable_entry_t *ttable, unsigned int tt_csize, unsigned int tt_ssize, unsigned int *tt_cused, unsigned int *tt_sused, int schannels)
| Load route matrix.
int | snd_pcm_route_determine_ttable (snd_config_t *tt, unsigned int *tt_csize, unsigned int *tt_ssize)
| Determine route matrix sizes.
int | snd_pcm_route_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, int schannels, snd_pcm_route_ttable_entry_t *ttable, unsigned int tt_ssize, unsigned int tt_cused, unsigned int tt_sused, snd_pcm_t *slave, int close_slave)
| Creates a new Route & Volume PCM.
int | _snd_pcm_route_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new Route & Volume PCM.
int | snd_pcm_rate_open (snd_pcm_t **pcmp, const char *name, snd_pcm_format_t sformat, unsigned int srate, const snd_config_t *converter, snd_pcm_t *slave, int close_slave)
| Creates a new rate PCM.
int | _snd_pcm_rate_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new rate PCM.
int | snd_pcm_hooks_open (snd_pcm_t **pcmp, const char *name, snd_pcm_t *slave, int close_slave)
| Creates a new hooks PCM.
int | _snd_pcm_hooks_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new hooks PCM.
int | snd_pcm_ladspa_open (snd_pcm_t **pcmp, const char *name, const char *ladspa_path, unsigned int channels, snd_config_t *ladspa_pplugins, snd_config_t *ladspa_cplugins, snd_pcm_t *slave, int close_slave)
| Creates a new LADSPA<->ALSA Plugin.
int | _snd_pcm_ladspa_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new LADSPA<->ALSA PCM.
int | snd_pcm_jack_open (snd_pcm_t **pcmp, const char *name, snd_config_t *playback_conf, snd_config_t *capture_conf, snd_pcm_stream_t stream, int mode)
| Creates a new Jack PCM.
int | _snd_pcm_jack_open (snd_pcm_t **pcmp, const char *name, snd_config_t *root, snd_config_t *conf, snd_pcm_stream_t stream, int mode)
| Creates a new Jack PCM (internal)

## Detailed Description

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

## Macro Definition Documentation

## SND_PCM_PLUGIN_RATE_MAX

#define SND_PCM_PLUGIN_RATE_MAX 768000

maximal rate for the rate plugin

## SND_PCM_PLUGIN_RATE_MIN

#define SND_PCM_PLUGIN_RATE_MIN 4000

minimal rate for the rate plugin

## SND_PCM_PLUGIN_ROUTE_FLOAT

#define SND_PCM_PLUGIN_ROUTE_FLOAT 1

use floats for route plugin

## SND_PCM_PLUGIN_ROUTE_FULL

#define SND_PCM_PLUGIN_ROUTE_FULL SND_PCM_PLUGIN_ROUTE_RESOLUTION

full value

## SND_PCM_PLUGIN_ROUTE_HALF

#define SND_PCM_PLUGIN_ROUTE_HALF (SND_PCM_PLUGIN_ROUTE_RESOLUTION / 2)

half value

## SND_PCM_PLUGIN_ROUTE_RESOLUTION

#define SND_PCM_PLUGIN_ROUTE_RESOLUTION 16

integer resolution for route plugin

## Typedef Documentation

## snd_pcm_route_ttable_entry_t

typedef int snd_pcm_route_ttable_entry_t

route ttable entry type

## Function Documentation

## _snd_pcm_adpcm_open()

int _snd_pcm_adpcm_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new Ima-ADPCM conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_alaw_open()

int _snd_pcm_alaw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new A-Law conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_copy_open()

int _snd_pcm_copy_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new copy PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_hooks_open()

int _snd_pcm_hooks_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new hooks PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with hooks PCM description
  stream | PCM Stream
  mode | PCM Mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_hw_open()

int _snd_pcm_hw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new hw PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with hw PCM description
  stream | PCM Stream
  mode | PCM Mode

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_iec958_open()

int _snd_pcm_iec958_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new IEC958 subframe conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_jack_open()

int _snd_pcm_jack_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new Jack PCM (internal)

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration for this PCM
  stream | Stream direction
  mode | PCM open mode

Return values

  zero | on success otherwise a negative error code

Warning
  alsa-lib must be compiled against the JACK library for this plugin to be available

## _snd_pcm_ladspa_open()

int _snd_pcm_ladspa_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new LADSPA<->ALSA PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with LADSPA<->ALSA PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_lfloat_open()

int _snd_pcm_lfloat_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new linear<->float conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_linear_open()

int _snd_pcm_linear_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new linear conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_mulaw_open()

int _snd_pcm_mulaw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new Mu-Law conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with copy PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_rate_open()

int _snd_pcm_rate_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new rate PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with rate PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## _snd_pcm_route_open()

int _snd_pcm_route_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | root,
|  | snd_config_t * | conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new Route & Volume PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  root | Root configuration node
  conf | Configuration node with Route & Volume PCM description
  stream | Stream type
  mode | Stream mode

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_adpcm_open()

int snd_pcm_adpcm_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new Ima-ADPCM conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_alaw_open()

int snd_pcm_alaw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new A-Law conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_copy_open()

int snd_pcm_copy_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new copy PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_hooks_open()

int snd_pcm_hooks_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new hooks PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  slave | Slave PCM
  close_slave | If set, slave PCM handle is closed when hooks PCM is closed

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_hw_open()

int snd_pcm_hw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | int | card,
|  | int | device,
|  | int | subdevice,
|  | snd_pcm_stream_t | stream,
|  | int | mode,
|  | int | mmap_emulation,
|  | int | sync_ptr_ioctl )

Creates a new hw PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  card | Number of card
  device | Number of device
  subdevice | Number of subdevice
  stream | PCM Stream
  mode | PCM Mode
  mmap_emulation | Obsoleted parameter
  sync_ptr_ioctl | Use SYNC_PTR ioctl rather than mmap for control structures

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_iec958_open()

int snd_pcm_iec958_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave,
|  | const unsigned char * | status_bits,
|  | const unsigned char * | preamble_vals,
|  | int | hdmi_mode )

Creates a new IEC958 subframe conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM
  status_bits | The IEC958 status bits
  preamble_vals | The preamble byte values
  hdmi_mode | When set, enable HDMI compliant formatting

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_jack_open()

int snd_pcm_jack_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_config_t * | playback_conf,
|  | snd_config_t * | capture_conf,
|  | snd_pcm_stream_t | stream,
|  | int | mode )

Creates a new Jack PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  playback_conf | Playback configuration
  capture_conf | Capture configuration
  stream | Stream direction
  mode | PCM open mode

Return values

  zero | on success otherwise a negative error code

Warning
  alsa-lib must be compiled against the JACK library for this plugin to be available

## snd_pcm_ladspa_open()

int snd_pcm_ladspa_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | const char * | ladspa_path,
|  | unsigned int | channels,
|  | snd_config_t * | ladspa_pplugins,
|  | snd_config_t * | ladspa_cplugins,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new LADSPA<->ALSA Plugin.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  ladspa_path | The path for LADSPA plugins
  channels | Force input channel count to LADSPA plugin chain, 0 = no force (auto)
  ladspa_pplugins | The playback configuration
  ladspa_cplugins | The capture configuration
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_lfloat_open()

int snd_pcm_lfloat_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new linear conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_linear_open()

int snd_pcm_linear_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new linear conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_mulaw_open()

int snd_pcm_mulaw_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new Mu-Law conversion PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave (destination) format
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_rate_open()

int snd_pcm_rate_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | unsigned int | srate,
|  | const snd_config_t * | converter,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new rate PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave format
  srate | Slave rate
  converter | SRC type string node
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.

## snd_pcm_route_determine_ttable()

int snd_pcm_route_determine_ttable | ( | snd_config_t * | tt,
|  | unsigned int * | tt_csize,
|  | unsigned int * | tt_ssize )

Determine route matrix sizes.

Parameters

  tt | Configuration root describing route matrix
  tt_csize | Returned client size in elements
  tt_ssize | Returned slave size in elements

Return values

  zero | on success otherwise a negative error code

## snd_pcm_route_load_ttable()

int snd_pcm_route_load_ttable | ( | snd_config_t * | tt,
|  | snd_pcm_route_ttable_entry_t * | ttable,
|  | unsigned int | tt_csize,
|  | unsigned int | tt_ssize,
|  | unsigned int * | tt_cused,
|  | unsigned int * | tt_sused,
|  | int | schannels )

Load route matrix.

Parameters

  tt | Configuration root describing route matrix
  ttable | Returned route matrix
  tt_csize | Client size in elements
  tt_ssize | Slave size in elements
  tt_cused | Used client elements
  tt_sused | Used slave elements
  schannels | Slave channels

Return values

  zero | on success otherwise a negative error code

## snd_pcm_route_open()

int snd_pcm_route_open | ( | snd_pcm_t ** | pcmp,
|  | const char * | name,
|  | snd_pcm_format_t | sformat,
|  | int | schannels,
|  | snd_pcm_route_ttable_entry_t * | ttable,
|  | unsigned int | tt_ssize,
|  | unsigned int | tt_cused,
|  | unsigned int | tt_sused,
|  | snd_pcm_t * | slave,
|  | int | close_slave )

Creates a new Route & Volume PCM.

Parameters

  pcmp | Returns created PCM handle
  name | Name of PCM
  sformat | Slave format
  schannels | Slave channels
  ttable | Attenuation table
  tt_ssize | Attenuation table - slave size
  tt_cused | Attenuation table - client used count
  tt_sused | Attenuation table - slave used count
  slave | Slave PCM handle
  close_slave | When set, the slave PCM handle is closed with copy PCM

Return values

  zero | on success otherwise a negative error code

Warning
  Using of this function might be dangerous in the sense of compatibility reasons. The prototype might be freely changed in future.