]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.py
Rename helpers to music_sampler
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.py
index 0d9a7a98263e358c99ab578a028da41be0028475..714598a37f06a7b3b1a863560cd563fa7f19eb35 100644 (file)
@@ -1,12 +1,37 @@
+import music_sampler
+
+music_sampler.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 music_sampler.key import Key
+from music_sampler.mapping import Mapping
+
+music_sampler.register_fonts()
+
+class KeyList(RelativeLayout):
+    keylist = ListProperty([])
+    first_key = StringProperty("")
+    second_key = StringProperty("")
+    third_key = StringProperty("")
+
+    def append(self, value):
+        self.keylist.insert(0, value)
 
 
-from helpers.key import Key
-from helpers.mapping import Mapping
+    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 +47,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(
+                    music_sampler.duration_to_min_sec(music_file.sound_position),
+                    music_sampler.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 +87,5 @@ class MusicSamplerApp(App):
         return Screen()
 
 if __name__ == '__main__':
         return Screen()
 
 if __name__ == '__main__':
+    Builder.load_file(music_sampler.path() + "/music_sampler.kv")
     MusicSamplerApp().run()
     MusicSamplerApp().run()