From 625ef4cd7ce46fde25d891ca806aa86ae2e3da4d Mon Sep 17 00:00:00 2001 From: David Griffith Date: Sat, 18 Apr 2015 23:40:35 -0700 Subject: [PATCH] Allow for os_stop_sample() to work properly, more or less. --- src/curses/ux_audio.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/curses/ux_audio.c b/src/curses/ux_audio.c index 935ad17..b10c88d 100644 --- a/src/curses/ux_audio.c +++ b/src/curses/ux_audio.c @@ -53,6 +53,7 @@ typedef struct { FILE *fp; bb_result_t result; + int number; int vol; int repeats; } EFFECT; @@ -82,9 +83,10 @@ float *musicbuffer; float *bleepbuffer; int bleepchannels; int bleeprate; +int bleepcount; +int bleepnum; int musiccount; -int bleepcount; @@ -185,6 +187,7 @@ void os_start_sample (int number, int volume, int repeats, zword eos) myeffect.result = resource; myeffect.vol = volume; myeffect.repeats = repeats; + myeffect.number = number; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); @@ -215,7 +218,7 @@ void os_start_sample (int number, int volume, int repeats, zword eos) void os_stop_sample (int number) { - if (bleep_playing) { + if (bleep_playing && number == bleepnum) { bleep_stop = TRUE; } return; @@ -392,6 +395,7 @@ void *playaiff(EFFECT *raw_effect) sem_post(&playaiff_okay); sf_info.format = 0; + bleepnum = myeffect.number; filestart = ftell(myeffect.fp); lseek(fileno(myeffect.fp), myeffect.result.data.startpos, SEEK_SET); -- 2.34.1