Status Functions
PCM Interface
Collaboration diagram for Status Functions:

## Macros

#define | snd_pcm_status_alloca(ptr)
| allocate an invalid snd_pcm_status_t using standard alloca More...

## Functions

size_t | snd_pcm_status_sizeof (void)
| get size of snd_pcm_status_t More...
int | snd_pcm_status_malloc (snd_pcm_status_t **ptr)
| allocate an invalid snd_pcm_status_t using standard malloc More...
void | snd_pcm_status_free (snd_pcm_status_t *obj)
| frees a previously allocated snd_pcm_status_t More...
void | snd_pcm_status_copy (snd_pcm_status_t *dst, const snd_pcm_status_t *src)
| copy one snd_pcm_status_t to another More...
snd_pcm_state_t | snd_pcm_status_get_state (const snd_pcm_status_t *obj)
| Get state from a PCM status container (see snd_pcm_state) More...
void | snd_pcm_status_get_trigger_tstamp (const snd_pcm_status_t *obj, snd_timestamp_t *ptr)
| Get trigger timestamp from a PCM status container. More...
void | snd_pcm_status_get_trigger_htstamp (const snd_pcm_status_t *obj, snd_htimestamp_t *ptr)
| Get trigger hi-res timestamp from a PCM status container. More...
void | snd_pcm_status_get_tstamp (const snd_pcm_status_t *obj, snd_timestamp_t *ptr)
| Get "now" timestamp from a PCM status container. More...
void | snd_pcm_status_get_htstamp (const snd_pcm_status_t *obj, snd_htimestamp_t *ptr)
| Get "now" hi-res timestamp from a PCM status container. More...
void | snd_pcm_status_get_audio_htstamp (const snd_pcm_status_t *obj, snd_htimestamp_t *ptr)
| Get "now" hi-res audio timestamp from a PCM status container. More...
void | snd_pcm_status_get_driver_htstamp (const snd_pcm_status_t *obj, snd_htimestamp_t *ptr)
| Get "now" hi-res driver timestamp from a PCM status container. Defines when the status was generated by driver, may differ from normal timestamp. More...
void | snd_pcm_status_get_audio_htstamp_report (const snd_pcm_status_t *obj, snd_pcm_audio_tstamp_report_t *audio_tstamp_report)
| Get audio_tstamp_report from a PCM status container. More...
void | snd_pcm_status_set_audio_htstamp_config (snd_pcm_status_t *obj, snd_pcm_audio_tstamp_config_t *audio_tstamp_config)
| set audio_tstamp_config from a PCM status container More...
snd_pcm_sframes_t | snd_pcm_status_get_delay (const snd_pcm_status_t *obj)
| Get delay from a PCM status container (see snd_pcm_delay) More...
snd_pcm_uframes_t | snd_pcm_status_get_avail (const snd_pcm_status_t *obj)
| Get number of frames available from a PCM status container (see snd_pcm_avail_update) More...
snd_pcm_uframes_t | snd_pcm_status_get_avail_max (const snd_pcm_status_t *obj)
| Get maximum number of frames available from a PCM status container after last snd_pcm_status call. More...
snd_pcm_uframes_t | snd_pcm_status_get_overrange (const snd_pcm_status_t *obj)
| Get count of ADC overrange detections since last call. More...

## Detailed Description

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

## Macro Definition Documentation

## snd_pcm_status_alloca

#define snd_pcm_status_alloca | ( |  | ptr | ) |

allocate an invalid snd_pcm_status_t using standard alloca

Parameters

  ptr | returned pointer

Examples
  /test/latency.c.

## Function Documentation

## snd_pcm_status_copy()

void snd_pcm_status_copy | ( | snd_pcm_status_t * | dst,
|  | const snd_pcm_status_t * | src
| ) |  |

copy one snd_pcm_status_t to another

Parameters

  dst | pointer to destination
  src | pointer to source

## snd_pcm_status_free()

void snd_pcm_status_free | ( | snd_pcm_status_t * | obj | ) |

frees a previously allocated snd_pcm_status_t

Parameters

  obj | pointer to object to free

## snd_pcm_status_get_audio_htstamp()

void snd_pcm_status_get_audio_htstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_htimestamp_t * | ptr
| ) |  |

Get "now" hi-res audio timestamp from a PCM status container.

Parameters

  obj | pointer to snd_pcm_status_t
  ptr | Pointer to returned timestamp

## snd_pcm_status_get_audio_htstamp_report()

void snd_pcm_status_get_audio_htstamp_report | ( | const snd_pcm_status_t * | obj,
|  | snd_pcm_audio_tstamp_report_t * | audio_tstamp_report
| ) |  |

