# Helper Functions
[PCM Interface]

## Functions

int | snd_pcm_format_signed (snd_pcm_format_t format)
| Return sign info for a PCM sample linear format.
int | snd_pcm_format_unsigned (snd_pcm_format_t format)
| Return sign info for a PCM sample linear format.
int | snd_pcm_format_linear (snd_pcm_format_t format)
| Return linear info for a PCM sample format.
int | snd_pcm_format_float (snd_pcm_format_t format)
| Return float info for a PCM sample format.
int | snd_pcm_format_little_endian (snd_pcm_format_t format)
| Return endian info for a PCM sample format.
int | snd_pcm_format_big_endian (snd_pcm_format_t format)
| Return endian info for a PCM sample format.
int | snd_pcm_format_cpu_endian (snd_pcm_format_t format)
| Return endian info for a PCM sample format.
int | snd_pcm_format_width (snd_pcm_format_t format)
| Return nominal bits per a PCM sample.
int | snd_pcm_format_physical_width (snd_pcm_format_t format)
| Return bits needed to store a PCM sample.
snd_pcm_format_t | snd_pcm_build_linear_format (int width, int pwidth, int unsignd, int big_endian)
| Compose a PCM sample linear format.
ssize_t | snd_pcm_format_size (snd_pcm_format_t format, size_t samples)
| Return bytes needed to store a quantity of PCM sample.
u_int8_t | snd_pcm_format_silence (snd_pcm_format_t format)
| Return 8 bit expressing silence for a PCM sample format.
u_int16_t | snd_pcm_format_silence_16 (snd_pcm_format_t format)
| Return 16 bit expressing silence for a PCM sample format.
u_int32_t | snd_pcm_format_silence_32 (snd_pcm_format_t format)
| Return 32 bit expressing silence for a PCM sample format.
u_int64_t | snd_pcm_format_silence_64 (snd_pcm_format_t format)
| Return 64 bit expressing silence for a PCM sample format.
int | snd_pcm_format_set_silence (snd_pcm_format_t format, void *buf, unsigned int samples)
| Silence a PCM samples buffer.
snd_pcm_sframes_t | snd_pcm_bytes_to_frames (snd_pcm_t *pcm, ssize_t bytes)
| Convert bytes in frames for a PCM.
ssize_t | snd_pcm_frames_to_bytes (snd_pcm_t *pcm, snd_pcm_sframes_t frames)
| Convert frames in bytes for a PCM.
long | snd_pcm_bytes_to_samples (snd_pcm_t *pcm, ssize_t bytes)
| Convert bytes in samples for a PCM.
ssize_t | snd_pcm_samples_to_bytes (snd_pcm_t *pcm, long samples)
| Convert samples in bytes for a PCM.
int | snd_pcm_area_silence (const snd_pcm_channel_area_t *dst_channel, snd_pcm_uframes_t dst_offset, unsigned int samples, snd_pcm_format_t format)
| Silence an area.
int | snd_pcm_areas_silence (const snd_pcm_channel_area_t *dst_channels, snd_pcm_uframes_t dst_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format)
| Silence one or more areas.
int | snd_pcm_area_copy (const snd_pcm_channel_area_t *dst_channel, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t *src_channel, snd_pcm_uframes_t src_offset, unsigned int samples, snd_pcm_format_t format)
| Copy an area.
int | snd_pcm_areas_copy (const snd_pcm_channel_area_t *dst_channels, snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t *src_channels, snd_pcm_uframes_t src_offset, unsigned int channels, snd_pcm_uframes_t frames, snd_pcm_format_t format)
| Copy one or more areas.

## Detailed Description

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

## Function Documentation

int snd_pcm_area_copy | ( | const snd_pcm_channel_area_t * | dst_area,
|  | snd_pcm_uframes_t | dst_offset,
|  | const snd_pcm_channel_area_t * | src_area,
|  | snd_pcm_uframes_t | src_offset,
|  | unsigned int | samples,
|  | snd_pcm_format_t | format |
| ) |  |  |

