diff --git a/actions.py b/actions.py index a2f8852..07202bf 100644 --- a/actions.py +++ b/actions.py @@ -1070,9 +1070,13 @@ class Actions(object): # first check if we have a native method to handle this for us # todo: assess whether it would still be performant/desirable to be able to override core actions with plugins? if hasattr(self, method_name): + method = getattr(self, method_name) if argument is not None: arguments = [argument] + # for the case where cc is being used as switch, we ignore note_off + if len(signature(method).parameters) == 0 and not argument: + return # if not then check if its handled by one of our parserlist dynamic route methods if method is None: diff --git a/data_centre/data.py b/data_centre/data.py index 4d273dd..6e3763c 100644 --- a/data_centre/data.py +++ b/data_centre/data.py @@ -466,8 +466,9 @@ class Data(object): if self.settings['video']['VIDEOPLAYER_BACKEND']['value'] != 'omxplayer' and self.settings['shader']['USE_SHADER']['value'] == 'enabled': display_modes.append(["SHADERS",'NAV_SHADERS']) if self.settings['shader']['USE_SHADER_BANK']['value'] == 'enabled' and ["SHADERS",'NAV_SHADERS'] in display_modes: - display_modes.append(["SHDR_BNK",'PLAY_SHADER']) - display_modes.append(["SHDR_MOD",["NAV_MOD","PLAY_SHADER"]]) ## allow override, but fall back to PLAY_SHADER controls + display_modes.append(["SHDRBNK",'PLAY_SHADER']) + if self.settings['shader']['USE_SHADER_MOD']['value'] == 'enabled' and ["SHADERS",'NAV_SHADERS'] in display_modes: + display_modes.append(["SHDR_MOD","NAV_MOD"]) ## allow override, but fall back to PLAY_SHADER controls if self.settings['detour']['TRY_DEMO']['value'] == 'enabled': display_modes.append(["FRAMES",'NAV_DETOUR']) if self.settings['system'].setdefault('USE_PLUGINS', diff --git a/display_centre/display.py b/display_centre/display.py index 1082025..978a032 100644 --- a/display_centre/display.py +++ b/display_centre/display.py @@ -394,6 +394,7 @@ class Display(object): feedback = '' if self.data.feedback_active: feedback = 'FDBCK' + self.display_text.insert(END, '{:8} {:<28} {:>5} \n'.format('CONTROL:', self.data.control_mode, feedback)) self.display_text.tag_add('TITLE', 16.0,16.0 + self.SELECTOR_WIDTH) diff --git a/json_objects/settings_default.json b/json_objects/settings_default.json index e927557..318acfc 100644 --- a/json_objects/settings_default.json +++ b/json_objects/settings_default.json @@ -228,6 +228,14 @@ ], "value": "disabled" }, + "USE_SHADER_MOD": { + "action": null, + "options": [ + "enabled", + "disabled" + ], + "value": "disabled" + }, "FIX_PARAM_OFFSET_LAYER": { "action": null, "options": [ diff --git a/user_input/midi_input.py b/user_input/midi_input.py index 231e024..4262141 100644 --- a/user_input/midi_input.py +++ b/user_input/midi_input.py @@ -132,12 +132,8 @@ class MidiInput(object): else: norm_message_value = None - try: - self.actions.call_method_name(method_name, norm_message_value) - except TypeError: - ## to support using cc-0 as button presses - if norm_message_value: - self.actions.call_method_name(method_name, None) + self.actions.call_method_name(method_name, norm_message_value) + ## only update screen if not continuous - seeing if cc can respond faster if not refreshing screen on every action if 'continuous' not in message_name: self.display.refresh_display()