Get audio_tstamp_report from a PCM status container.

Parameters

  obj | pointer to snd_pcm_status_t
  ptr | Pointer to returned report (valid fields are accuracy and type)

## snd_pcm_status_get_avail()

snd_pcm_uframes_t snd_pcm_status_get_avail | ( | const snd_pcm_status_t * | obj | ) |

Get number of frames available from a PCM status container (see snd_pcm_avail_update)

Returns
  Number of frames ready to be read/written

## snd_pcm_status_get_avail_max()

snd_pcm_uframes_t snd_pcm_status_get_avail_max | ( | const snd_pcm_status_t * | obj | ) |

Get maximum number of frames available from a PCM status container after last snd_pcm_status call.

Returns
  Maximum number of frames ready to be read/written

This value returns the peak for the available frames between snd_pcm_status calls.

## snd_pcm_status_get_delay()

snd_pcm_sframes_t snd_pcm_status_get_delay | ( | const snd_pcm_status_t * | obj | ) |

Get delay from a PCM status container (see snd_pcm_delay)

Returns
  Delay in frames

Delay is distance between current application frame position and sound frame position. It's positive and less than buffer size in normal situation, negative on playback underrun and greater than buffer size on capture overrun.

## snd_pcm_status_get_driver_htstamp()

void snd_pcm_status_get_driver_htstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_htimestamp_t * | ptr
| ) |  |

Get "now" hi-res driver timestamp from a PCM status container. Defines when the status was generated by driver, may differ from normal timestamp.

Parameters

  obj | pointer to snd_pcm_status_t
  ptr | Pointer to returned timestamp

## snd_pcm_status_get_htstamp()

void snd_pcm_status_get_htstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_htimestamp_t * | ptr
| ) |  |

Get "now" hi-res timestamp from a PCM status container.

Parameters

  obj | pointer to snd_pcm_status_t
  ptr | Pointer to returned timestamp

## snd_pcm_status_get_overrange()

snd_pcm_uframes_t snd_pcm_status_get_overrange | ( | const snd_pcm_status_t * | obj | ) |

Get count of ADC overrange detections since last call.

Returns
  Count of ADC overrange detections

## snd_pcm_status_get_state()

snd_pcm_state_t snd_pcm_status_get_state | ( | const snd_pcm_status_t * | obj | ) |

Get state from a PCM status container (see snd_pcm_state)

Parameters

  obj | snd_pcm_status_t pointer

Returns
  PCM state

## snd_pcm_status_get_trigger_htstamp()

void snd_pcm_status_get_trigger_htstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_htimestamp_t * | ptr
| ) |  |

Get trigger hi-res timestamp from a PCM status container.

Parameters

  obj | snd_pcm_status_t pointer
  ptr | Pointer to returned timestamp

Trigger means a PCM state transition (from stopped to running or versa vice). It applies also to pause and suspend. In other words, timestamp contains time when stream started or when it was stopped.

## snd_pcm_status_get_trigger_tstamp()

void snd_pcm_status_get_trigger_tstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_timestamp_t * | ptr
| ) |  |

Get trigger timestamp from a PCM status container.

Parameters

  obj | snd_pcm_status_t pointer
  ptr | Pointer to returned timestamp

Trigger means a PCM state transition (from stopped to running or versa vice). It applies also to pause and suspend. In other words, timestamp contains time when stream started or when it was stopped.

Examples
  /test/latency.c.

## snd_pcm_status_get_tstamp()

void snd_pcm_status_get_tstamp | ( | const snd_pcm_status_t * | obj,
|  | snd_timestamp_t * | ptr
| ) |  |

Get "now" timestamp from a PCM status container.

Parameters

  obj | snd_pcm_status_t pointer
  ptr | Pointer to returned timestamp

## snd_pcm_status_malloc()

int snd_pcm_status_malloc | ( | snd_pcm_status_t ** | ptr | ) |

allocate an invalid snd_pcm_status_t using standard malloc

Parameters

  ptr | returned pointer

Returns
  0 on success otherwise negative error code

## snd_pcm_status_set_audio_htstamp_config()

void snd_pcm_status_set_audio_htstamp_config | ( | snd_pcm_status_t * | obj,
|  | snd_pcm_audio_tstamp_config_t * | audio_tstamp_config
| ) |  |

set audio_tstamp_config from a PCM status container

Parameters

  obj | pointer to snd_pcm_status_t
  ptr | Pointer to config (valid fields are type and report_analog_delay)

## snd_pcm_status_sizeof()

size_t snd_pcm_status_sizeof | ( | void |  | ) |

get size of snd_pcm_status_t

Returns
  size in bytes