from kivy.uix.relativelayout import RelativeLayout
-from kivy.properties import NumericProperty
+from kivy.properties import NumericProperty, ListProperty
from kivy.core.window import Window
+from kivy.clock import Clock
import threading
import pygame
class Mapping(RelativeLayout):
expected_keys = NumericProperty(0)
+ ready_color = ListProperty([1, 165/255, 0, 1])
def __init__(self, **kwargs):
self.key_config, self.channel_number, self.open_files = self.parse_config()
self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
self._keyboard.bind(on_key_down=self._on_keyboard_down)
self.running = []
+ Clock.schedule_interval(self.not_all_keys_ready, 1)
pygame.mixer.init(frequency = 44100)
return key
return None
+ def not_all_keys_ready(self, dt):
+ for key in self.children:
+ if not type(key).__name__ == "Key":
+ continue
+ if not key.is_key_ready:
+ return True
+ self.ready_color = [0, 1, 0, 1]
+ return False
+
def stop_all_running(self):
self.running = []