Copy an area.

Parameters:

  | dst_area | destination area specification
  | dst_offset | offset in frames inside destination area
  | src_area | source area specification
  | src_offset | offset in frames inside source area
  | samples | samples to copy
  | format | PCM sample format

Returns:
  0 on success otherwise a negative error code

int snd_pcm_area_silence | ( | const snd_pcm_channel_area_t * | dst_area,
|  | snd_pcm_uframes_t | dst_offset,
|  | unsigned int | samples,
|  | snd_pcm_format_t | format |
| ) |  |  |

Silence an area.

Parameters:

  | dst_area | area specification
  | dst_offset | offset in frames inside area
  | samples | samples to silence
  | format | PCM sample format

Returns:
  0 on success otherwise a negative error code

int snd_pcm_areas_copy | ( | const snd_pcm_channel_area_t * | dst_areas,
|  | snd_pcm_uframes_t | dst_offset,
|  | const snd_pcm_channel_area_t * | src_areas,
|  | snd_pcm_uframes_t | src_offset,
|  | unsigned int | channels,
|  | snd_pcm_uframes_t | frames,
|  | snd_pcm_format_t | format |
| ) |  |  |

Copy one or more areas.

Parameters:

  | dst_areas | destination areas specification (one for each channel)
  | dst_offset | offset in frames inside destination area
  | src_areas | source areas specification (one for each channel)
  | src_offset | offset in frames inside source area
  | channels | channels count
  | frames | frames to copy
  | format | PCM sample format

Returns:
  0 on success otherwise a negative error code

int snd_pcm_areas_silence | ( | const snd_pcm_channel_area_t * | dst_areas,
|  | snd_pcm_uframes_t | dst_offset,
|  | unsigned int | channels,
|  | snd_pcm_uframes_t | frames,
|  | snd_pcm_format_t | format |
| ) |  |  |

Silence one or more areas.

Parameters:

  | dst_areas | areas specification (one for each channel)
  | dst_offset | offset in frames inside area
  | channels | channels count
  | frames | frames to silence
  | format | PCM sample format

Returns:
  0 on success otherwise a negative error code

snd_pcm_format_t snd_pcm_build_linear_format | ( | int | width,
|  | int | pwidth,
|  | int | unsignd,
|  | int | big_endian |
| ) |  |  |

Compose a PCM sample linear format.

Parameters:

  | width | Nominal bits per sample
  | pwidth | Physical bit width of the format
  | unsignd | Sign: 0 signed, 1 unsigned
  | big_endian | Endian: 0 little endian, 1 big endian

Returns:
  The matching format type, or SND_PCM_FORMAT_UNKNOWN if no match

snd_pcm_sframes_t snd_pcm_bytes_to_frames | ( | snd_pcm_t * | pcm,
|  | ssize_t | bytes |
| ) |  |  |

Convert bytes in frames for a PCM.

Parameters:

  | pcm | PCM handle
  | bytes | quantity in bytes

Returns:
  quantity expressed in frames

long snd_pcm_bytes_to_samples | ( | snd_pcm_t * | pcm,
|  | ssize_t | bytes |
| ) |  |  |

Convert bytes in samples for a PCM.

Parameters:

  | pcm | PCM handle
  | bytes | quantity in bytes

Returns:
  quantity expressed in samples

int snd_pcm_format_big_endian | ( | snd_pcm_format_t | format | ) |

Return endian info for a PCM sample format.

Parameters:

  | format | Format

Returns:
  0 little endian, 1 big endian, a negative error code if endian independent

Examples:
  /test/pcm.c.

int snd_pcm_format_cpu_endian | ( | snd_pcm_format_t | format | ) |

Return endian info for a PCM sample format.

Parameters:

  | format | Format

Returns:
  0 swapped, 1 CPU endian, a negative error code if endian independent

int snd_pcm_format_float | ( | snd_pcm_format_t | format | ) |

