Lines Matching refs:hwparams
51 static int set_format(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, pa_sample_format_t *f) {
89 pa_assert(hwparams);
92 if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format_trans[*f])) >= 0)
122 if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format_trans[*f])) >= 0)
134 if ((ret = snd_pcm_hw_params_set_format(pcm_handle, hwparams, format_trans[*f])) >= 0)
145 static int set_period_size(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, snd_pcm_uframes_t size) {
150 pa_assert(hwparams);
154 if (snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d) < 0) {
157 if (snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d) < 0) {
160 if ((ret = snd_pcm_hw_params_set_period_size_near(pcm_handle, hwparams, &s, &d)) < 0) {
170 static int set_buffer_size(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, snd_pcm_uframes_t size) {
174 pa_assert(hwparams);
176 if ((ret = snd_pcm_hw_params_set_buffer_size_near(pcm_handle, hwparams, &size)) < 0) {
184 static void check_access(snd_pcm_t *pcm_handle, snd_pcm_hw_params_t *hwparams, bool use_mmap) {
185 if ((use_mmap && !snd_pcm_hw_params_test_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_INTERLEAVED)) ||
186 !snd_pcm_hw_params_test_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED))
189 if ((use_mmap && !snd_pcm_hw_params_test_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_NONINTERLEAVED)) ||
190 !snd_pcm_hw_params_test_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_NONINTERLEAVED))
192 else if (use_mmap && !snd_pcm_hw_params_test_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_COMPLEX)) {
211 snd_pcm_hw_params_t *hwparams, *hwparams_copy;
222 snd_pcm_hw_params_alloca(&hwparams);
225 if ((ret = snd_pcm_hw_params_any(pcm_handle, hwparams)) < 0) {
230 if ((ret = snd_pcm_hw_params_set_rate_resample(pcm_handle, hwparams, 0)) < 0) {
237 if (snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_MMAP_INTERLEAVED) < 0) {
241 if ((ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {
243 check_access(pcm_handle, hwparams, true);
250 } else if ((ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) {
252 check_access(pcm_handle, hwparams, false);
263 if (snd_pcm_hw_params_is_batch(hwparams)) {
289 if (snd_pcm_hw_params_can_disable_period_wakeup(hwparams)) {
291 if ((ret = snd_pcm_hw_params_set_period_wakeup(pcm_handle, hwparams, false)) < 0)
301 if ((ret = set_format(pcm_handle, hwparams, &_ss.format)) < 0)
304 if ((ret = snd_pcm_hw_params_set_rate_near(pcm_handle, hwparams, &_ss.rate, NULL)) < 0) {
314 if ((ret = snd_pcm_hw_params_set_channels(pcm_handle, hwparams, _ss.channels)) < 0) {
321 if ((ret = snd_pcm_hw_params_set_channels_near(pcm_handle, hwparams, &c)) < 0) {
340 if ((ret = snd_pcm_hw_params_get_buffer_size_max(hwparams, &max_frames)) < 0)
351 snd_pcm_hw_params_copy(hwparams_copy, hwparams);
361 snd_pcm_hw_params_copy(hwparams_copy, hwparams);
372 snd_pcm_hw_params_copy(hwparams_copy, hwparams);
383 snd_pcm_hw_params_copy(hwparams_copy, hwparams);
397 if ((ret = snd_pcm_hw_params(pcm_handle, hwparams)) < 0) {
413 if ((ret = snd_pcm_hw_params_current(pcm_handle, hwparams)) < 0) {
418 if ((ret = snd_pcm_hw_params_get_period_size(hwparams, &_period_size, &dir)) < 0 ||
419 (ret = snd_pcm_hw_params_get_buffer_size(hwparams, &_buffer_size)) < 0) {
428 snd_pcm_hw_params_get_period_wakeup(pcm_handle, hwparams, &no_wakeup);
1016 snd_pcm_hw_params_t *hwparams;
1020 snd_pcm_hw_params_alloca(&hwparams);
1023 if ((err = snd_pcm_hw_params_current(pcm, hwparams)) < 0)
1027 if ((bits = snd_pcm_hw_params_get_sbits(hwparams)) >= 0)
1069 snd_pcm_hw_params_t *hwparams;
1107 snd_pcm_hw_params_alloca(&hwparams);
1109 if ((err = snd_pcm_hw_params_any(pcm, hwparams)) < 0) {
1114 if (snd_pcm_hw_params_can_resume(hwparams)) {
1417 snd_pcm_hw_params_t *hwparams;
1421 snd_pcm_hw_params_alloca(&hwparams);
1423 if ((ret = snd_pcm_hw_params_any(pcm, hwparams)) < 0) {
1429 if (snd_pcm_hw_params_test_rate(pcm, hwparams, all_rates[i], 0) == 0) {
1448 if ((ret = snd_pcm_hw_params_set_rate_near(pcm, hwparams, &rates[0], NULL)) < 0) {
1494 snd_pcm_hw_params_t *hwparams;
1499 snd_pcm_hw_params_alloca(&hwparams);
1501 if ((ret = snd_pcm_hw_params_any(pcm, hwparams)) < 0) {
1507 if (snd_pcm_hw_params_test_format(pcm, hwparams, all_formats[i]) == 0) {
1526 if ((ret = snd_pcm_hw_params_set_format(pcm, hwparams, format_trans_to_pa[formats[0]])) < 0) {