From 8612c5f8bb0fc9529bc489a6719654d4474db6d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 25 Jun 2016 23:20:34 +0200 Subject: Use kivy instead of pygame --- helpers/__init__.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++- helpers/action.py | 4 +-- 2 files changed, 77 insertions(+), 3 deletions(-) (limited to 'helpers') diff --git a/helpers/__init__.py b/helpers/__init__.py index 7fe9c35..eb948f2 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -5,6 +5,80 @@ from .lock import * from .font import * import yaml +def parse_config2(): + stream = open("config.yml", "r") + config = yaml.load(stream) + stream.close() + + aliases = config['aliases'] + seen_files = {} + + file_lock = Lock("file") + + channel_id = 0 + + key_properties = {} + + for key in config['key_properties']: + if key not in key_properties: + key_properties[key] = { + "actions": [], + "properties": config['key_properties'][key], + "files": [] + } + + for mapped_key in config['keys']: + if mapped_key not in key_properties: + key_properties[mapped_key] = { + "actions": [], + "properties": {}, + "files": [] + } + for action in config['keys'][mapped_key]: + action_name = list(action)[0] + action_args = {} + if action[action_name] is None: + action[action_name] = [] + + if 'include' in action[action_name]: + included = action[action_name]['include'] + del(action[action_name]['include']) + + if isinstance(included, str): + action[action_name].update(aliases[included], **action[action_name]) + else: + for included_ in included: + action[action_name].update(aliases[included_], **action[action_name]) + + for argument in action[action_name]: + if argument == 'file': + filename = action[action_name]['file'] + if filename not in seen_files: + if filename in config['music_properties']: + seen_files[filename] = MusicFile( + filename, + file_lock, + channel_id, + **config['music_properties'][filename]) + else: + seen_files[filename] = MusicFile( + filename, + file_lock, + channel_id) + channel_id = channel_id + 1 + + if filename not in key_properties[mapped_key]['files']: + key_properties[mapped_key]['files'].append(seen_files[filename]) + + action_args['music'] = seen_files[filename] + + else: + action_args[argument] = action[action_name][argument] + + key_properties[mapped_key]['actions'].append([action_name, action_args]) + + return (key_properties, channel_id + 1, seen_files) + def parse_config(mapping): stream = open("config.yml", "r") config = yaml.load(stream) @@ -46,7 +120,7 @@ def parse_config(mapping): seen_files[filename] = MusicFile( filename, file_lock, - channel_id, + channel_id, **config['music_properties'][filename]) else: seen_files[filename] = MusicFile( diff --git a/helpers/action.py b/helpers/action.py index d4c6252..aff61e7 100644 --- a/helpers/action.py +++ b/helpers/action.py @@ -31,7 +31,7 @@ class Action: def run(self): print(self.description()) getattr(self, self.action)(**self.arguments) - pygame.event.post(pygame.event.Event(pygame.USEREVENT)) + #pygame.event.post(pygame.event.Event(pygame.USEREVENT)) def description(self): return getattr(self, self.action + "_print")(**self.arguments) @@ -74,7 +74,7 @@ class Action: pygame.mixer.stop() def stop_all_actions(self, **kwargs): - self.key.mapping.stop_all_running() + self.key.parent.stop_all_running() def volume(self, music = None, value = 100, **kwargs): if music is not None: -- cgit v1.2.3