X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=helpers%2Fmusic_file.py;h=e6a340da53e56c97dda679a14064f056e01fd670;hb=0deb82a57ae3abefd44509dc88c546f6e5a94d1b;hp=b40de1a2f9138a852376bfcc50c058b21af82766;hpb=ecaf3148af1d9adff1819f9536f483ebf7c85a95;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/music_file.py b/helpers/music_file.py index b40de1a..e6a340d 100644 --- a/helpers/music_file.py +++ b/helpers/music_file.py @@ -40,8 +40,8 @@ class MusicFile(Machine): self.audio_segment = None self.gain = gain self.music_lock = Lock("music__" + filename) + self.wait_event = threading.Event() - self.flag_paused = False threading.Thread(name = "MSMusicLoad", target = self.load).start() def on_enter_loading(self): @@ -109,6 +109,9 @@ class MusicFile(Machine): if self.is_loaded_stopping(): self.stopped() + def on_enter_loaded_stopped(self): + self.wait_event.set() + def play_callback(self, out_data, frame_count, time_info, status_flags): with self.music_lock: audio_segment = self.current_audio_segment.get_sample_slice_data( @@ -147,8 +150,8 @@ class MusicFile(Machine): return 20 * math.log10(max(volume, 0.0001) / 100) def wait_end(self): - # FIXME: todo - pass + self.wait_event.clear() + self.wait_event.wait() # Add some more functions to AudioSegments def get_sample_slice_data(self, start_sample=0, end_sample=float('inf')):