ALSA project - the C library reference: Hardware Parameters

ALSA project - the C library reference

Loading...
Searching...
No Matches
Macros | Functions
Hardware Parameters
PCM Interface

## Macros
#define | snd_pcm_hw_params_alloca(ptr)
| allocate an invalid snd_pcm_hw_params_t using standard alloca

## 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.
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.
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.
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.
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.
int | snd_pcm_hw_params_is_monotonic (const snd_pcm_hw_params_t *params)
| Check if timestamps are monotonic for given configuration.
int | snd_pcm_hw_params_can_overrange (const snd_pcm_hw_params_t *params)
| Check if hardware supports overrange detection.
int | snd_pcm_hw_params_can_pause (const snd_pcm_hw_params_t *params)
| Check if hardware supports pause.
int | snd_pcm_hw_params_can_resume (const snd_pcm_hw_params_t *params)
| Check if 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.
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)
int | snd_pcm_hw_params_can_sync_start (const snd_pcm_hw_params_t *params)
| Check if hardware supports synchronized start with sample resolution.
int | snd_pcm_hw_params_can_disable_period_wakeup (const snd_pcm_hw_params_t *params)
| Check if hardware can disable period wakeups.
int | snd_pcm_hw_params_is_perfect_drain (const snd_pcm_hw_params_t *params)
| Check if hardware is capable of perfect drain.
int | snd_pcm_hw_params_supports_audio_wallclock_ts (const snd_pcm_hw_params_t *params)
| Check if 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.
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.
int | snd_pcm_hw_params_get_sbits (const snd_pcm_hw_params_t *params)
| Get sample resolution info from a configuration space.
int | snd_pcm_hw_params_get_fifo_size (const snd_pcm_hw_params_t *params)
| Get hardware FIFO size info from a configuration space.
size_t | snd_pcm_hw_params_sizeof (void)
| get size of snd_pcm_hw_params_t
int | snd_pcm_hw_params_malloc (snd_pcm_hw_params_t **ptr)
| allocate an invalid snd_pcm_hw_params_t using standard malloc
void | snd_pcm_hw_params_free (snd_pcm_hw_params_t *obj)
| frees a previously allocated snd_pcm_hw_params_t
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
int | snd_pcm_hw_params_get_channels (const snd_pcm_hw_params_t *params, unsigned int *val)
| Extract channels from a configuration space.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
int | snd_pcm_hw_params_set_drain_silence (snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val)
| Restrict a configuration space to fill the end of playback stream with silence when drain() is invoked.
int | snd_pcm_hw_params_get_drain_silence (snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val)
| Extract drain with the filling of silence samples from a configuration space.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

## Detailed Description

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

## Macro Definition Documentation

## ◆ snd_pcm_hw_params_alloca

#define snd_pcm_hw_params_alloca | ( |  | ptr | ) |

allocate an invalid snd_pcm_hw_params_t using standard alloca

Parameters

  ptr | returned pointer

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

## Function Documentation

## ◆ snd_pcm_hw_params_any()

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.

Parameters

  pcm | PCM handle
  params | Configuration space

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

Note that the configuration space may be constrained by the currently installed configuration on the PCM device. To remove any constrains, free the configuration with snd_pcm_hw_free first.

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

## ◆ snd_pcm_hw_params_can_disable_period_wakeup()

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

Return values

  0 | Hardware cannot disable period wakeups
  1 | Hardware can disable period wakeups

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_can_mmap_sample_resolution()

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.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support sample-resolution mmap
  1 | Hardware supports sample-resolution mmap

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.

## ◆ snd_pcm_hw_params_can_overrange()

int snd_pcm_hw_params_can_overrange | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware supports overrange detection.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support overrange detection
  1 | 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.

## ◆ snd_pcm_hw_params_can_pause()

int snd_pcm_hw_params_can_pause | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware supports pause.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support pause
  1 | 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.

## ◆ snd_pcm_hw_params_can_resume()

int snd_pcm_hw_params_can_resume | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware supports resume.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support resume
  1 | 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.

## ◆ snd_pcm_hw_params_can_sync_start()

int snd_pcm_hw_params_can_sync_start | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware supports synchronized start with sample resolution.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support synchronized start
  1 | Hardware supports synchronized start

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.

## ◆ snd_pcm_hw_params_copy()

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

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_free()

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

