+import helpers
+
+helpers.parse_args()
+
import kivy
kivy.require("1.9.1")
from kivy.app import App
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([])
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