X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=music_sampler.py;h=c10b6349701210a2ce583bb88543559a6fb0dd4f;hb=b17aed6aba689f484a4932d99b30aff1bdee7176;hp=0d9a7a98263e358c99ab578a028da41be0028475;hpb=4b2d79ca27dcbb85465829595ad81cec5fc63983;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/music_sampler.py b/music_sampler.py index 0d9a7a9..c10b634 100644 --- a/music_sampler.py +++ b/music_sampler.py @@ -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.lang import Builder 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([]) @@ -22,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 @@ -60,4 +85,5 @@ class MusicSamplerApp(App): return Screen() if __name__ == '__main__': + Builder.load_file(helpers.path() + "/music_sampler.kv") MusicSamplerApp().run()