file_lock = Lock("file")
-class MusicFile(Machine):
+class MusicFile:
def __init__(self, filename, mapping, name=None, gain=1):
states = [
'initial',
'failed',
{
'name': 'loaded',
- 'children': ['stopped', 'playing', 'paused', 'stopping']
+ 'children': [
+ 'stopped',
+ 'playing',
+ 'paused',
+ 'stopping',
+ 'stopped'
+ ]
}
]
transitions = [
}
]
- Machine.__init__(self, states=states,
+ Machine(model=self, states=states,
transitions=transitions, initial='initial',
ignore_invalid_triggers=True)
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))
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()
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",