void alsa_play(FILE *wave_file){ int ofs = 0; size_t dta = 0; ssize_t dtawave = 0; pbrec_count = LLONG_MAX; fdcount = 0; if ((fd = open64(wave_file, O_RDONLY, 0)) == -1) { /* just return. It okey */ return; } /* should be raw data */ init_raw_data(); pbrec_count = calc_count(); playback_go(fd, dta, pbrec_count, FORMAT_RAW, wave_file); if (fd != 0){ close(fd); remove(wave_file);/*Played, so delete the file*/ } }
static void playback(char *name) { int ofs; size_t dta; ssize_t dtawave; pbrec_count = LLONG_MAX; fdcount = 0; if (!name || !strcmp(name, "-")) return; if ((fd = open64(name, O_RDONLY, 0)) == -1) { perror(name); exit(EXIT_FAILURE); } // read bytes for WAVE-header if ((dtawave = test_wavefile(fd, audiobuf, dta)) >= 0) { pbrec_count = calc_count(); printf("will play %s", name); playback_go(fd, dtawave, pbrec_count, name); } if (fd != 0) close(fd); }