Lines Matching full:bat
28 #include "bat-signal.h"
33 /* update chunk_fmt data to bat */
34 static int update_fmt_to_bat(struct bat *bat, struct chunk_fmt *fmt) in update_fmt_to_bat() argument
36 bat->channels = fmt->channels; in update_fmt_to_bat()
37 bat->rate = fmt->sample_rate; in update_fmt_to_bat()
38 bat->sample_size = fmt->sample_length / 8; in update_fmt_to_bat()
39 if (bat->sample_size > 4) { in update_fmt_to_bat()
40 fprintf(bat->err, _("Invalid format: sample size=%d\n"), in update_fmt_to_bat()
41 bat->sample_size); in update_fmt_to_bat()
44 bat->frame_size = fmt->blocks_align; in update_fmt_to_bat()
49 /* calculate frames and update to bat */
50 static int update_frames_to_bat(struct bat *bat, struct wav_chunk_header *header, in update_frames_to_bat() argument
56 bat->frames = header->length / bat->frame_size; in update_frames_to_bat()
57 if (!bat->local) in update_frames_to_bat()
58 bat->frames /= 2; in update_frames_to_bat()
63 static int read_chunk_fmt(struct bat *bat, char *file, FILE *fp, bool skip, in read_chunk_fmt() argument
72 fprintf(bat->err, _("Read chunk fmt error: %s:%zd\n"), in read_chunk_fmt()
81 fprintf(bat->err, _("Seek fmt header error: %s:%d\n"), in read_chunk_fmt()
86 /* If the file is opened for playback, update BAT data; in read_chunk_fmt()
89 err = update_fmt_to_bat(bat, &chunk_fmt); in read_chunk_fmt()
97 int read_wav_header(struct bat *bat, char *file, FILE *fp, bool skip) in read_wav_header() argument
108 fprintf(bat->err, _("Read header error: %s:%zd\n"), file, err); in read_wav_header()
113 fprintf(bat->err, _("%s is not a riff/wave file\n"), file); in read_wav_header()
121 fprintf(bat->err, _("Read chunk header error: ")); in read_wav_header()
122 fprintf(bat->err, _("%s:%zd\n"), file, err); in read_wav_header()
129 err = read_chunk_fmt(bat, file, fp, skip, in read_wav_header()
136 /* If the file is opened for playback, update BAT data; in read_wav_header()
139 err = update_frames_to_bat(bat, &chunk_header, in read_wav_header()
151 fprintf(bat->err, _("Fail to skip unknown")); in read_wav_header()
152 fprintf(bat->err, _(" chunk of %s:%d\n"), in read_wav_header()
162 void prepare_wav_info(struct wav_container *wav, struct bat *bat) in prepare_wav_info() argument
169 wav->format.channels = bat->channels; in prepare_wav_info()
170 wav->format.sample_rate = bat->rate; in prepare_wav_info()
171 wav->format.sample_length = bat->sample_size * 8; in prepare_wav_info()
172 wav->format.blocks_align = bat->channels * bat->sample_size; in prepare_wav_info()
173 wav->format.bytes_p_second = wav->format.blocks_align * bat->rate; in prepare_wav_info()
174 wav->chunk.length = bat->frames * bat->frame_size; in prepare_wav_info()
180 int write_wav_header(FILE *fp, struct wav_container *wav, struct bat *bat) in write_wav_header() argument
186 fprintf(bat->err, _("Write file error: header %d\n"), err); in write_wav_header()
191 fprintf(bat->err, _("Write file error: format %d\n"), err); in write_wav_header()
196 fprintf(bat->err, _("Write file error: chunk %d\n"), err); in write_wav_header()
204 int update_wav_header(struct bat *bat, FILE *fp, int bytes) in update_wav_header() argument
209 prepare_wav_info(&wav, bat); in update_wav_header()
214 err = write_wav_header(fp, &wav, bat); in update_wav_header()
226 int generate_input_data(struct bat *bat, void *buffer, int bytes, int frames) in generate_input_data() argument
231 if (bat->playback.file != NULL) { in generate_input_data()
236 err = fread((char *)buffer + load, 1, bytes - load, bat->fp); in generate_input_data()
238 if (feof(bat->fp)) { in generate_input_data()
239 fprintf(bat->log, in generate_input_data()
244 if (ferror(bat->fp)) { in generate_input_data()
245 fprintf(bat->err, _("Read file error")); in generate_input_data()
246 fprintf(bat->err, _(": %d\n"), err); in generate_input_data()
256 if ((bat->sinus_duration) && (load > bat->sinus_duration)) in generate_input_data()
259 err = generate_sine_wave(bat, frames, buffer); in generate_input_data()