]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler/app.py
Cancel all timers and stop all musics when exiting
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / app.py
index 81c47a7bcf65a206cf435e3f23b1060ee9c05cb7..08a8891d0a9f88601ffcfc1fac6689f6f92053a1 100644 (file)
@@ -1,4 +1,4 @@
-from .helpers import parse_args, register_fonts, duration_to_min_sec, path
+from .helpers import parse_args, register_fonts, path
 
 parse_args()
 
@@ -8,13 +8,17 @@ from kivy.app import App
 from kivy.uix.floatlayout import FloatLayout
 from kivy.uix.relativelayout import RelativeLayout
 from kivy.properties import ListProperty, StringProperty
-from kivy.clock import Clock
 from kivy.core.window import Window
 from kivy.lang import Builder
+
+register_fonts()
+
+
 from .key import Key
 from .mapping import Mapping
 
-register_fonts()
+from .app_blocks.actionlist import *
+from .app_blocks.playlist import *
 
 class KeyList(RelativeLayout):
     keylist = ListProperty([])
@@ -33,50 +37,6 @@ class KeyList(RelativeLayout):
         if len(self.keylist) > 2:
             self.third_key  = self.keylist[2]
 
-class PlayList(RelativeLayout):
-    playlist = ListProperty([])
-
-    def __init__(self, **kwargs):
-        super(PlayList, self).__init__(**kwargs)
-        Clock.schedule_interval(self.update_playlist, 0.5)
-
-    def update_playlist(self, dt):
-        if self.parent is None or 'Mapping' not in self.parent.ids:
-            return True
-
-        open_files = self.parent.ids['Mapping'].open_files
-        self.playlist = []
-        for music_file in open_files.values():
-            if not music_file.is_in_use():
-                continue
-
-            text = "{}/{}".format(
-                    duration_to_min_sec(music_file.sound_position),
-                    duration_to_min_sec(music_file.sound_duration))
-
-            if music_file.is_loaded_paused():
-                self.playlist.append(["⏸", music_file.name, text, False])
-            else:
-                self.playlist.append(["⏵", music_file.name, text, True])
-
-
-class ActionList(RelativeLayout):
-    action_title = StringProperty("")
-    action_list = ListProperty([])
-
-    def update_list(self, key, action_descriptions):
-        self.action_title = "actions linked to key {}:".format(key.key_sym)
-        self.action_list = []
-
-        for [action, status] in action_descriptions:
-            if status == "done":
-                icon = "✓"
-            elif status == "current":
-                icon = "✅"
-            else:
-                icon = " "
-            self.action_list.append([icon, action])
-
 class Screen(FloatLayout):
     pass