Support a simple macro of a sequence of keycodes (basis for SEND_STRING)

This commit is contained in:
Josh Klar
2018-09-30 18:03:43 -07:00
parent 99573de217
commit bdd4f86472
6 changed files with 134 additions and 10 deletions

10
kmk/macros/__init__.py Normal file
View File

@@ -0,0 +1,10 @@
class KMKMacro:
def __init__(self, keydown=None, keyup=None):
self.keydown = keydown
self.keyup = keyup
def on_keydown(self):
return self.keydown() if self.keydown else None
def on_keyup(self):
return self.keyup() if self.keyup else None

14
kmk/macros/simple.py Normal file
View File

@@ -0,0 +1,14 @@
from kmk.common.event_defs import (hid_report_event, keycode_down_event,
keycode_up_event)
from kmk.macros import KMKMacro
def simple_key_sequence(seq):
def _simple_key_sequence():
for key in seq:
yield keycode_down_event(key)
yield hid_report_event()
yield keycode_up_event(key)
yield hid_report_event()
return KMKMacro(keydown=_simple_key_sequence)