Lines Matching full:bat
44 static int format_convert(struct bat *bat, struct pcm_config *config) in format_convert() argument
49 if (t->format_bat == bat->format) { in format_convert()
54 fprintf(bat->err, _("Invalid format!\n")); in format_convert()
58 static int init_config(struct bat *bat, struct pcm_config *config) in init_config() argument
60 config->channels = bat->channels; in init_config()
61 config->rate = bat->rate; in init_config()
62 if (bat->period_size > 0) in init_config()
63 config->period_size = bat->period_size; in init_config()
71 return format_convert(bat, config); in init_config()
88 static int check_param(struct bat *bat, struct pcm_params *params, in check_param() argument
98 fprintf(bat->err, in check_param()
106 fprintf(bat->err, in check_param()
118 static int check_playback_params(struct bat *bat, in check_playback_params() argument
122 unsigned int card = bat->playback.card_tiny; in check_playback_params()
123 unsigned int device = bat->playback.device_tiny; in check_playback_params()
128 fprintf(bat->err, _("Unable to open PCM device %u!\n"), in check_playback_params()
133 err = check_param(bat, params, PCM_PARAM_RATE, in check_playback_params()
137 err = check_param(bat, params, PCM_PARAM_CHANNELS, in check_playback_params()
141 err = check_param(bat, params, PCM_PARAM_SAMPLE_BITS, in check_playback_params()
142 bat->sample_size * 8, "Bitrate", " bits"); in check_playback_params()
145 err = check_param(bat, params, PCM_PARAM_PERIOD_SIZE, in check_playback_params()
149 err = check_param(bat, params, PCM_PARAM_PERIODS, in check_playback_params()
163 static int latencytest_process_output(struct bat *bat, struct pcm *pcm, in latencytest_process_output() argument
167 int frames = bytes / bat->frame_size; in latencytest_process_output()
169 fprintf(bat->log, _("Play sample with %d frames buffer\n"), frames); in latencytest_process_output()
171 bat->latency.is_playing = true; in latencytest_process_output()
175 err = handleoutput(bat, buffer, bytes, frames); in latencytest_process_output()
183 if (bat->latency.state == LATENCY_STATE_COMPLETE_SUCCESS) in latencytest_process_output()
186 bat->periods_played++; in latencytest_process_output()
189 bat->latency.is_playing = false; in latencytest_process_output()
197 static int play_sample(struct bat *bat, struct pcm *pcm, in play_sample() argument
201 int frames = bytes / bat->frame_size; in play_sample()
205 if (bat->debugplay) { in play_sample()
206 fp = fopen(bat->debugplay, "wb"); in play_sample()
209 fprintf(bat->err, _("Cannot open file: %s %d\n"), in play_sample()
210 bat->debugplay, err); in play_sample()
222 err = generate_input_data(bat, buffer, bytes, frames); in play_sample()
226 if (bat->debugplay) { in play_sample()
234 bat->periods_played++; in play_sample()
235 if (bat->period_is_limited in play_sample()
236 && bat->periods_played >= bat->periods_total) in play_sample()
244 if (bat->debugplay) { in play_sample()
245 update_wav_header(bat, fp, bytes_total); in play_sample()
251 static int get_tiny_device(struct bat *bat, char *alsa_device, in get_tiny_device() argument
276 fprintf(bat->err, _("Invalid tiny device: %s\n"), alsa_device); in get_tiny_device()
283 void *playback_tinyalsa(struct bat *bat) in playback_tinyalsa() argument
291 fprintf(bat->log, _("Entering playback thread (tinyalsa).\n")); in playback_tinyalsa()
296 err = get_tiny_device(bat, bat->playback.device, in playback_tinyalsa()
297 &bat->playback.card_tiny, in playback_tinyalsa()
298 &bat->playback.device_tiny); in playback_tinyalsa()
305 err = init_config(bat, &config); in playback_tinyalsa()
312 err = check_playback_params(bat, &config); in playback_tinyalsa()
319 pcm = pcm_open(bat->playback.card_tiny, bat->playback.device_tiny, in playback_tinyalsa()
322 fprintf(bat->err, _("Unable to open PCM device %u (%s)!\n"), in playback_tinyalsa()
323 bat->playback.device_tiny, pcm_get_error(pcm)); in playback_tinyalsa()
337 if (bat->playback.file == NULL) { in playback_tinyalsa()
338 fprintf(bat->log, _("Playing generated audio sine wave")); in playback_tinyalsa()
339 bat->sinus_duration == 0 ? in playback_tinyalsa()
340 fprintf(bat->log, _(" endlessly\n")) : in playback_tinyalsa()
341 fprintf(bat->log, _("\n")); in playback_tinyalsa()
343 fprintf(bat->log, _("Playing input audio file: %s\n"), in playback_tinyalsa()
344 bat->playback.file); in playback_tinyalsa()
345 bat->fp = fopen(bat->playback.file, "rb"); in playback_tinyalsa()
347 if (bat->fp == NULL) { in playback_tinyalsa()
348 fprintf(bat->err, _("Cannot open file: %s %d\n"), in playback_tinyalsa()
349 bat->playback.file, err); in playback_tinyalsa()
354 err = read_wav_header(bat, bat->playback.file, bat->fp, true); in playback_tinyalsa()
361 if (bat->roundtriplatency) in playback_tinyalsa()
362 err = latencytest_process_output(bat, pcm, buffer, bufbytes); in playback_tinyalsa()
364 err = play_sample(bat, pcm, buffer, bufbytes); in playback_tinyalsa()
371 if (bat->playback.file) in playback_tinyalsa()
372 fclose(bat->fp); in playback_tinyalsa()
384 static int capture_sample(struct bat *bat, struct pcm *pcm, in capture_sample() argument
390 unsigned int bytes_count = bat->frames * bat->frame_size; in capture_sample()
392 remove(bat->capture.file); in capture_sample()
393 fp = fopen(bat->capture.file, "wb"); in capture_sample()
396 fprintf(bat->err, _("Cannot open file: %s %d\n"), in capture_sample()
397 bat->capture.file, err); in capture_sample()
413 bat->periods_played++; in capture_sample()
415 if (bat->period_is_limited in capture_sample()
416 && bat->periods_played >= bat->periods_total) in capture_sample()
420 err = update_wav_header(bat, fp, bytes_read); in capture_sample()
429 static int latencytest_process_input(struct bat *bat, struct pcm *pcm, in latencytest_process_input() argument
435 unsigned int bytes_count = bat->frames * bat->frame_size; in latencytest_process_input()
437 remove(bat->capture.file); in latencytest_process_input()
438 fp = fopen(bat->capture.file, "wb"); in latencytest_process_input()
441 fprintf(bat->err, _("Cannot open file: %s %d\n"), in latencytest_process_input()
442 bat->capture.file, err); in latencytest_process_input()
452 bat->latency.is_capturing = true; in latencytest_process_input()
458 err = handleinput(bat, buffer, bytes / bat->frame_size); in latencytest_process_input()
462 if (bat->latency.is_playing == false) in latencytest_process_input()
468 bat->latency.is_capturing = false; in latencytest_process_input()
470 err = update_wav_header(bat, fp, bytes_read); in latencytest_process_input()
479 void *record_tinyalsa(struct bat *bat) in record_tinyalsa() argument
489 fprintf(bat->log, _("Entering capture thread (tinyalsa).\n")); in record_tinyalsa()
494 err = get_tiny_device(bat, bat->capture.device, in record_tinyalsa()
495 &bat->capture.card_tiny, in record_tinyalsa()
496 &bat->capture.device_tiny); in record_tinyalsa()
503 err = init_config(bat, &config); in record_tinyalsa()
510 pcm = pcm_open(bat->capture.card_tiny, bat->capture.device_tiny, in record_tinyalsa()
513 fprintf(bat->err, _("Unable to open PCM device (%s)!\n"), in record_tinyalsa()
532 fprintf(bat->log, _("Recording ...\n")); in record_tinyalsa()
533 if (bat->roundtriplatency) in record_tinyalsa()
534 err = latencytest_process_input(bat, pcm, buffer, bufbytes); in record_tinyalsa()
536 err = capture_sample(bat, pcm, buffer, bufbytes); in record_tinyalsa()