X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2Fmusic_file.py;h=b0e218fb77856917e8361cfcde5c231ce8577215;hb=3aaddc9de62202a04ed84b3bf53e7ecab92ebf0d;hp=aef0adce00c4f55f539b67dd07479bdae7327b7e;hpb=9925ce3b588fc449a3e0f5a6506a2d29207928d3;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/music_file.py b/helpers/music_file.py index aef0adc..b0e218f 100644 --- a/helpers/music_file.py +++ b/helpers/music_file.py @@ -70,7 +70,8 @@ class MusicFile(Machine): ] Machine.__init__(self, states=states, - transitions=transitions, initial='initial') + transitions=transitions, initial='initial', + ignore_invalid_triggers=True) self.volume = 100 self.mapping = mapping @@ -258,7 +259,7 @@ class MusicFile(Machine): self.gain_effects = [] self.set_gain(db_gain) - def stop(self, fade_out=0, wait=False): + def stop(self, fade_out=0, wait=False, set_wait_id=None): if self.is_loaded_playing(): ms = int(self.sound_position * 1000) ms_fo = max(1, int(fade_out * 1000)) @@ -269,6 +270,8 @@ class MusicFile(Machine): self.current_audio_segment = new_audio_segment self.stop_playing() if wait: + if set_wait_id is not None: + self.mapping.add_wait_id(set_wait_id, self.wait_event) self.wait_end() else: self.stop_playing() @@ -288,6 +291,9 @@ class MusicFile(Machine): value + int(delta) * self.volume, self.volume) + if not (self.is_loaded_playing() or self.is_loaded_paused()): + return + if fade > 0: self.gain_effects.append(GainEffect( "fade",