X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=device.c;h=740ad5077cebcf350e99757e575dc0901c030a13;hb=015f1508ad57e1ace60965952389a0b83c271178;hp=21ddebca47128f9855e76859498864626f921332;hpb=a56f1480949e84e94dad2afcdf9f758988a4aff9;p=libsigrok.git diff --git a/device.c b/device.c index 21ddebca..740ad507 100644 --- a/device.c +++ b/device.c @@ -19,9 +19,25 @@ #include #include +#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) { @@ -151,9 +167,10 @@ SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, int probenum, } /** - * 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). @@ -184,6 +201,7 @@ SR_API gboolean sr_dev_has_hwcap(const struct sr_dev_inst *sdi, int hwcap) 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) { @@ -207,6 +225,7 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, return sdi; } +/** @private */ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi) { struct sr_probe *probe; @@ -228,6 +247,7 @@ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *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) { @@ -245,6 +265,7 @@ SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus, return udi; } +/** @private */ SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb) { /* Avoid compiler warnings. */ @@ -255,6 +276,7 @@ SR_PRIV void sr_usb_dev_inst_free(struct sr_usb_dev_inst *usb) #endif +/** @private */ SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port, int fd) { @@ -271,6 +293,7 @@ SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(const char *port, return serial; } +/** @private */ SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial) { g_free(serial->port); @@ -290,3 +313,23 @@ SR_API int sr_dev_config_set(const struct sr_dev_inst *sdi, int hwcap, 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; +} + +/** @} */