Hardware Parameters

Overview

See the PCM (digital audio) interface page for more details. Moreā€¦

// global functions

int
snd_pcm_hw_params_any(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
);

int
snd_pcm_hw_params_can_mmap_sample_resolution(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_double(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_batch(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_block_transfer(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_monotonic(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_can_overrange(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_can_pause(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_can_resume(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_half_duplex(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_is_joint_duplex(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_can_sync_start(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_can_disable_period_wakeup(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_supports_audio_wallclock_ts(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_supports_audio_ts_type(
    const snd_pcm_hw_params_t* params,
    int type
);

int
snd_pcm_hw_params_get_rate_numden(
    const snd_pcm_hw_params_t* params,
    unsigned int* rate_num,
    unsigned int* rate_den
);

int
snd_pcm_hw_params_get_sbits(const snd_pcm_hw_params_t* params);

int
snd_pcm_hw_params_get_fifo_size(const snd_pcm_hw_params_t* params);

size_t
snd_pcm_hw_params_sizeof(void);

int
snd_pcm_hw_params_malloc(snd_pcm_hw_params_t** ptr);

void
snd_pcm_hw_params_free(snd_pcm_hw_params_t* obj);

void
snd_pcm_hw_params_copy(
    snd_pcm_hw_params_t* dst,
    const snd_pcm_hw_params_t* src
);

int
snd_pcm_hw_params_get_access(
    const snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
);

int
snd_pcm_hw_params_test_access(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t _access
);

int
snd_pcm_hw_params_set_access(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t _access
);

int
snd_pcm_hw_params_set_access_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
);

int
snd_pcm_hw_params_set_access_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
);

int
snd_pcm_hw_params_set_access_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_mask_t* mask
);

int
snd_pcm_hw_params_get_access_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_access_mask_t* mask
);

int
snd_pcm_hw_params_get_format(
    const snd_pcm_hw_params_t* params,
    snd_pcm_format_t* val
);

int
snd_pcm_hw_params_test_format(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t val
);

int
snd_pcm_hw_params_set_format(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t val
);

int
snd_pcm_hw_params_set_format_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t* format
);

int
snd_pcm_hw_params_set_format_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t* format
);

int
snd_pcm_hw_params_set_format_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_mask_t* mask
);

void
snd_pcm_hw_params_get_format_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_format_mask_t* mask
);

int
snd_pcm_hw_params_get_subformat(
    const snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
);

int
snd_pcm_hw_params_test_subformat(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t subformat
);

int
snd_pcm_hw_params_set_subformat(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t subformat
);

int
snd_pcm_hw_params_set_subformat_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
);

int
snd_pcm_hw_params_set_subformat_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
);

int
snd_pcm_hw_params_set_subformat_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_mask_t* mask
);

void
snd_pcm_hw_params_get_subformat_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_mask_t* mask
);

int
snd_pcm_hw_params_get_channels(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_get_channels_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_get_channels_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_test_channels(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
);

int
snd_pcm_hw_params_set_channels(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
);

int
snd_pcm_hw_params_set_channels_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_channels_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_channels_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    unsigned int* max
);

int
snd_pcm_hw_params_set_channels_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_channels_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_channels_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_get_rate(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_rate_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_rate_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_test_rate(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_rate(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_rate_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_rate_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_rate_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
);

int
snd_pcm_hw_params_set_rate_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_rate_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_rate_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_rate_resample(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
);

int
snd_pcm_hw_params_get_rate_resample(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_export_buffer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
);

int
snd_pcm_hw_params_get_export_buffer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_set_period_wakeup(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
);

int
snd_pcm_hw_params_get_period_wakeup(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
);

int
snd_pcm_hw_params_get_period_time(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_period_time_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_period_time_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_test_period_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_period_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_period_time_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_time_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_time_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
);

int
snd_pcm_hw_params_set_period_time_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_time_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_time_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_period_size(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
);

int
snd_pcm_hw_params_get_period_size_min(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
);

int
snd_pcm_hw_params_get_period_size_max(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
);

int
snd_pcm_hw_params_test_period_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val,
    int dir
);

int
snd_pcm_hw_params_set_period_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val,
    int dir
);

int
snd_pcm_hw_params_set_period_size_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_size_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_size_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* min,
    int* mindir,
    snd_pcm_uframes_t* max,
    int* maxdir
);

