From 86e4889deecfc32dc1d88405e80779b2d01f5505 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Tue, 29 Dec 2020 19:42:24 -0500 Subject: [PATCH] keyboard_comm: backwards compat with via for keyboard unlock --- src/main/python/keyboard_comm.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/python/keyboard_comm.py b/src/main/python/keyboard_comm.py index 178ee5f..b951578 100644 --- a/src/main/python/keyboard_comm.py +++ b/src/main/python/keyboard_comm.py @@ -55,7 +55,6 @@ class Keyboard: self.layout_options = -1 self.keys = [] self.encoders = [] - self.sideload = False self.macro_count = 0 self.macro_memory = 0 self.macro = b"" @@ -86,7 +85,6 @@ class Keyboard: if sideload_json is not None: payload = sideload_json - self.sideload = True else: # get keyboard identification data = self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_GET_KEYBOARD_ID)) @@ -304,12 +302,20 @@ class Keyboard: return keyboard_id def get_unlock_status(self): + # VIA keyboards are always unlocked + if self.vial_protocol < 0: + return 1 + data = self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_GET_UNLOCK_STATUS)) return data[0] def get_unlock_keys(self): """ Return keys users have to hold to unlock the keyboard as a list of rowcols """ + # VIA keyboards don't have unlock keys + if self.vial_protocol < 0: + return [] + data = self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_GET_UNLOCK_STATUS)) rowcol = [] for x in range(15): @@ -320,11 +326,20 @@ class Keyboard: return rowcol def unlock_start(self): + if self.vial_protocol < 0: + return + self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_UNLOCK_START)) def unlock_poll(self): + if self.vial_protocol < 0: + return b"" + data = self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_UNLOCK_POLL)) return data def lock(self): + if self.vial_protocol < 0: + return + self.usb_send(self.dev, struct.pack("BB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_LOCK))