]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/uni-t-ut32x/api.c
Various #include file cosmetic fixes.
[libsigrok.git] / src / hardware / uni-t-ut32x / api.c
index aa38cf5fb7bd04bb11be8c00b39bdc1d00ce4456..a4868287d5b3d9f838657cf82424a757eee35328 100644 (file)
@@ -17,9 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "protocol.h"
-
 #include <string.h>
+#include "protocol.h"
 
 static const uint32_t devopts[] = {
        SR_CONF_THERMOMETER,
@@ -28,10 +27,8 @@ static const uint32_t devopts[] = {
        SR_CONF_DATA_SOURCE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
 };
 
-static char *channels[] = {
-       "T1",
-       "T2",
-       "T1-T2",
+static const char *channel_names[] = {
+       "T1", "T2", "T1-T2",
 };
 
 static const char *data_sources[] = {
@@ -40,20 +37,17 @@ static const char *data_sources[] = {
 };
 
 SR_PRIV struct sr_dev_driver uni_t_ut32x_driver_info;
-static struct sr_dev_driver *di = &uni_t_ut32x_driver_info;
 
-
-static int init(struct sr_context *sr_ctx)
+static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx)
 {
        return std_init(sr_ctx, di, LOG_PREFIX);
 }
 
-static GSList *scan(GSList *options)
+static GSList *scan(struct sr_dev_driver *di, GSList *options)
 {
        struct drv_context *drvc;
        struct dev_context *devc;
        struct sr_dev_inst *sdi;
-       struct sr_channel *ch;
        struct sr_config *src;
        GSList *usb_devices, *devices, *l;
        int i;
@@ -86,11 +80,9 @@ static GSList *scan(GSList *options)
                        sdi->driver = di;
                        sdi->inst_type = SR_INST_USB;
                        sdi->conn = l->data;
-                       for (i = 0; i < 3; i++) {
-                               ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE,
-                                               channels[i]);
-                               sdi->channels = g_slist_append(sdi->channels, ch);
-                       }
+                       for (i = 0; i < 3; i++)
+                               sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE,
+                                               channel_names[i]);
                        devc = g_malloc0(sizeof(struct dev_context));
                        sdi->priv = devc;
                        devc->limit_samples = 0;
@@ -105,13 +97,14 @@ static GSList *scan(GSList *options)
        return devices;
 }
 
-static GSList *dev_list(void)
+static GSList *dev_list(const struct sr_dev_driver *di)
 {
        return ((struct drv_context *)(di->priv))->instances;
 }
 
 static int dev_open(struct sr_dev_inst *sdi)
 {
+       struct sr_dev_driver *di = sdi->driver;
        struct drv_context *drvc;
        struct sr_usb_dev_inst *usb;
        int ret;
@@ -127,7 +120,7 @@ static int dev_open(struct sr_dev_inst *sdi)
                return SR_ERR;
 
 /*
- * The libusbx 1.0.9 darwin backend is broken: it can report a kernel
+ * The libusb 1.0.9 Darwin backend is broken: it can report a kernel
  * driver being active, but detaching it always returns an error.
  */
 #if !defined(__APPLE__)
@@ -156,6 +149,7 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
+       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
        if (!di->priv) {
@@ -176,7 +170,7 @@ static int dev_close(struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int cleanup(void)
+static int cleanup(const struct sr_dev_driver *di)
 {
        int ret;
        struct drv_context *drvc;
@@ -185,10 +179,8 @@ static int cleanup(void)
                /* Can get called on an unused driver, doesn't matter. */
                return SR_OK;
 
-
        ret = std_dev_clear(di, NULL);
        g_free(drvc);
-       di->priv = NULL;
 
        return ret;
 }
@@ -221,8 +213,8 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s
 static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
+       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
-       int ret;
        const char *tmp_str;
 
        (void)cg;
@@ -236,12 +228,10 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        }
 
        devc = sdi->priv;
-       ret = SR_OK;
+
        switch (key) {
        case SR_CONF_LIMIT_SAMPLES:
                devc->limit_samples = g_variant_get_uint64(data);
-               sr_dbg("Setting sample limit to %" PRIu64 ".",
-                      devc->limit_samples);
                break;
        case SR_CONF_DATA_SOURCE:
                tmp_str = g_variant_get_string(data, NULL);
@@ -253,16 +243,15 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
                        return SR_ERR;
                break;
        default:
-               ret = SR_ERR_NA;
+               return SR_ERR_NA;
        }
 
-       return ret;
+       return SR_OK;
 }
 
 static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
-
        (void)sdi;
        (void)cg;
 
@@ -284,6 +273,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *
 static int dev_acquisition_start(const struct sr_dev_inst *sdi,
                                    void *cb_data)
 {
+       struct sr_dev_driver *di = sdi->driver;
        struct drv_context *drvc;
        struct dev_context *devc;
        struct sr_usb_dev_inst *usb;