## ◆ snd_pcm_hw_params_get_access()

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

## ◆ snd_pcm_hw_params_get_access_mask()

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

## ◆ snd_pcm_hw_params_get_buffer_size()

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

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

## ◆ snd_pcm_hw_params_get_buffer_size_max()

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.

Parameters

  params | Configuration space
  val | Returned approximate maximum buffer size in frames

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_buffer_size_min()

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

## ◆ snd_pcm_hw_params_get_buffer_time()

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.

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

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

## ◆ snd_pcm_hw_params_get_buffer_time_max()

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.

Parameters

  params | Configuration space
  val | approximate maximum buffer duration in us
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_buffer_time_min()

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.

Parameters

  params | Configuration space
  val | approximate minimum buffer duration in us
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_channels()

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

## ◆ snd_pcm_hw_params_get_channels_max()

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

## ◆ snd_pcm_hw_params_get_channels_min()

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

## ◆ snd_pcm_hw_params_get_drain_silence()

int snd_pcm_hw_params_get_drain_silence | ( | snd_pcm_t * | pcm,
|  | snd_pcm_hw_params_t * | params,
|  | unsigned int * | val )

Extract drain with the filling of silence samples from a configuration space.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | 0 = disabled, 1 = enabled

Returns
  0 otherwise a negative error code

## ◆ snd_pcm_hw_params_get_export_buffer()

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

## ◆ snd_pcm_hw_params_get_fifo_size()

int snd_pcm_hw_params_get_fifo_size | ( | const snd_pcm_hw_params_t * | params | ) |

Get hardware FIFO size info from a configuration space.

Parameters

  params | Configuration space

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

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.

## ◆ snd_pcm_hw_params_get_format()

int snd_pcm_hw_params_get_format | ( | const snd_pcm_hw_params_t * | params,
|  | snd_pcm_format_t * | format )

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

## ◆ snd_pcm_hw_params_get_format_mask()

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

## ◆ snd_pcm_hw_params_get_min_align()

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

## ◆ snd_pcm_hw_params_get_period_size()

int snd_pcm_hw_params_get_period_size | ( | const snd_pcm_hw_params_t * | params,
|  | snd_pcm_uframes_t * | val,
|  | int * | dir )

Extract period size from a configuration space.

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

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

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

## ◆ snd_pcm_hw_params_get_period_size_max()

int snd_pcm_hw_params_get_period_size_max | ( | const snd_pcm_hw_params_t * | params,
|  | snd_pcm_uframes_t * | val,
|  | int * | dir )

Extract maximum period size from a configuration space.

Parameters

  params | Configuration space
  val | approximate minimum period size in frames
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_period_size_min()

int snd_pcm_hw_params_get_period_size_min | ( | const snd_pcm_hw_params_t * | params,
|  | snd_pcm_uframes_t * | val,
|  | int * | dir )

Extract minimum period size from a configuration space.

Parameters

  params | Configuration space
  val | approximate minimum period size in frames
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_period_time()

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.

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

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

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_get_period_time_max()

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.

Parameters

  params | Configuration space
  val | approximate maximum period duration in us
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_period_time_min()

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.

Parameters

  params | Configuration space
  val | approximate minimum period duration in us
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_period_wakeup()

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.

## ◆ snd_pcm_hw_params_get_periods()

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.

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

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

## ◆ snd_pcm_hw_params_get_periods_max()

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.

Parameters

  params | Configuration space
  val | approximate maximum periods per buffer
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_periods_min()

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.

Parameters

  params | Configuration space
  val | approximate minimum periods per buffer
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_get_rate()

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.

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

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

## ◆ snd_pcm_hw_params_get_rate_max()

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.

Parameters

  params | Configuration space
  val | Returned approximate maximum rate
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_rate_min()

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.

Parameters

  params | Configuration space
  val | Returned approximate minimum rate
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_get_rate_numden()

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.

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

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.

## ◆ snd_pcm_hw_params_get_rate_resample()

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

## ◆ snd_pcm_hw_params_get_sbits()

int snd_pcm_hw_params_get_sbits | ( | const snd_pcm_hw_params_t * | params | ) |

Get sample resolution info from a configuration space.

Parameters

  params | Configuration space

Returns
  sample resolution (in bits) otherwise a negative error code if the info is not available

