From 4e07392c65ec512e3309d89c7465c1406a941b66 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 31 Aug 2020 15:01:18 -0700 Subject: [PATCH] libaltos: Map generic windows device names to actual names When we signed the .ini file for our windows 'driver', IDs 28 and 2c hadn't been assigned to EasyMega and EasyMotor, so that file has generic 'AltusMetrum28' and 'AltusMetrum2c' instead. Updating that file is 'hard', so just map the names in the driver instead. Signed-off-by: Keith Packard --- libaltos/libaltos_windows.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libaltos/libaltos_windows.c b/libaltos/libaltos_windows.c index 03c2958f..0c1f6782 100644 --- a/libaltos/libaltos_windows.c +++ b/libaltos/libaltos_windows.c @@ -131,6 +131,15 @@ altos_ftdi_list_start(void) return list; } +static struct { + char *windows; + char *real; +} name_map[] = { + { .windows = "AltusMetrum28", .real = "EasyMega" }, + { .windows = "AltusMetrum2c", .real = "EasyMotor" }, + { 0, 0 }, +}; + PUBLIC int altos_list_next(struct altos_list *list, struct altos_device *device) { @@ -148,6 +157,7 @@ altos_list_next(struct altos_list *list, struct altos_device *device) DWORD friendlyname_len; char instanceid[1024]; DWORD instanceid_len; + int i; dev_info_data.cbSize = sizeof (SP_DEVINFO_DATA); while(SetupDiEnumDeviceInfo(list->dev_info, list->index, @@ -230,6 +240,12 @@ altos_list_next(struct altos_list *list, struct altos_device *device) altos_set_last_windows_error(); continue; } + for (i = 0; name_map[i].windows; i++) + if (!strcmp(name_map[i].windows, friendlyname)) { + strcpy(friendlyname, name_map[i].real); + break; + } + device->vendor = vid; device->product = pid; device->serial = serial; -- 2.30.2