devc->dslogic = TRUE;
devc->samplerates = dslogic_samplerates;
devc->num_samplerates = ARRAY_SIZE(dslogic_samplerates);
- has_firmware = match_manuf_prod(devlist[i], "DreamSourceLab", "DSLogic")
- || match_manuf_prod(devlist[i], "DreamSourceLab", "DSCope");
+ has_firmware = usb_match_manuf_prod(devlist[i], "DreamSourceLab", "DSLogic")
+ || usb_match_manuf_prod(devlist[i], "DreamSourceLab", "DSCope");
} else {
devc->dslogic = FALSE;
devc->samplerates = samplerates;
devc->num_samplerates = ARRAY_SIZE(samplerates);
- has_firmware = match_manuf_prod(devlist[i],
+ has_firmware = usb_match_manuf_prod(devlist[i],
"sigrok", "fx2lafw");
}
return SR_OK;
}
-/**
- * Check the USB configuration to determine if this is an fx2lafw device.
- *
- * @return TRUE if the device's configuration profile matches fx2lafw
- * configuration, FALSE otherwise.
- */
-SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer,
- const char *product)
-{
- struct libusb_device_descriptor des;
- struct libusb_device_handle *hdl;
- gboolean ret;
- unsigned char strdesc[64];
-
- hdl = NULL;
- ret = FALSE;
- while (!ret) {
- /* Assume the FW has not been loaded, unless proven wrong. */
- libusb_get_device_descriptor(dev, &des);
-
- if (libusb_open(dev, &hdl) != 0)
- break;
-
- if (libusb_get_string_descriptor_ascii(hdl,
- des.iManufacturer, strdesc, sizeof(strdesc)) < 0)
- break;
- if (strcmp((const char *)strdesc, manufacturer))
- break;
-
- if (libusb_get_string_descriptor_ascii(hdl,
- des.iProduct, strdesc, sizeof(strdesc)) < 0)
- break;
- if (strcmp((const char *)strdesc, product))
- break;
-
- ret = TRUE;
- }
- if (hdl)
- libusb_close(hdl);
-
- return ret;
-}
-
SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di)
{
libusb_device **devlist;
};
SR_PRIV int fx2lafw_command_start_acquisition(const struct sr_dev_inst *sdi);
-SR_PRIV gboolean match_manuf_prod(libusb_device *dev, const char *manufacturer,
- const char *product);
SR_PRIV int fx2lafw_dev_open(struct sr_dev_inst *sdi, struct sr_dev_driver *di);
SR_PRIV struct dev_context *fx2lafw_dev_new(void);
SR_PRIV void fx2lafw_abort_acquisition(struct dev_context *devc);
int timeout, sr_receive_data_callback cb, void *cb_data);
SR_PRIV int usb_source_remove(struct sr_session *session, struct sr_context *ctx);
SR_PRIV int usb_get_port_path(libusb_device *dev, char *path, int path_len);
+SR_PRIV gboolean usb_match_manuf_prod(libusb_device *dev,
+ const char *manufacturer, const char *product);
#endif
return SR_OK;
}
+
+/**
+ * Check the USB configuration to determine if this device has a given
+ * manufacturer and product string.
+ *
+ * @return TRUE if the device's configuration profile strings
+ * configuration, FALSE otherwise.
+ */
+SR_PRIV gboolean usb_match_manuf_prod(libusb_device *dev,
+ const char *manufacturer, const char *product)
+{
+ struct libusb_device_descriptor des;
+ struct libusb_device_handle *hdl;
+ gboolean ret;
+ unsigned char strdesc[64];
+
+ hdl = NULL;
+ ret = FALSE;
+ while (!ret) {
+ /* Assume the FW has not been loaded, unless proven wrong. */
+ libusb_get_device_descriptor(dev, &des);
+
+ if (libusb_open(dev, &hdl) != 0)
+ break;
+
+ if (libusb_get_string_descriptor_ascii(hdl,
+ des.iManufacturer, strdesc, sizeof(strdesc)) < 0)
+ break;
+ if (strcmp((const char *)strdesc, manufacturer))
+ break;
+
+ if (libusb_get_string_descriptor_ascii(hdl,
+ des.iProduct, strdesc, sizeof(strdesc)) < 0)
+ break;
+ if (strcmp((const char *)strdesc, product))
+ break;
+
+ ret = TRUE;
+ }
+ if (hdl)
+ libusb_close(hdl);
+
+ return ret;
+}