From ab47d2a1269c20d70f42942c4295c056544491f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Wed, 27 Jul 2016 00:14:08 +0200 Subject: Add possibility to reload YML config file --- helpers/music_file.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'helpers/music_file.py') diff --git a/helpers/music_file.py b/helpers/music_file.py index 9976306..ba86142 100644 --- a/helpers/music_file.py +++ b/helpers/music_file.py @@ -92,6 +92,31 @@ class MusicFile: threading.Thread(name="MSMusicLoad", target=self.load).start() + def reload_properties(self, name=None, gain=1): + self.name = name or self.filename + if gain != self.initial_volume_factor: + self.initial_volume_factor = gain + self.reload_music_file() + + def reload_music_file(self): + with file_lock: + try: + debug_print("Reloading « {} »".format(self.name)) + initial_db_gain = gain(self.initial_volume_factor * 100) + self.audio_segment = pydub.AudioSegment \ + .from_file(self.filename) \ + .set_frame_rate(Config.frame_rate) \ + .set_channels(Config.channels) \ + .set_sample_width(Config.sample_width) \ + .apply_gain(initial_db_gain) + except Exception as e: + error_print("failed to reload « {} »: {}"\ + .format(self.name, e)) + self.loading_error = e + self.to_failed() + else: + debug_print("Reloaded « {} »".format(self.name)) + # Machine related events def on_enter_loading(self): with file_lock: -- cgit v1.2.3