int
snd_pcm_hw_params_set_period_size_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_size_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_size_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
);

int
snd_pcm_hw_params_set_period_size_integer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
);

int
snd_pcm_hw_params_get_periods(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_periods_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_periods_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_test_periods(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_periods(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_periods_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_periods_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_periods_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
);

int
snd_pcm_hw_params_set_periods_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_periods_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_periods_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_periods_integer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
);

int
snd_pcm_hw_params_get_buffer_time(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_buffer_time_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_buffer_time_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_test_buffer_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_buffer_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
);

int
snd_pcm_hw_params_set_buffer_time_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_buffer_time_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_buffer_time_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
);

int
snd_pcm_hw_params_set_buffer_time_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_buffer_time_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_set_buffer_time_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
);

int
snd_pcm_hw_params_get_buffer_size(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_get_buffer_size_min(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_get_buffer_size_max(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_test_buffer_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val
);

int
snd_pcm_hw_params_set_buffer_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val
);

int
snd_pcm_hw_params_set_buffer_size_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_set_buffer_size_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_set_buffer_size_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* min,
    snd_pcm_uframes_t* max
);

int
snd_pcm_hw_params_set_buffer_size_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_set_buffer_size_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_set_buffer_size_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

int
snd_pcm_hw_params_get_min_align(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
);

// macros

#define snd_pcm_hw_params_alloca(ptr)

Detailed Documentation

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

Global Functions

int
snd_pcm_hw_params_any(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
)

Fill params with a full configuration space for a PCM.

The configuration space will be filled with all possible ranges for the PCM device.

Parameters:

pcm

PCM handle

params

Configuration space

int
snd_pcm_hw_params_can_mmap_sample_resolution(const snd_pcm_hw_params_t* params)

Check if hardware supports sample-resolution mmap for given configuration.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support sample-resolution mmap

1

Hardware supports sample-resolution mmap

int
snd_pcm_hw_params_is_double(const snd_pcm_hw_params_t* params)

Check if hardware does double buffering for start/stop for given configuration.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t do double buffering for start/stop

1

Hardware does double buffering for start/stop

int
snd_pcm_hw_params_is_batch(const snd_pcm_hw_params_t* params)

Check if hardware does double buffering for data transfers for given configuration.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t do double buffering for data transfers

1

Hardware does double buffering for data transfers

int
snd_pcm_hw_params_is_block_transfer(const snd_pcm_hw_params_t* params)

Check if hardware does block transfers for samples for given configuration.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t block transfers

1

Hardware does block transfers

int
snd_pcm_hw_params_is_monotonic(const snd_pcm_hw_params_t* params)

Check if timestamps are monotonic for given configuration.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Device doesnā€™t do monotomic timestamps

1

Device does monotonic timestamps

int
snd_pcm_hw_params_can_overrange(const snd_pcm_hw_params_t* params)

Check if hardware supports overrange detection.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support overrange detection

1

Hardware supports overrange detection

int
snd_pcm_hw_params_can_pause(const snd_pcm_hw_params_t* params)

Check if hardware supports pause.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support pause

1

Hardware supports pause

int
snd_pcm_hw_params_can_resume(const snd_pcm_hw_params_t* params)

Check if hardware supports resume.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support resume

1

Hardware supports resume

int
snd_pcm_hw_params_is_half_duplex(const snd_pcm_hw_params_t* params)

Check if hardware does half-duplex only.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t do half-duplex

1

Hardware does half-duplex

int
snd_pcm_hw_params_is_joint_duplex(const snd_pcm_hw_params_t* params)

