file_lock = Lock("file")
+ channel_id = 0
+
for mapped_key in config['keys']:
key = mapping.find_by_unicode(mapped_key)
if key is None:
if argument == 'file':
filename = action[action_name]['file']
if filename not in seen_files:
- seen_files[filename] = MusicFile(filename, file_lock)
+ if 'name' in action[action_name]:
+ seen_files[filename] = MusicFile(filename, file_lock, channel_id, name = action[action_name]['name'])
+ else:
+ seen_files[filename] = MusicFile(filename, file_lock, channel_id)
+ channel_id = channel_id + 1
action_args['music'] = seen_files[filename]
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)