]> sigrok.org Git - libsigrok.git/commitdiff
Add sr_device_get_info
authorAnatoly Sokolov <redacted>
Sun, 29 Jan 2012 12:56:06 +0000 (16:56 +0400)
committerBert Vermeulen <redacted>
Mon, 30 Jan 2012 12:56:38 +0000 (13:56 +0100)
device.c
sigrok-proto.h

index 9b68eb0b28a6db3cb34b76524ba151ac004f57a4..30649cd4f64b0ac8165b452a599f1544c867c6a9 100644 (file)
--- a/device.c
+++ b/device.c
@@ -481,3 +481,32 @@ gboolean sr_device_has_hwcap(const struct sr_device *device, int hwcap)
 
        return FALSE;
 }
+
+/**
+ * Returns information about the given device.
+ *
+ * @param device Pointer to the device to be checked. Must not be NULL.
+ *               The device's 'plugin' field must not be NULL either.
+ * @param id     The type of information.
+ * @param data   The return value. Must not be NULL.
+ *
+ * @return SR_OK upon success, SR_ERR_ARG upon invalid arguments, or SR_ERR
+ *         upon other errors.
+ */
+int sr_device_get_info(const struct sr_device *device, int id,
+                                          const void **data)
+{
+       if ((device == NULL) || (device->plugin == NULL))
+               return SR_ERR_ARG;
+
+       if (data == NULL)
+               return SR_ERR_ARG;
+
+       *data = device->plugin->get_device_info(device->plugin_index, id);
+
+       if (*data == NULL)
+               return SR_ERR;
+
+       return SR_OK;
+}
+
index e81fad22661a52e1cdad74e6a371d108570dee07..80c48948a312ee075527ad53c969577155a49ecc 100644 (file)
@@ -54,6 +54,8 @@ int sr_device_trigger_clear(struct sr_device *device);
 int sr_device_trigger_set(struct sr_device *device, int probenum,
                          const char *trigger);
 gboolean sr_device_has_hwcap(const struct sr_device *device, int hwcap);
+int sr_device_get_info(const struct sr_device *device, int id,
+                                          const void **data);
 
 /*--- filter.c --------------------------------------------------------------*/