Check if hardware does joint-duplex (playback and capture are somewhat correlated)

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t do joint-duplex

1

Hardware does joint-duplex

int
snd_pcm_hw_params_can_sync_start(const snd_pcm_hw_params_t* params)

Check if hardware supports synchronized start with sample resolution.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support synchronized start

1

Hardware supports synchronized start

int
snd_pcm_hw_params_can_disable_period_wakeup(const snd_pcm_hw_params_t* params)

Check if hardware can disable period wakeups.

Parameters:

params

Configuration space

0

Hardware cannot disable period wakeups

1

Hardware can disable period wakeups

int
snd_pcm_hw_params_supports_audio_wallclock_ts(const snd_pcm_hw_params_t* params)

Check if hardware supports audio wallclock timestamps.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

0

Hardware doesnā€™t support audio wallclock timestamps

1

Hardware supports audio wallclock timestamps

int
snd_pcm_hw_params_supports_audio_ts_type(
    const snd_pcm_hw_params_t* params,
    int type
)

Check if hardware supports type of audio timestamps.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

type

Audio timestamp type

0

Hardware doesnā€™t support type of audio timestamps

1

Hardware supports type of audio timestamps

int
snd_pcm_hw_params_get_rate_numden(
    const snd_pcm_hw_params_t* params,
    unsigned int* rate_num,
    unsigned int* rate_den
)

Get rate exact info from a configuration space.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

rate_num

Pointer to returned rate numerator

rate_den

Pointer to returned rate denominator

Returns:

0 otherwise a negative error code if the info is not available

int
snd_pcm_hw_params_get_sbits(const snd_pcm_hw_params_t* params)

Get sample resolution info from a configuration space.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

Returns:

signification bits in sample otherwise a negative error code if the info is not available

int
snd_pcm_hw_params_get_fifo_size(const snd_pcm_hw_params_t* params)

Get hardware FIFO size info from a configuration space.

This function should only be called when the configuration space contains a single configuration. Call snd_pcm_hw_params to choose a single configuration from the configuration space.

Parameters:

params

Configuration space

Returns:

FIFO size in frames otherwise a negative error code if the info is not available

size_t
snd_pcm_hw_params_sizeof(void)

get size of snd_pcm_hw_params_t

Returns:

size in bytes

int
snd_pcm_hw_params_malloc(snd_pcm_hw_params_t** ptr)

allocate an invalid snd_pcm_hw_params_t using standard malloc

Parameters:

ptr

returned pointer

Returns:

0 on success otherwise negative error code

void
snd_pcm_hw_params_free(snd_pcm_hw_params_t* obj)

frees a previously allocated snd_pcm_hw_params_t

Parameters:

obj

pointer to object to free

void
snd_pcm_hw_params_copy(
    snd_pcm_hw_params_t* dst,
    const snd_pcm_hw_params_t* src
)

copy one snd_pcm_hw_params_t to another

Parameters:

dst

pointer to destination

src

pointer to source

int
snd_pcm_hw_params_get_access(
    const snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
)

Extract access type from a configuration space.

Parameters:

params

Configuration space

access

Returned value

Returns:

access type otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_test_access(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t _access
)

Verify if an access type is available inside a configuration space for a PCM.

Parameters:

pcm

PCM handle

params

Configuration space

access

access type

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_access(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t _access
)

Restrict a configuration space to contain only one access type.

Parameters:

pcm

PCM handle

params

Configuration space

access

access type

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_access_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
)

Restrict a configuration space to contain only its first access type.

Parameters:

pcm

PCM handle

params

Configuration space

access

Returned first access type

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_access_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_t* _access
)

Restrict a configuration space to contain only its last access type.

Parameters:

pcm

PCM handle

params

Configuration space

access

Returned last access type

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_access_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_access_mask_t* mask
)

Restrict a configuration space to contain only a set of access types.

Parameters:

pcm

PCM handle

params

Configuration space

mask

Access mask

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_access_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_access_mask_t* mask
)

Get access mask from a configuration space.

