return list;
}
+static struct {
+ unsigned int vid, pid;
+ char *name;
+} name_map[] = {
+ { .vid = 0xfffe, .pid = 0x0028, .name = "EasyMega" },
+ { .vid = 0xfffe, .pid = 0x002c, .name = "EasyMotor" },
+ { .name = NULL },
+};
+
PUBLIC int
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,
altos_set_last_windows_error();
continue;
}
+
+ char *space = friendlyname;
+ while (*space) {
+ if (*space == ' ') {
+ *space = '\0';
+ break;
+ }
+ space++;
+ }
+
+ 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;
device->serial = serial;