]>
git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blob - helpers/__init__.py
1 # -*- coding: utf-8 -*-
2 from .music_file
import *
7 def parse_config(mapping
):
8 stream
= open("config.yml", "r")
9 config
= yaml
.load(stream
)
12 aliases
= config
['aliases']
15 file_lock
= Lock("file")
17 for mapped_key
in config
['keys']:
18 key
= mapping
.find_by_unicode(mapped_key
)
22 for action
in config
['keys'][mapped_key
]:
23 action_name
= list(action
)[0]
25 if action
[action_name
] is None:
26 action
[action_name
] = []
28 if 'include' in action
[action_name
]:
29 included
= action
[action_name
]['include']
30 del(action
[action_name
]['include'])
32 if isinstance(included
, str):
33 action
[action_name
].update(aliases
[included
], **action
[action_name
])
35 for included_
in included
:
36 action
[action_name
].update(aliases
[included_
], **action
[action_name
])
38 for argument
in action
[action_name
]:
39 if argument
== 'file':
40 filename
= action
[action_name
]['file']
41 if filename
not in seen_files
:
42 seen_files
[filename
] = MusicFile(filename
, file_lock
)
44 action_args
['music'] = seen_files
[filename
]
47 action_args
[argument
] = action
[action_name
][argument
]
49 key
.add_action(action_name
, **action_args
)
51 for key_property
in config
['key_properties']:
52 key
= mapping
.find_by_unicode(key_property
)
56 if 'description' in config
['key_properties'][key_property
]:
57 key
.set_description(config
['key_properties'][key_property
]['description'])
58 if 'color' in config
['key_properties'][key_property
]:
59 key
.set_color(config
['key_properties'][key_property
]['color'])