Parameters:

params

Configuration space

mask

Returned Access mask

int
snd_pcm_hw_params_get_format(
    const snd_pcm_hw_params_t* params,
    snd_pcm_format_t* val
)

Extract format from a configuration space.

Parameters:

params

Configuration space

format

returned format

Returns:

format otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_test_format(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t val
)

Verify if a format is available inside a configuration space for a PCM.

Parameters:

pcm

PCM handle

params

Configuration space

format

format

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_format(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t val
)

Restrict a configuration space to contain only one format.

Parameters:

pcm

PCM handle

params

Configuration space

format

format

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_format_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t* format
)

Restrict a configuration space to contain only its first format.

Parameters:

pcm

PCM handle

params

Configuration space

format

Returned first format

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_format_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_t* format
)

Restrict a configuration space to contain only its last format.

Parameters:

pcm

PCM handle

params

Configuration space

format

Returned last format

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_format_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_format_mask_t* mask
)

Restrict a configuration space to contain only a set of formats.

Parameters:

pcm

PCM handle

params

Configuration space

mask

Format mask

Returns:

0 otherwise a negative error code

void
snd_pcm_hw_params_get_format_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_format_mask_t* mask
)

Get format mask from a configuration space.

Parameters:

params

Configuration space

mask

Returned Format mask

int
snd_pcm_hw_params_get_subformat(
    const snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
)

Extract subformat from a configuration space.

Parameters:

params

Configuration space

subformat

Returned subformat value

Returns:

subformat otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_test_subformat(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t subformat
)

Verify if a subformat is available inside a configuration space for a PCM.

Parameters:

pcm

PCM handle

params

Configuration space

subformat

subformat value

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_subformat(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t subformat
)

Restrict a configuration space to contain only one subformat.

Parameters:

pcm

PCM handle

params

Configuration space

subformat

subformat value

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_subformat_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
)

Restrict a configuration space to contain only its first subformat.

Parameters:

pcm

PCM handle

params

Configuration space

subformat

Returned subformat

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_subformat_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_t* subformat
)

Restrict a configuration space to contain only its last subformat.

Parameters:

pcm

PCM handle

params

Configuration space

subformat

Returned subformat

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_subformat_mask(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_mask_t* mask
)

Restrict a configuration space to contain only a set of subformats.

Parameters:

pcm

PCM handle

params

Configuration space

mask

Subformat mask

Returns:

0 otherwise a negative error code

void
snd_pcm_hw_params_get_subformat_mask(
    snd_pcm_hw_params_t* params,
    snd_pcm_subformat_mask_t* mask
)

Get subformat mask from a configuration space.

Parameters:

params

Configuration space

mask

Returned Subformat mask

