X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2F__init__.py;h=40a96afc6ff09d58a702b76e3f7dd412fe975e26;hb=4b2d79ca27dcbb85465829595ad81cec5fc63983;hp=eb948f25ae5aa86b01f8b666624bcf39b4787d1c;hpb=8612c5f8bb0fc9529bc489a6719654d4474db6d5;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/__init__.py b/helpers/__init__.py index eb948f2..40a96af 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -1,150 +1 @@ # -*- coding: utf-8 -*- -from .music_file import * -from .mapping import * -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) - stream.close() - - aliases = config['aliases'] - seen_files = {} - - file_lock = Lock("file") - - channel_id = 0 - - for mapped_key in config['keys']: - key = mapping.find_by_unicode(mapped_key) - if key is None: - continue - - 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 - - action_args['music'] = seen_files[filename] - - else: - action_args[argument] = action[action_name][argument] - - key.add_action(action_name, **action_args) - - for key_property in config['key_properties']: - key = mapping.find_by_unicode(key_property) - if key is None: - continue - - if 'description' in config['key_properties'][key_property]: - key.set_description(config['key_properties'][key_property]['description']) - if 'color' in config['key_properties'][key_property]: - key.set_color(config['key_properties'][key_property]['color']) - - # Return the number of channels reserved - return (channel_id + 1, seen_files)