X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=libaltos%2Flibaltos_windows.c;fp=libaltos%2Flibaltos_windows.c;h=b92df70857fb03b1bbf61220cd91608eb307051d;hp=162c85bab8fa6aa658479017bb920395fb678e8a;hb=a8ced69631415e26329594f7f0ae98dec577d1ae;hpb=2d44477f5ab4ad82ba658eb327c25c61c8056035 diff --git a/libaltos/libaltos_windows.c b/libaltos/libaltos_windows.c index 162c85ba..b92df708 100644 --- a/libaltos/libaltos_windows.c +++ b/libaltos/libaltos_windows.c @@ -132,12 +132,12 @@ altos_ftdi_list_start(void) } static struct { - char *windows; - char *real; + unsigned int vid, pid; + char *name; } name_map[] = { - { .windows = "AltusMetrum28", .real = "EasyMega" }, - { .windows = "AltusMetrum2c", .real = "EasyMotor" }, - { 0, 0 }, + { .vid = 0xfffe, .pid = 0x0028, .name = "EasyMega" }, + { .vid = 0xfffe, .pid = 0x002c, .name = "EasyMotor" }, + { .name = NULL }, }; PUBLIC int @@ -240,15 +240,22 @@ 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); + + char *space = friendlyname; + while (*space) { + if (*space == ' ') { + *space = '\0'; break; } + space++; + } - char *space = strchr(friendlyname, ' '); - if (space) - *space = '\0'; + for (i = 0; name_map[i].name; i++) { + if (name_map[i].vid == vid && name_map[i].pid == pid) { + strcpy(friendlyname, name_map[i].name); + break; + } + } device->vendor = vid; device->product = pid;