#include <stdio.h>
#include <glib.h>
+#include "config.h" /* Needed for HAVE_LIBUSB_1_0 and others. */
#include "libsigrok.h"
#include "libsigrok-internal.h"
+/**
+ * @file
+ *
+ * Device handling in libsigrok.
+ */
+
+/**
+ * @defgroup grp_devices Devices
+ *
+ * Device handling in libsigrok.
+ *
+ * @{
+ */
+
+/** @private */
SR_PRIV struct sr_probe *sr_probe_new(int index, int type,
gboolean enabled, const char *name)
{
}
/**
- * Determine whether the specified device has the specified capability.
+ * Determine whether the specified device instance has the specified
+ * capability.
*
- * @param dev Pointer to the device instance to be checked. Must not be NULL.
+ * @param sdi Pointer to the device instance to be checked. Must not be NULL.
* If the device's 'driver' field is NULL (virtual device), this
* function will always return FALSE (virtual devices don't have
* a hardware capabilities list).
return FALSE;
}
+/** @private */
SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status,
const char *vendor, const char *model, const char *version)
{
return NULL;
}
+ sdi->driver = NULL;
sdi->index = index;
sdi->status = status;
sdi->inst_type = -1;
return sdi;
}
+/** @private */
SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi)
{
+ struct sr_probe *probe;
+ GSList *l;
+
+ for (l = sdi->probes; l; l = l->next) {
+ probe = l->data;
+ g_free(probe->name);
+ g_free(probe);
+ }
+
g_free(sdi->priv);
g_free(sdi->vendor);
g_free(sdi->model);
g_free(sdi->version);
g_free(sdi);
+
}
#ifdef HAVE_LIBUSB_1_0
+/** @private */
SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus,
uint8_t address, struct libusb_device_handle *hdl)
{
return udi;
}
+/** @private */
SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb)
{
/* Avoid compiler warnings. */
#endif
+/** @private */
SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port,
int fd)
{
return serial;
}
+/** @private */
SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial)
{
g_free(serial->port);
}
+SR_API int sr_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
+ const void *value)
+{
+ int ret;
+
+ if (!sdi || !sdi->driver || !sdi->driver->dev_config_set) {
+ sr_err("hwdriver: unable to set config option");
+ return SR_ERR;
+ }
+
+ ret = sdi->driver->dev_config_set(sdi, hwcap, value);
+
+ return ret;
+}
+
+SR_API GSList *sr_dev_inst_list(const struct sr_dev_driver *driver)
+{
+
+ if (driver && driver->dev_list)
+ return driver->dev_list();
+ else
+ return NULL;
+}
+
+SR_API int sr_dev_inst_clear(const struct sr_dev_driver *driver)
+{
+
+ if (driver && driver->dev_clear)
+ return driver->dev_clear();
+ else
+ return SR_OK;
+}
+
+/** @} */