static void mix_to_mono (SNDFILE * infile, SNDFILE * outfile) { double buffer [1024] ; sf_count_t count ; while ((count = sfx_mix_mono_read_double (infile, buffer, ARRAY_LEN (buffer))) > 0) sf_write_double (outfile, buffer, count) ; return ; } /* mix_to_mono */
static void read_mono_audio (SNDFILE * file, sf_count_t filelen, double * data, int datalen, int indx, int total) { sf_count_t start ; memset (data, 0, datalen * sizeof (data [0])) ; start = (indx * filelen) / total - datalen / 2 ; if (start >= 0) sf_seek (file, start, SEEK_SET) ; else { start = -start ; sf_seek (file, 0, SEEK_SET) ; data += start ; datalen -= start ; } ; sfx_mix_mono_read_double (file, data, datalen) ; return ; } /* read_mono_audio */