int
snd_pcm_hw_params_get_channels(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract channels from a configuration space.

Parameters:

params

Configuration space

val

Returned channels count

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_channels_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract minimum channels count from a configuration space.

Parameters:

params

Configuration space

val

minimum channels count

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_channels_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract maximum channels count from a configuration space.

Parameters:

params

Configuration space

val

maximum channels count

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_channels(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
)

Verify if a channels count is available inside a configuration space for a PCM.

Parameters:

pcm

PCM handle

params

Configuration space

val

channels count

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_channels(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
)

Restrict a configuration space to contain only one channels count.

Parameters:

pcm

PCM handle

params

Configuration space

val

channels count

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_channels_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Restrict a configuration space with a minimum channels count.

Parameters:

pcm

PCM handle

params

Configuration space

val

minimum channels count (on return filled with actual minimum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_channels_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Restrict a configuration space with a maximum channels count.

Parameters:

pcm

PCM handle

params

Configuration space

val

maximum channels count (on return filled with actual maximum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_channels_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    unsigned int* max
)

Restrict a configuration space to have channels counts in a given range.

Parameters:

pcm

PCM handle

params

Configuration space

min

minimum channels count (on return filled with actual minimum)

max

maximum channels count (on return filled with actual maximum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_channels_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Restrict a configuration space to have channels count nearest to a target.

Parameters:

pcm

PCM handle

params

Configuration space

val

target channels count, returned chosen channels count

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_channels_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Restrict a configuration space to contain only its minimum channels count.

Parameters:

pcm

PCM handle

params

Configuration space

val

minimum channels count

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_channels_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Restrict a configuration space to contain only its maximum channels count.

Parameters:

pcm

PCM handle

params

Configuration space

val

maximum channels count

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_rate(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract rate from a configuration space.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

params

Configuration space

val

Returned approximate rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_rate_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract minimum rate from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

Returned approximate minimum rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_rate_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract maximum rate from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

Returned approximate maximum rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_rate(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Verify if a rate is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate rate

dir

Sub unit direction

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_rate(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Restrict a configuration space to contain only one rate.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_rate_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a minimum rate.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum rate (on return filled with actual minimum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_rate_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a maximum rate.

Wanted/actual exact maximum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum rate (on return filled with actual maximum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_rate_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
)

Restrict a configuration space to have rates in a given range.

Wanted/actual exact min/max is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum rate (on return filled with actual minimum)

mindir

Sub unit direction for minimum (on return filled with actual direction)

max

approximate maximum rate (on return filled with actual maximum)

maxdir

Sub unit direction for maximum (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_rate_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to have rate nearest to a target.

target/chosen exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target rate / returned approximate set rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_rate_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its minimum rate.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned minimum approximate rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_rate_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its maximum rate.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned maximum approximate rate

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_rate_resample(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
)

Restrict a configuration space to contain only real hardware rates.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disable, 1 = enable (default) rate resampling

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_rate_resample(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract resample state from a configuration space.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disable, 1 = enable rate resampling

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_export_buffer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
)

Restrict a configuration space to allow the buffer to be accessible from outside.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disable, 1 = enable (default) exporting buffer

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_export_buffer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract buffer accessibility from a configuration space.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disable, 1 = enable exporting buffer

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_period_wakeup(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val
)

Restrict a configuration space to settings without period wakeups.

This function must be called only on devices where non-blocking mode is enabled.

To check whether the hardware does support disabling period wakeups, call snd_pcm_hw_params_can_disable_period_wakeup(). If the hardware does not support this mode, standard period wakeups will be generated.

Even with disabled period wakeups, the period size/time/count parameters are valid; it is suggested to use snd_pcm_hw_params_set_period_size_last().

When period wakeups are disabled, the application must not use any functions that could block on this device. The use of poll should be limited to error cases. The application needs to use an external event or a timer to check the state of the ring buffer and refill it apropriately.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disable, 1 = enable (default) period wakeup

Returns:

Zero on success, otherwise a negative error code.

int
snd_pcm_hw_params_get_period_wakeup(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val
)

Extract period wakeup flag from a configuration space.

Parameters:

pcm

PCM handle

params

Configuration space

val

0 = disabled, 1 = enabled period wakeups

Returns:

Zero on success, otherwise a negative error code.

int
snd_pcm_hw_params_get_period_time(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract period time from a configuration space.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

params

Configuration space

val

Returned approximate period duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_period_time_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract minimum period time from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate minimum period duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_period_time_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract maximum period time from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate maximum period duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_period_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Verify if a period time is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate period duration in us

dir

Sub unit direction

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_period_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Restrict a configuration space to contain only one period time.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate period duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_time_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a minimum period time.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum period duration in us (on return filled with actual minimum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_time_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a maximum period time.

Wanted/actual exact maximum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum period duration in us (on return filled with actual maximum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_time_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
)

Restrict a configuration space to have period times in a given range.

Wanted/actual exact min/max is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum period duration in us (on return filled with actual minimum)

mindir

Sub unit direction for minimum (on return filled with actual direction)

max

approximate maximum period duration in us (on return filled with actual maximum)

maxdir

Sub unit direction for maximum (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_time_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to have period time nearest to a target.

target/chosen exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target period duration in us / returned chosen approximate target period duration

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_period_time_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its minimum period time.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned approximate period duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_period_time_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its maximum period time.

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned maximum approximate period time

dir

Sub unit direction

Returns:

approximate period duration in us

int
snd_pcm_hw_params_get_period_size(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
)

Extract period size from a configuration space.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

params

Configuration space

val

Returned approximate period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_period_size_min(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
)

Extract minimum period size from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate minimum period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_period_size_max(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* frames,
    int* dir
)

Extract maximum period size from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate minimum period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_period_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val,
    int dir
)

Verify if a period size is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate period size in frames

dir

Sub unit direction

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_period_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val,
    int dir
)

Restrict a configuration space to contain only one period size.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_size_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
)

Restrict a configuration space with a minimum period size.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum period size in frames (on return filled with actual minimum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_size_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
)

Restrict a configuration space with a maximum period size.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum period size in frames (on return filled with actual maximum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_size_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* min,
    int* mindir,
    snd_pcm_uframes_t* max,
    int* maxdir
)

Restrict a configuration space to have period sizes in a given range.

Wanted/actual exact min/max is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum period size in frames (on return filled with actual minimum)

mindir

Sub unit direction for minimum (on return filled with actual direction)

max

approximate maximum period size in frames (on return filled with actual maximum)

maxdir

Sub unit direction for maximum (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_period_size_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
)

Restrict a configuration space to have period size nearest to a target.

target/chosen exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target period size in frames / returned chosen approximate target period size

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_period_size_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
)

Restrict a configuration space to contain only its minimum period size.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned maximum approximate period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_period_size_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val,
    int* dir
)

Restrict a configuration space to contain only its maximum period size.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned maximum approximate period size in frames

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_period_size_integer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
)

Restrict a configuration space to contain only integer period sizes.

Parameters:

pcm

PCM handle

params

Configuration space

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_get_periods(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract periods from a configuration space.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

params

Configuration space

val

approximate periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_periods_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract minimum periods count from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate minimum periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_periods_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract maximum periods count from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate maximum periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_periods(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Verify if a periods count is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate periods per buffer

dir

Sub unit direction

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_periods(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Restrict a configuration space to contain only one periods count.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_periods_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a minimum periods count.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum periods per buffer (on return filled with actual minimum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_periods_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a maximum periods count.

Wanted/actual exact maximum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum periods per buffer (on return filled with actual maximum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_periods_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
)

Restrict a configuration space to have periods counts in a given range.

Wanted/actual exact min/max is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum periods per buffer (on return filled with actual minimum)

mindir

Sub unit direction for minimum (on return filled with actual direction)

max

approximate maximum periods per buffer (on return filled with actual maximum)

maxdir

Sub unit direction for maximum (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_periods_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to have periods count nearest to a target.

target/chosen exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target periods per buffer / returned chosen approximate target periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_periods_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its minimum periods count.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned approximate minimum periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_periods_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its maximum periods count.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned approximate maximum periods per buffer

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_periods_integer(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params
)

Restrict a configuration space to contain only integer periods counts.

Parameters:

pcm

PCM handle

params

Configuration space

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_get_buffer_time(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract buffer time from a configuration space.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

params

Configuration space

val

Returned buffer time in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_buffer_time_min(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract minimum buffer time from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate minimum buffer duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_buffer_time_max(
    const snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Extract maximum buffer time from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

approximate maximum buffer duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_buffer_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Verify if a buffer time is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate buffer duration in us

dir

Sub unit direction

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_buffer_time(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int val,
    int dir
)

Restrict a configuration space to contain only one buffer time.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate buffer duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_time_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a minimum buffer time.

Wanted/actual exact minimum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum buffer duration in us (on return filled with actual minimum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_time_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space with a maximum buffer time.

Wanted/actual exact maximum is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum buffer duration in us (on return filled with actual maximum)

dir

Sub unit direction (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_time_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* min,
    int* mindir,
    unsigned int* max,
    int* maxdir
)

Restrict a configuration space to have buffer times in a given range.

Wanted/actual exact min/max is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum buffer duration in us (on return filled with actual minimum)

mindir

Sub unit direction for minimum (on return filled with actual direction)

max

approximate maximum buffer duration in us (on return filled with actual maximum)

maxdir

Sub unit direction for maximum (on return filled with actual direction)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_time_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to have buffer time nearest to a target.

target/chosen exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target buffer duration in us / returned chosen approximate target buffer duration

dir

Sub unit direction

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_buffer_time_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its minimum buffer time.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned approximate minimum buffer duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_set_buffer_time_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    unsigned int* val,
    int* dir
)

Restrict a configuration space to contain only its maximum buffered time.

Actual exact value is <,=,> the approximate one following dir (-1, 0, 1)

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned approximate maximum buffer duration in us

dir

Sub unit direction

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_buffer_size(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Extract buffer size from a configuration space.

Parameters:

params

Configuration space

val

Returned buffer size in frames

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

int
snd_pcm_hw_params_get_buffer_size_min(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Extract minimum buffer size from a configuration space.

Parameters:

params

Configuration space

val

Returned approximate minimum buffer size in frames

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_buffer_size_max(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Extract maximum buffer size from a configuration space.

Exact value is <,=,> the returned one following dir (-1,0,1)

Parameters:

params

Configuration space

val

Returned approximate maximum buffer size in frames

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_test_buffer_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val
)

Verify if a buffer size is available inside a configuration space for a PCM.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

buffer size in frames

Returns:

0 if available a negative error code otherwise

int
snd_pcm_hw_params_set_buffer_size(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t val
)

Restrict a configuration space to contain only one buffer size.

Wanted exact value is <,=,> val following dir (-1,0,1)

Parameters:

pcm

PCM handle

params

Configuration space

val

buffer size in frames

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_size_min(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Restrict a configuration space with a minimum buffer size.

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate minimum buffer size in frames (on return filled with actual minimum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_size_max(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Restrict a configuration space with a maximum buffer size.

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate maximum buffer size in frames (on return filled with actual maximum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_size_minmax(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* min,
    snd_pcm_uframes_t* max
)

Restrict a configuration space to have buffer sizes in a given range.

Parameters:

pcm

PCM handle

params

Configuration space

min

approximate minimum buffer size in frames (on return filled with actual minimum)

max

approximate maximum buffer size in frames (on return filled with actual maximum)

Returns:

0 otherwise a negative error code if configuration space would become empty

int
snd_pcm_hw_params_set_buffer_size_near(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Restrict a configuration space to have buffer size nearest to a target.

Parameters:

pcm

PCM handle

params

Configuration space

val

approximate target buffer size in frames / returned chosen approximate target buffer size in frames

Returns:

0 otherwise a negative error code if configuration space is empty

int
snd_pcm_hw_params_set_buffer_size_first(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Restrict a configuration space to contain only its minimum buffer size.

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned minimum buffer size in frames

Returns:

buffer size in frames

int
snd_pcm_hw_params_set_buffer_size_last(
    snd_pcm_t* pcm,
    snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Restrict a configuration space to contain only its maximum buffer size.

Parameters:

pcm

PCM handle

params

Configuration space

val

Returned maximum buffer size in frames

Returns:

0 otherwise a negative error code

int
snd_pcm_hw_params_get_min_align(
    const snd_pcm_hw_params_t* params,
    snd_pcm_uframes_t* val
)

Get the minimum transfer align value in samples.

Parameters:

params

Configuration space

val

Returned minimum align value

Returns:

0 otherwise a negative error code if the configuration space does not contain a single value

Macros

#define snd_pcm_hw_params_alloca(ptr)

allocate an invalid snd_pcm_hw_params_t using standard alloca

Parameters:

ptr

returned pointer