Add callback to lock status

This commit is contained in:
Hendrix
2022-08-06 17:27:14 -04:00
committed by xs5871
parent ad6f4e5f05
commit 0b23da551a
2 changed files with 38 additions and 4 deletions

View File

@@ -14,12 +14,14 @@ class LockCode:
class LockStatus(Extension):
def __init__(self):
self.report = 0x00
def __init__(self, fn=None):
self.report = None
self.hid = None
self.fn = fn
for device in usb_hid.devices:
if device.usage == HIDUsage.KEYBOARD:
self.hid = device
self.hid.get_last_received_report()
def __repr__(self):
return f'LockStatus(report={self.report})'
@@ -41,6 +43,8 @@ class LockStatus(Extension):
report = self.hid.get_last_received_report()
if report[0] != self.report:
self.report = report[0]
if self.fn:
self.fn(self)
return
def on_powersave_enable(self, sandbox):
@@ -62,4 +66,4 @@ class LockStatus(Extension):
return bool(self.report & LockCode.COMPOSE)
def get_kana(self):
return bool(self.report & LockCode.KANA)
return bool(self.report & LockCode.KANA)