For linear formats, this function returns sample resolution - used bits starting from the first usable significant bit defined by the format (e.g. bit 31 for S32_LE format or bit 23 for S24_LE format - starting from bit zero). Application may use full sample bit range defined by the format, but additional bits (outside this sample resolution) are stripped (not processed).

For non-linear formats, this value may have a special meaning which may be defined in future.

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.

## ◆ snd_pcm_hw_params_get_subformat()

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

## ◆ snd_pcm_hw_params_get_subformat_mask()

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

## ◆ snd_pcm_hw_params_is_batch()

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.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't do double buffering for data transfers
  1 | Hardware does double buffering for data transfers

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.

## ◆ snd_pcm_hw_params_is_block_transfer()

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.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't block transfers
  1 | Hardware does block transfers

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.

## ◆ snd_pcm_hw_params_is_double()

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.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't do double buffering for start/stop
  1 | Hardware does double buffering for start/stop

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.

## ◆ snd_pcm_hw_params_is_half_duplex()

int snd_pcm_hw_params_is_half_duplex | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware does half-duplex only.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't do half-duplex
  1 | Hardware does half-duplex

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.

## ◆ snd_pcm_hw_params_is_joint_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)

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't do joint-duplex
  1 | Hardware does joint-duplex

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.

## ◆ snd_pcm_hw_params_is_monotonic()

int snd_pcm_hw_params_is_monotonic | ( | const snd_pcm_hw_params_t * | params | ) |

Check if timestamps are monotonic for given configuration.

Parameters

  params | Configuration space

Return values

  0 | Device doesn't do monotomic timestamps
  1 | Device does monotonic 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.

## ◆ snd_pcm_hw_params_is_perfect_drain()

int snd_pcm_hw_params_is_perfect_drain | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware is capable of perfect drain.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't do perfect drain
  1 | Hardware does perfect drain

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.

Perfect drain means that the hardware does not use samples beyond the stream application pointer.

## ◆ snd_pcm_hw_params_malloc()

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

## ◆ snd_pcm_hw_params_set_access()

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

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

## ◆ snd_pcm_hw_params_set_access_first()

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

## ◆ snd_pcm_hw_params_set_access_last()

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

## ◆ snd_pcm_hw_params_set_access_mask()

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

## ◆ snd_pcm_hw_params_set_buffer_size()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_size_first()

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

## ◆ snd_pcm_hw_params_set_buffer_size_last()

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

## ◆ snd_pcm_hw_params_set_buffer_size_max()

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

## ◆ snd_pcm_hw_params_set_buffer_size_min()

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

## ◆ snd_pcm_hw_params_set_buffer_size_minmax()

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

## ◆ snd_pcm_hw_params_set_buffer_size_near()

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

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_set_buffer_time()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_first()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_last()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_max()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_min()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_minmax()

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.

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

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

## ◆ snd_pcm_hw_params_set_buffer_time_near()

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.

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

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

Examples
  /test/pcm.c.

## ◆ snd_pcm_hw_params_set_channels()

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

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

## ◆ snd_pcm_hw_params_set_channels_first()

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

## ◆ snd_pcm_hw_params_set_channels_last()

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

## ◆ snd_pcm_hw_params_set_channels_max()

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

## ◆ snd_pcm_hw_params_set_channels_min()

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

## ◆ snd_pcm_hw_params_set_channels_minmax()

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

## ◆ snd_pcm_hw_params_set_channels_near()

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

## ◆ snd_pcm_hw_params_set_drain_silence()

int snd_pcm_hw_params_set_drain_silence | ( | snd_pcm_t * | pcm,
|  | snd_pcm_hw_params_t * | params,
|  | unsigned int | val )

Restrict a configuration space to fill the end of playback stream with silence when drain() is invoked.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | 0 = disabled, 1 = enabled (default) fill the end of the playback stream with silence when drain() is invoked

Returns
  Zero on success, otherwise a negative error code.

When disabled, the application should handle the end of stream gracefully (fill the silent samples to align to the period size plus some extra samples for hardware / driver without perfect drain). Note that the rewind may be used for this purpose or the sw_params silencing mechanism.

## ◆ snd_pcm_hw_params_set_export_buffer()

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

## ◆ snd_pcm_hw_params_set_format()

