ALSA project - the C library reference: /builddir/build/BUILD/alsa-lib-1.1.3/src/pcm/pcm_route.c File Reference

ALSA project - the C library reference

- Main Page
- Related Pages
- Modules
- Data Structures
- Files
- Examples

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
pcm_route.c File Reference

PCM Route & Volume Plugin Interface. More...

## Macros
#define | MAX_CHMAP_CHANNELS 256

## Functions
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. More...
int | snd_pcm_route_determine_ttable (snd_config_t *tt, unsigned int *tt_csize, unsigned int *tt_ssize)
| Determine route matrix sizes. More...
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. More...
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. More...

## Detailed Description

PCM Route & Volume Plugin Interface.

Author
  Abramo Bagnara abram.nosp@m.o@al.nosp@m.sa-pr.nosp@m.ojec.nosp@m.t.org

Date
  2000-2001

## Function Documentation

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.

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

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

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.