|
|
@ -5,6 +5,8 @@ touchpannel's drm output and its overal status. |
|
|
|
""" |
|
|
|
|
|
|
|
from pathlib import Path |
|
|
|
from x import get_edid_dev_path |
|
|
|
from common import max_match |
|
|
|
|
|
|
|
VENDOR_ID = "0EEF" |
|
|
|
DEVICE_ID = "C000" |
|
|
@ -38,3 +40,28 @@ def is_egalax_connected() -> bool: |
|
|
|
""" |
|
|
|
devpath = get_egalax_path() |
|
|
|
return bool(devpath) |
|
|
|
|
|
|
|
|
|
|
|
def get_egalax_edid_path() -> Path: |
|
|
|
"""return EDID path of touchpannel rdm |
|
|
|
|
|
|
|
This function will find intersection of the edid pathes and eGalax hid |
|
|
|
device and if this intersection and returns the maximum match. |
|
|
|
|
|
|
|
Runtime: 160ms on average -> Not efficient |
|
|
|
|
|
|
|
Returns: |
|
|
|
Path: edid path of eGalax OR None if not found or device is'nt connected |
|
|
|
""" |
|
|
|
egalax_dev = get_egalax_path() |
|
|
|
if not egalax_dev: |
|
|
|
return None |
|
|
|
max_dir = "/sys/devices" |
|
|
|
max_path = None |
|
|
|
for path in get_edid_dev_path(): |
|
|
|
base_dir = max_match(str(path), str(egalax_dev)) |
|
|
|
if len(max_dir) < len(base_dir): |
|
|
|
max_dir = base_dir |
|
|
|
max_path = path |
|
|
|
# TODO add sanity check (both edid and VENDOR:DEVICE are in that base) |
|
|
|
return max_path |
|
|
|