]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.py
Some documentation modifications
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.py
index 0d9a7a98263e358c99ab578a028da41be0028475..c10b6349701210a2ce583bb88543559a6fb0dd4f 100644 (file)
@@ -1,13 +1,36 @@
+import helpers
+
+helpers.parse_args()
+
+import kivy
+kivy.require("1.9.1")
 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.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
 from helpers.key import Key
 from helpers.mapping import Mapping
 
 from helpers.key import Key
 from helpers.mapping import Mapping
 
+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([])
 
 class PlayList(RelativeLayout):
     playlist = ListProperty([])
 
@@ -22,33 +45,35 @@ class PlayList(RelativeLayout):
         open_files = self.parent.ids['Mapping'].open_files
         self.playlist = []
         for music_file in open_files.values():
         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
                 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:
             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([])
 
 
 
 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 = []
 
         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 = "✓"
                 icon = "✓"
-            elif index + 0.5 == action_number:
+            elif status == "current":
                 icon = "✅"
             else:
                 icon = " "
                 icon = "✅"
             else:
                 icon = " "
-
-            self.action_list.append([icon, description])
+            self.action_list.append([icon, action])
 
 class Screen(FloatLayout):
     pass
 
 class Screen(FloatLayout):
     pass
@@ -60,4 +85,5 @@ class MusicSamplerApp(App):
         return Screen()
 
 if __name__ == '__main__':
         return Screen()
 
 if __name__ == '__main__':
+    Builder.load_file(helpers.path() + "/music_sampler.kv")
     MusicSamplerApp().run()
     MusicSamplerApp().run()