]> sigrok.org Git - libsigrok.git/commitdiff
sr: new sr_info_get() API call, wrapper for driver info_get()
authorBert Vermeulen <redacted>
Thu, 12 Jul 2012 20:41:57 +0000 (22:41 +0200)
committerBert Vermeulen <redacted>
Fri, 3 Aug 2012 08:27:37 +0000 (10:27 +0200)
This will replace sr_dev_info_get(), the wrapper for driver dev_info_get()

hwdriver.c
proto.h

index 770823672a95203c118417a608191ab770f43185..b96e0b758ed67e89cfea7d29eacb22d0f26284d6 100644 (file)
@@ -177,6 +177,32 @@ SR_PRIV void sr_hw_cleanup_all(void)
        }
 }
 
+/**
+ * Returns information about the given driver or device instance.
+ *
+ * @param driver The sr_dev_driver struct to query.
+ * @param id The type of information, in the form of an SR_HWCAP_* option.
+ * @param data Pointer where the value. will be stored. Must not be NULL.
+ * @param sdi Pointer to the struct sr_dev_inst to be checked. Must not be NULL.
+ *
+ * @return SR_OK upon success or SR_ERR in case of error. Note SR_ERR_ARG
+ *         may be returned by the driver indicating it doesn't know that id,
+ *         but this is not to be flagged as an error by the caller; merely
+ *         as an indication that it's not applicable.
+ */
+SR_API int sr_info_get(struct sr_dev_driver *driver, int id,
+               const void **data, const struct sr_dev_inst *sdi)
+{
+       int ret;
+
+       if (driver == NULL || data == NULL)
+               return SR_ERR;
+
+       ret = driver->info_get(id, data, sdi);
+
+       return ret;
+}
+
 SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status,
                const char *vendor, const char *model, const char *version)
 {
diff --git a/proto.h b/proto.h
index a1d6d7cc64e908aef8a8dda4a8c6ab44d5a9329d..ff5cb9411028b4bd06c01bfa3419da9c77d429a4 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -77,6 +77,8 @@ SR_API GSList *sr_driver_scan(struct sr_dev_driver *driver, GSList *options);
 SR_API gboolean sr_driver_hwcap_exists(struct sr_dev_driver *driver, int hwcap);
 SR_API const struct sr_hwcap_option *sr_drvopt_get(int hwopt);
 SR_API const struct sr_hwcap_option *sr_hw_hwcap_get(int hwcap);
+SR_API int sr_info_get(struct sr_dev_driver *driver, int id,
+               const void **data, const struct sr_dev_inst *sdi);
 
 /*--- session.c -------------------------------------------------------------*/