Status Functions

Overview

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

// global functions

size_t
snd_pcm_status_sizeof(void);

int
snd_pcm_status_malloc(snd_pcm_status_t** ptr);

void
snd_pcm_status_free(snd_pcm_status_t* obj);

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

snd_pcm_state_t
snd_pcm_status_get_state(const snd_pcm_status_t* obj);

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

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

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

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

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

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

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

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

static
void
snd_pcm_pack_audio_tstamp_config(
    unsigned int* data,
    snd_pcm_audio_tstamp_config_t* config
);

static
void
snd_pcm_unpack_audio_tstamp_report(
    unsigned int data,
    unsigned int accuracy,
    snd_pcm_audio_tstamp_report_t* report
);

snd_pcm_sframes_t
snd_pcm_status_get_delay(const snd_pcm_status_t* obj);

snd_pcm_uframes_t
snd_pcm_status_get_avail(const snd_pcm_status_t* obj);

snd_pcm_uframes_t
snd_pcm_status_get_avail_max(const snd_pcm_status_t* obj);

snd_pcm_uframes_t
snd_pcm_status_get_overrange(const snd_pcm_status_t* obj);

// macros

#define snd_pcm_status_alloca(ptr)

Detailed Documentation

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

Global Functions

size_t
snd_pcm_status_sizeof(void)

get size of snd_pcm_status_t

Returns:

size in bytes

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

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

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_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

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.

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.

Parameters:

obj

snd_pcm_status_t pointer

ptr

Pointer to returned timestamp

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.

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.

Parameters:

obj

snd_pcm_status_t pointer

ptr

Pointer to returned timestamp

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

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

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

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

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)

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_sframes_t
snd_pcm_status_get_delay(const snd_pcm_status_t* obj)

Get delay from a PCM status container (see snd_pcm_delay)

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.

Returns:

Delay in frames

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_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

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

Macros

#define snd_pcm_status_alloca(ptr)

allocate an invalid snd_pcm_status_t using standard alloca

Parameters:

ptr

returned pointer