diff --git a/keyboard/__init__.py b/keyboard/__init__.py index 1414715..abb14fb 100644 --- a/keyboard/__init__.py +++ b/keyboard/__init__.py @@ -103,6 +103,7 @@ def __init__(self, keymap=(), pairs=(), verbose=True): self.pair_delay = 10 self._connection = "" + self.adv_timeout = None self.data = array.array("L", microcontroller.nvm[:272]) if self.data[0] != 0x424B5950: @@ -193,7 +194,6 @@ def setup(self): for pair in self.pairs: for key in pair: self.pair_keys.add(key) - self.update_connection() def start_advertising(self): self.ble.start_advertising(self.advertisement) @@ -292,6 +292,10 @@ def is_tapping_key(self, key): def change_bt(self, n): if self.ble.connected: + try: + self.ble_hid.release_all() + except Exception as e: + print(e) for c in self.ble.connections: c.disconnect() if self.ble._adapter.advertising: @@ -315,10 +319,15 @@ def change_bt(self, n): except Exception as e: print(e) self.log(self.ble._adapter.address) + self.start_advertising() def toggle_bt(self): if self.ble.connected: + try: + self.ble_hid.release_all() + except Exception as e: + print(e) for c in self.ble.connections: c.disconnect() elif self.ble._adapter.advertising: @@ -333,6 +342,10 @@ def toggle_usb(self): self.usb_status = 3 else: self.usb_status = 1 + try: + self.usb_hid.release_all() + except Exception as e: + print(e) self.update_connection() def action_code(self, position):