Skip to content

Commit c9a76ab

Browse files
Revert device ID changes (#109)
1 parent 9d8c610 commit c9a76ab

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

hid_devices.py

+14-13
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class __Device(TypedDict, total=False):
3232

3333
class _Device(__Device):
3434
id: str
35-
device_class: str
35+
instance: str
3636
name: str
3737
hidraw: str
3838
events: list[str]
@@ -132,8 +132,8 @@ def __init__(self, device: _Device, filter: HIDMessageFilter,
132132
self.loop = loop
133133
self.filter = filter
134134
self.device_registry = device_registry
135-
self.device_id = device["id"]
136-
self.device_class = device["device_class"]
135+
self.device_id = device["instance"]
136+
self.device_class = device["id"]
137137
self.name = device["name"]
138138
self.hidraw = device["hidraw"]
139139
self.events = device["events"]
@@ -311,11 +311,11 @@ def _filter(d: evdev.InputDevice) -> bool:
311311
break
312312
events.extend(input_events)
313313

314-
device_class = device.split(".")[0]
315-
devs.append({"id": device, "device_class": device_class,
314+
device_id = device.split(".")[0]
315+
devs.append({"id": device_id, "instance": device,
316316
"name": name, "hidraw": hidraw, "events": events,
317317
"compatibility_mode": compatibility_mode})
318-
devs_dict[device] = device_class
318+
devs_dict[device] = device_id
319319
if compatibility_mode: devs_in_compatibility_mode.append(device)
320320
except Exception as exc:
321321
print("Error while loading HID device: ", device, ", Error: ", exc,", Skipping.")
@@ -332,17 +332,17 @@ def _filter(d: evdev.InputDevice) -> bool:
332332
del hid_device
333333

334334
for dev_dict in devs:
335-
if dev_dict["id"] not in self.capturing_devices and self.__is_configured_capturing_device(dev_dict["id"]) and dev_dict["id"] not in devs_in_compatibility_mode:
335+
if dev_dict["instance"] not in self.capturing_devices and self.__is_configured_capturing_device(dev_dict["id"]) and dev_dict["instance"] not in devs_in_compatibility_mode:
336336
#create capturing device
337-
self.capturing_devices[dev_dict["id"]] = HIDDevice(dev_dict, self.__get_configured_device_filter(dev_dict["id"]), self.loop, self)
337+
self.capturing_devices[dev_dict["instance"]] = HIDDevice(dev_dict, self.__get_configured_device_filter(dev_dict["id"]), self.loop, self)
338338

339339
recreate_sdp = False
340340
# Refresh or create config details for currently connected devices.
341341
for hid_dev in self.capturing_devices.values():
342-
dev_config = self.devices_config.get(hid_dev.device_id)
342+
dev_config = self.devices_config.get(hid_dev.device_class)
343343
if not dev_config:
344344
dev_config = {}
345-
self.devices_config[hid_dev.device_id] = dev_config
345+
self.devices_config[hid_dev.device_class] = dev_config
346346
recreate_sdp = True
347347

348348
dev_config["descriptor"] = hid_dev.descriptor
@@ -373,7 +373,7 @@ def _filter(d: evdev.InputDevice) -> bool:
373373

374374
# Update the mapped IDs based on latest information.
375375
for hid_dev in self.capturing_devices.values():
376-
config_ids = self.devices_config[hid_dev.device_id]["mapped_ids"]
376+
config_ids = self.devices_config[hid_dev.device_class]["mapped_ids"]
377377
hid_dev.mapped_ids = {k: v.to_bytes(1, "big") for k,v in config_ids.items()}
378378
self.devices = devs
379379

@@ -389,8 +389,9 @@ def set_device_filter(self, device_id: str, filter_id: str) -> None:
389389
self.devices_config[device_id][FILTER_ELEMENT] = filter_id
390390
self.__save_config()
391391
filter = self.__get_configured_device_filter(device_id)
392-
if dev := self.capturing_devices.get(device_id):
393-
dev.set_device_filter(filter)
392+
for dev in self.capturing_devices:
393+
if self.capturing_devices[dev].device_class == device_id:
394+
self.capturing_devices[dev].set_device_filter(filter)
394395

395396
def set_compatibility_device(self, device_path: str, compatibility_state: bool) -> None:
396397
if DEVICES_CONFIG_COMPATIBILITY_DEVICE_KEY not in self.devices_config:

0 commit comments

Comments
 (0)