From ad6d37e9f1652b563f0d141bd2b66466c490fbc8 Mon Sep 17 00:00:00 2001 From: David Griffith Date: Sun, 12 Apr 2015 00:58:25 -0700 Subject: [PATCH] Now AIFF samples play correctly. --- src/curses/ux_audio.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/curses/ux_audio.c b/src/curses/ux_audio.c index 77a7a4b..9946a12 100644 --- a/src/curses/ux_audio.c +++ b/src/curses/ux_audio.c @@ -76,7 +76,10 @@ static sem_t audio_empty; int bleep_playing = 0; float *musicbuffer; + float *bleepbuffer; +int bleepchannels; +int bleeprate; int musiccount; int bleepcount; @@ -257,8 +260,6 @@ static void *mixer(void *arg) format.byte_format = AO_FMT_NATIVE; format.bits = 16; - format.channels = 2; - format.rate = SAMPLERATE; device = NULL; @@ -266,6 +267,8 @@ static void *mixer(void *arg) sem_wait(&audio_full); /* Wait until output buffer is full */ pthread_mutex_lock(&mutex); /* Acquire mutex */ + format.channels = bleepchannels; + format.rate = bleeprate; if (bleep_playing && device == NULL) { device = ao_open_live(default_driver, &format, NULL); if (device == NULL) { @@ -381,6 +384,9 @@ static int playaiff(EFFECT myeffect) frames_read = 0; toread = sf_info.frames * sf_info.channels; + bleepchannels = sf_info.channels; + bleeprate = sf_info.samplerate; + bleep_playing = TRUE; while (toread > 0) { sem_wait(&audio_empty); -- 2.34.1