예제 #1
0
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*/
	}	
}
예제 #2
0
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);
}