int snd_pcm_hw_params_set_format | ( | snd_pcm_t * | pcm,
|  | snd_pcm_hw_params_t * | params,
|  | snd_pcm_format_t | format )

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

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

## ◆ snd_pcm_hw_params_set_format_first()

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

## ◆ snd_pcm_hw_params_set_format_last()

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

## ◆ snd_pcm_hw_params_set_format_mask()

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

## ◆ snd_pcm_hw_params_set_period_size()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_first()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_integer()

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

## ◆ snd_pcm_hw_params_set_period_size_last()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_max()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_min()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_minmax()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_size_near()

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.

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

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

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_set_period_time()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_time_first()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_time_last()

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

## ◆ snd_pcm_hw_params_set_period_time_max()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_time_min()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_time_minmax()

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.

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

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

## ◆ snd_pcm_hw_params_set_period_time_near()

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.

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

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

Examples
  /test/pcm.c.

## ◆ snd_pcm_hw_params_set_period_wakeup()

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.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | 0 = disable, 1 = enable (default) period wakeup

Returns
  Zero on success, otherwise a negative error code.

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.

Examples
  /test/latency.c.

## ◆ snd_pcm_hw_params_set_periods()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_first()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_integer()

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

## ◆ snd_pcm_hw_params_set_periods_last()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_max()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_min()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_minmax()

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.

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

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

## ◆ snd_pcm_hw_params_set_periods_near()

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.

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

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

## ◆ snd_pcm_hw_params_set_rate()

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.

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

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

## ◆ snd_pcm_hw_params_set_rate_first()

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.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | Returned minimum approximate rate
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_set_rate_last()

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.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | Returned maximum approximate rate
  dir | Sub unit direction

Returns
  0 otherwise a negative error code

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

## ◆ snd_pcm_hw_params_set_rate_max()

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.

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

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

## ◆ snd_pcm_hw_params_set_rate_min()

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.

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

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

## ◆ snd_pcm_hw_params_set_rate_minmax()

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.

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

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

## ◆ snd_pcm_hw_params_set_rate_near()

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.

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

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

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

## ◆ snd_pcm_hw_params_set_rate_resample()

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

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

## ◆ snd_pcm_hw_params_set_subformat()

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

## ◆ snd_pcm_hw_params_set_subformat_first()

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

## ◆ snd_pcm_hw_params_set_subformat_last()

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

## ◆ snd_pcm_hw_params_set_subformat_mask()

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

## ◆ snd_pcm_hw_params_sizeof()

size_t snd_pcm_hw_params_sizeof | ( | void |  | ) |

get size of snd_pcm_hw_params_t

Returns
  size in bytes

## ◆ snd_pcm_hw_params_supports_audio_ts_type()

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.

Parameters

  params | Configuration space
  type | Audio timestamp type

Return values

  0 | Hardware doesn't support type of audio timestamps
  1 | 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.

## ◆ snd_pcm_hw_params_supports_audio_wallclock_ts()

int snd_pcm_hw_params_supports_audio_wallclock_ts | ( | const snd_pcm_hw_params_t * | params | ) |

Check if hardware supports audio wallclock timestamps.

Parameters

  params | Configuration space

Return values

  0 | Hardware doesn't support audio wallclock timestamps
  1 | 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.

## ◆ snd_pcm_hw_params_test_access()

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

## ◆ snd_pcm_hw_params_test_buffer_size()

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.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | buffer size in frames

Returns
  0 if available a negative error code otherwise

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

## ◆ snd_pcm_hw_params_test_buffer_time()

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.

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

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

## ◆ snd_pcm_hw_params_test_channels()

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

## ◆ snd_pcm_hw_params_test_format()

int snd_pcm_hw_params_test_format | ( | snd_pcm_t * | pcm,
|  | snd_pcm_hw_params_t * | params,
|  | snd_pcm_format_t | format )

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

## ◆ snd_pcm_hw_params_test_period_size()

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.

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

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

## ◆ snd_pcm_hw_params_test_period_time()

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.

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

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

## ◆ snd_pcm_hw_params_test_periods()

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.

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

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

## ◆ snd_pcm_hw_params_test_rate()

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.

Parameters

  pcm | PCM handle
  params | Configuration space
  val | approximate rate
  dir | Sub unit direction

Returns
  0 if available a negative error code otherwise

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

## ◆ snd_pcm_hw_params_test_subformat()

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