Return float info for a PCM sample format.

Parameters:

  | format | Format

Returns:
  0 non float, 1 float

int snd_pcm_format_linear | ( | snd_pcm_format_t | format | ) |

Return linear info for a PCM sample format.

Parameters:

  | format | Format

Returns:
  0 non linear, 1 linear

Examples:
  /test/pcm.c.

int snd_pcm_format_little_endian | ( | snd_pcm_format_t | format | ) |

Return endian info for a PCM sample format.

Parameters:

  | format | Format

Returns:
  0 big endian, 1 little endian, a negative error code if endian independent

int snd_pcm_format_physical_width | ( | snd_pcm_format_t | format | ) |

Return bits needed to store a PCM sample.

Parameters:

  | format | Sample format

Returns:
  bits per sample, a negative error code if not applicable

Examples:
  /test/pcm.c.

int snd_pcm_format_set_silence | ( | snd_pcm_format_t | format,
|  | void * | data,
|  | unsigned int | samples |
| ) |  |  |

Silence a PCM samples buffer.

Parameters:

  | format | Sample format
  | data | Buffer
  | samples | Samples count

Returns:
  0 if successful or a negative error code

Examples:
  /test/latency.c.

int snd_pcm_format_signed | ( | snd_pcm_format_t | format | ) |

Return sign info for a PCM sample linear format.

Parameters:

  | format | Format

Returns:
  0 unsigned, 1 signed, a negative error code if format is not linear

u_int8_t snd_pcm_format_silence | ( | snd_pcm_format_t | format | ) |

Return 8 bit expressing silence for a PCM sample format.

Parameters:

  | format | Sample format

Returns:
  silence 8 bit word

u_int16_t snd_pcm_format_silence_16 | ( | snd_pcm_format_t | format | ) |

Return 16 bit expressing silence for a PCM sample format.

Parameters:

  | format | Sample format

Returns:
  silence 16 bit word

u_int32_t snd_pcm_format_silence_32 | ( | snd_pcm_format_t | format | ) |

Return 32 bit expressing silence for a PCM sample format.

Parameters:

  | format | Sample format

Returns:
  silence 32 bit word

u_int64_t snd_pcm_format_silence_64 | ( | snd_pcm_format_t | format | ) |

Return 64 bit expressing silence for a PCM sample format.

Parameters:

  | format | Sample format

Returns:
  silence 64 bit word

ssize_t snd_pcm_format_size | ( | snd_pcm_format_t | format,
|  | size_t | samples |
| ) |  |  |

Return bytes needed to store a quantity of PCM sample.

Parameters:

  | format | Sample format
  | samples | Samples count

Returns:
  bytes needed, a negative error code if not integer or unknown

int snd_pcm_format_unsigned | ( | snd_pcm_format_t | format | ) |

Return sign info for a PCM sample linear format.

Parameters:

  | format | Format

Returns:
  0 signed, 1 unsigned, a negative error code if format is not linear

Examples:
  /test/pcm.c.

int snd_pcm_format_width | ( | snd_pcm_format_t | format | ) |

Return nominal bits per a PCM sample.

Parameters:

  | format | Sample format

Returns:
  bits per sample, a negative error code if not applicable

Examples:
  /test/latency.c, and /test/pcm.c.

ssize_t snd_pcm_frames_to_bytes | ( | snd_pcm_t * | pcm,
|  | snd_pcm_sframes_t | frames |
| ) |  |  |

Convert frames in bytes for a PCM.

Parameters:

  | pcm | PCM handle
  | frames | quantity in frames

Returns:
  quantity expressed in bytes

ssize_t snd_pcm_samples_to_bytes | ( | snd_pcm_t * | pcm,
|  | long | samples |
| ) |  |  |

Convert samples in bytes for a PCM.

Parameters:

  | pcm | PCM handle
  | samples | quantity in samples

Returns:
  quantity expressed in bytes

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines