]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.py
documentation fr: new features
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.py
index 81b96c4c29d32ea45498109e28548e2d40e19602..c10b6349701210a2ce583bb88543559a6fb0dd4f 100644 (file)
@@ -1,3 +1,7 @@
+import helpers
+
+helpers.parse_args()
+
 import kivy
 kivy.require("1.9.1")
 from kivy.app import App
@@ -9,7 +13,23 @@ from kivy.core.window import Window
 from kivy.lang import Builder
 from helpers.key import Key
 from helpers.mapping import Mapping
-import helpers
+
+class KeyList(RelativeLayout):
+    keylist = ListProperty([])
+    first_key = StringProperty("")
+    second_key = StringProperty("")
+    third_key = StringProperty("")
+
+    def append(self, value):
+        self.keylist.insert(0, value)
+
+    def on_keylist(self, instance, new_key_list):
+        if len(self.keylist) > 0:
+            self.first_key  = self.keylist[0]
+        if len(self.keylist) > 1:
+            self.second_key = self.keylist[1]
+        if len(self.keylist) > 2:
+            self.third_key  = self.keylist[2]
 
 class PlayList(RelativeLayout):
     playlist = ListProperty([])
@@ -25,33 +45,35 @@ class PlayList(RelativeLayout):
         open_files = self.parent.ids['Mapping'].open_files
         self.playlist = []
         for music_file in open_files.values():
-            if not music_file.is_playing():
+            if not music_file.is_in_use():
                 continue
-            if music_file.is_paused():
-                self.playlist.append(["⏸", music_file.name, False])
+
+            text = "{}/{}".format(
+                    helpers.duration_to_min_sec(music_file.sound_position),
+                    helpers.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, True])
+                self.playlist.append(["⏵", music_file.name, text, True])
 
 
 class ActionList(RelativeLayout):
     action_title = StringProperty("")
     action_list = ListProperty([])
 
-    def update_list(self, key, action_number = 0):
+    def update_list(self, key, action_descriptions):
         self.action_title = "actions linked to key {}:".format(key.key_sym)
         self.action_list = []
 
-        action_descriptions = [action.description() for action in key.actions]
-
-        for index, description in enumerate(action_descriptions):
-            if index < int(action_number):
+        for [action, status] in action_descriptions:
+            if status == "done":
                 icon = "✓"
-            elif index + 0.5 == action_number:
+            elif status == "current":
                 icon = "✅"
             else:
                 icon = " "
-
-            self.action_list.append([icon, description])
+            self.action_list.append([icon, action])
 
 class Screen(FloatLayout):
     pass