Lines Matching +full:device +full:- +full:handle

1 // SPDX-License-Identifier: GPL-2.0
9 // every PCM device it can find. This may conflict with other system
21 #include "alsa-local.h"
36 snd_pcm_t *handle; member
38 int device; member
71 if (tstamp->tv_nsec > now.tv_nsec) { in timestamp_diff_ms()
72 diff.tv_sec = now.tv_sec - tstamp->tv_sec - 1; in timestamp_diff_ms()
73 diff.tv_nsec = (now.tv_nsec + 1000000000L) - tstamp->tv_nsec; in timestamp_diff_ms()
75 diff.tv_sec = now.tv_sec - tstamp->tv_sec; in timestamp_diff_ms()
76 diff.tv_nsec = now.tv_nsec - tstamp->tv_nsec; in timestamp_diff_ms()
92 return -1; in device_from_id()
96 static void missing_device(int card, int device, int subdevice, snd_pcm_stream_t stream) in missing_device() argument
100 for (pcm_data = pcm_list; pcm_data != NULL; pcm_data = pcm_data->next) { in missing_device()
101 if (pcm_data->card != card) in missing_device()
103 if (pcm_data->device != device) in missing_device()
105 if (pcm_data->subdevice != subdevice) in missing_device()
107 if (pcm_data->stream != stream) in missing_device()
114 pcm_data->card = card; in missing_device()
115 pcm_data->device = device; in missing_device()
116 pcm_data->subdevice = subdevice; in missing_device()
117 pcm_data->stream = stream; in missing_device()
118 pcm_data->next = pcm_missing; in missing_device()
127 int device, subdevice; in missing_devices() local
134 device = device_from_id(node1); in missing_devices()
135 if (device < 0) in missing_devices()
145 missing_device(card, device, subdevice, SND_PCM_STREAM_PLAYBACK); in missing_devices()
147 missing_device(card, device, subdevice, SND_PCM_STREAM_CAPTURE); in missing_devices()
159 snd_ctl_t *handle; in find_pcms() local
166 card = -1; in find_pcms()
179 err = snd_ctl_open_lconf(&handle, name, 0, config); in find_pcms()
193 err = snd_ctl_card_info_malloc(&card_data->info); in find_pcms()
198 err = snd_ctl_card_info(handle, card_data->info); in find_pcms()
200 card_data->name = snd_ctl_card_info_get_id(card_data->info); in find_pcms()
201 if (!card_data->name) in find_pcms()
207 if (!card_data->name) in find_pcms()
208 card_data->name = "Unknown"; in find_pcms()
210 ksft_print_msg("Card %d/%s - %s (%s)\n", card, in find_pcms()
211 card_data->name, card_name, card_longname); in find_pcms()
215 card_data->card = card; in find_pcms()
216 card_data->next = card_list; in find_pcms()
219 dev = -1; in find_pcms()
221 if (snd_ctl_pcm_next_device(handle, &dev) < 0) in find_pcms()
237 err = snd_ctl_pcm_info(handle, pcm_info); in find_pcms()
238 if (err == -ENOENT) in find_pcms()
244 ksft_print_msg("%s.0 - %s\n", card_data->name, in find_pcms()
258 pcm_data->card = card; in find_pcms()
259 pcm_data->device = dev; in find_pcms()
260 pcm_data->subdevice = subdev; in find_pcms()
261 pcm_data->card_name = card_data->name; in find_pcms()
262 pcm_data->stream = stream; in find_pcms()
263 pcm_data->pcm_config = conf_get_subtree(card_config, key, NULL); in find_pcms()
264 pcm_data->next = pcm_list; in find_pcms()
274 snd_ctl_close(handle); in find_pcms()
292 snd_pcm_t *handle = NULL; in test_pcm_time() local
324 ksft_print_msg("%s.%s.%s.%d.%d.%s - %s\n", in test_pcm_time()
326 data->card_name, data->device, data->subdevice, in test_pcm_time()
327 snd_pcm_stream_name(data->stream), in test_pcm_time()
350 sprintf(name, "hw:%d,%d,%d", data->card, data->device, data->subdevice); in test_pcm_time()
351 err = snd_pcm_open(&handle, name, data->stream, 0); in test_pcm_time()
353 snprintf(msg, sizeof(msg), "Failed to get pcm handle: %s", snd_strerror(err)); in test_pcm_time()
357 err = snd_pcm_hw_params_any(handle, hw_params); in test_pcm_time()
362 err = snd_pcm_hw_params_set_rate_resample(handle, hw_params, 0); in test_pcm_time()
367 err = snd_pcm_hw_params_set_access(handle, hw_params, access); in test_pcm_time()
373 i = -1; in test_pcm_time()
375 err = snd_pcm_hw_params_set_format(handle, hw_params, format); in test_pcm_time()
382 ksft_print_msg("%s.%s.%d.%d.%s.%s format %s -> %s\n", in test_pcm_time()
384 data->card_name, data->device, data->subdevice, in test_pcm_time()
385 snd_pcm_stream_name(data->stream), in test_pcm_time()
401 err = snd_pcm_hw_params_set_channels(handle, hw_params, channels); in test_pcm_time()
407 err = snd_pcm_hw_params_set_rate_near(handle, hw_params, &rrate, 0); in test_pcm_time()
417 err = snd_pcm_hw_params_set_period_size_near(handle, hw_params, &rperiod_size, 0); in test_pcm_time()
423 err = snd_pcm_hw_params_set_buffer_size_near(handle, hw_params, &rbuffer_size); in test_pcm_time()
428 err = snd_pcm_hw_params(handle, hw_params); in test_pcm_time()
434 err = snd_pcm_sw_params_current(handle, sw_params); in test_pcm_time()
439 if (data->stream == SND_PCM_STREAM_PLAYBACK) { in test_pcm_time()
444 err = snd_pcm_sw_params_set_start_threshold(handle, sw_params, start_threshold); in test_pcm_time()
449 err = snd_pcm_sw_params_set_avail_min(handle, sw_params, rperiod_size); in test_pcm_time()
454 err = snd_pcm_sw_params(handle, sw_params); in test_pcm_time()
462 data->card_name, data->device, data->subdevice, in test_pcm_time()
463 snd_pcm_stream_name(data->stream), in test_pcm_time()
475 if (data->stream == SND_PCM_STREAM_PLAYBACK) { in test_pcm_time()
476 frames = snd_pcm_writei(handle, samples, rate); in test_pcm_time()
488 frames = snd_pcm_readi(handle, samples, rate); in test_pcm_time()
502 snd_pcm_drain(handle); in test_pcm_time()
504 if (ms < duration_ms - margin_ms || ms > duration_ms + margin_ms) { in test_pcm_time()
523 data->card_name, data->device, in test_pcm_time()
524 data->subdevice, in test_pcm_time()
525 snd_pcm_stream_name(data->stream)); in test_pcm_time()
534 data->card_name, data->device, in test_pcm_time()
535 data->subdevice, in test_pcm_time()
536 snd_pcm_stream_name(data->stream)); in test_pcm_time()
540 data->card_name, data->device, in test_pcm_time()
541 data->subdevice, in test_pcm_time()
542 snd_pcm_stream_name(data->stream)); in test_pcm_time()
550 if (handle) in test_pcm_time()
551 snd_pcm_close(handle); in test_pcm_time()
585 for (pcm = pcm_list; pcm != NULL; pcm = pcm->next) { in card_thread()
586 if (pcm->card != card->card) in card_thread()
590 run_time_tests(pcm, TEST_CLASS_SYSTEM, pcm->pcm_config); in card_thread()
608 global_config = conf_load_from_file("pcm-test.conf"); in main()
617 for (conf = conf_cards; conf; conf = conf->next) in main()
618 if (conf->card < 0) in main()
623 for (pcm = pcm_list; pcm != NULL; pcm = pcm->next) { in main()
625 cfg = pcm->pcm_config; in main()
636 for (conf = conf_cards; conf; conf = conf->next) in main()
637 if (conf->card < 0) in main()
639 conf->filename, conf->config_id); in main()
641 for (pcm = pcm_missing; pcm != NULL; pcm = pcm->next) { in main()
643 pcm->card_name, pcm->device, pcm->subdevice, in main()
644 snd_pcm_stream_name(pcm->stream)); in main()
647 for (card = card_list; card != NULL; card = card->next) { in main()
648 ret = pthread_create(&card->thread, NULL, card_thread, card); in main()
651 card->card, ret, in main()
656 for (card = card_list; card != NULL; card = card->next) { in main()
657 ret = pthread_join(card->thread, &thread_ret); in main()
660 card->card, ret, in main()