X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git;a=blobdiff_plain;f=helpers%2Fmapping.py;h=864afbef2eddf81c5fa791d64e1efea037a4afc4;hp=9c059725dcb54bd4beda9fc151298c051c531e3f;hb=4b6d1836f3cc6e063bca3f4011ce5d17f733baa6;hpb=8ba7d831a1b8da01ba9e86491d7740f674910a53 diff --git a/helpers/mapping.py b/helpers/mapping.py index 9c05972..864afbe 100644 --- a/helpers/mapping.py +++ b/helpers/mapping.py @@ -100,8 +100,10 @@ class Mapping(RelativeLayout): def on_keyboard_down(self, keyboard, keycode, text, modifiers): key = self.find_by_key_code(keycode) - if len(modifiers) == 0 and key is not None: - threading.Thread(name="MSKeyAction", target=key.run).start() + if self.allowed_modifiers(modifiers) and key is not None: + modifiers.sort() + threading.Thread(name="MSKeyAction", target=key.run, + args=['-'.join(modifiers)]).start() elif 'ctrl' in modifiers and (keycode[0] == 113 or keycode[0] == '99'): self.stop_all_running() for thread in threading.enumerate(): @@ -112,6 +114,11 @@ class Mapping(RelativeLayout): sys.exit() return True + # Helpers + def allowed_modifiers(self, modifiers): + allowed = [] + return len([a for a in modifiers if a not in allowed]) == 0 + def find_by_key_code(self, key_code): if "Key_" + str(key_code[0]) in self.ids: return self.ids["Key_" + str(key_code[0])]