]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/cem-dt-885x/api.c
rigol-ds: Add DS1000Z series support.
[libsigrok.git] / src / hardware / cem-dt-885x / api.c
index 252946e330fcf3b075673f5c80c8819feee94008..5c259542b8babca76036fd096284490780d42290 100644 (file)
@@ -28,13 +28,13 @@ static const uint32_t scanopts[] = {
        SR_CONF_CONN,
 };
 
-static const uint32_t devopts[] = {
+static const uint32_t drvopts[] = {
        SR_CONF_SOUNDLEVELMETER,
-       SR_CONF_CONTINUOUS,
-       SR_CONF_LIMIT_SAMPLES | SR_CONF_GET | SR_CONF_SET,
 };
 
-static const uint32_t devopts_global[] = {
+static const uint32_t devopts[] = {
+       SR_CONF_CONTINUOUS | SR_CONF_SET,
+       SR_CONF_LIMIT_SAMPLES | SR_CONF_GET | SR_CONF_SET,
        SR_CONF_SPL_WEIGHT_FREQ | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
        SR_CONF_SPL_WEIGHT_TIME | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
        SR_CONF_SPL_MEASUREMENT_RANGE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
@@ -82,7 +82,6 @@ static GSList *scan(GSList *options)
        struct sr_config *src;
        struct sr_serial_dev_inst *serial;
        struct sr_dev_inst *sdi;
-       struct sr_channel *ch;
        GSList *l, *devices;
        gint64 start;
        const char *conn;
@@ -97,8 +96,7 @@ static GSList *scan(GSList *options)
        if (!conn)
                return NULL;
 
-       if (!(serial = sr_serial_dev_inst_new(conn, SERIALCOMM)))
-               return NULL;
+       serial = sr_serial_dev_inst_new(conn, SERIALCOMM);
 
        if (serial_open(serial, SERIAL_RDONLY) != SR_OK)
                return NULL;
@@ -109,30 +107,21 @@ static GSList *scan(GSList *options)
        while (g_get_monotonic_time() - start < MAX_SCAN_TIME) {
                if (serial_read_nonblocking(serial, &c, 1) == 1 && c == 0xa5) {
                        /* Found one. */
-                       sdi = sr_dev_inst_new();
+                       sdi = g_malloc0(sizeof(struct sr_dev_inst));
                        sdi->status = SR_ST_INACTIVE;
                        sdi->vendor = g_strdup("CEM");
                        sdi->model = g_strdup("DT-885x");
-
-                       if (!(devc = g_try_malloc0(sizeof(struct dev_context)))) {
-                               sr_dbg("Device context malloc failed.");
-                               return NULL;
-                       }
+                       devc = g_malloc0(sizeof(struct dev_context));
                        devc->cur_mqflags = 0;
                        devc->recording = -1;
                        devc->cur_meas_range = 0;
                        devc->cur_data_source = DATA_SOURCE_LIVE;
                        devc->enable_data_source_memory = FALSE;
-
-                       if (!(sdi->conn = sr_serial_dev_inst_new(conn, SERIALCOMM)))
-                               return NULL;
-
+                       sdi->conn = sr_serial_dev_inst_new(conn, SERIALCOMM);
                        sdi->inst_type = SR_INST_SERIAL;
                        sdi->priv = devc;
                        sdi->driver = di;
-                       if (!(ch = sr_channel_new(0, SR_CHANNEL_ANALOG, TRUE, "SPL")))
-                               return NULL;
-                       sdi->channels = g_slist_append(sdi->channels, ch);
+                       sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "SPL");
                        drvc->instances = g_slist_append(drvc->instances, sdi);
                        devices = g_slist_append(devices, sdi);
                        break;
@@ -350,7 +339,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *
                        break;
                case SR_CONF_DEVICE_OPTIONS:
                        *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
-                                       devopts, ARRAY_SIZE(devopts), sizeof(uint32_t));
+                                       drvopts, ARRAY_SIZE(drvopts), sizeof(uint32_t));
                        break;
                default:
                        return SR_ERR_NA;
@@ -359,7 +348,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *
                switch (key) {
                case SR_CONF_DEVICE_OPTIONS:
                        *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
-                                       devopts_global, ARRAY_SIZE(devopts_global), sizeof(uint32_t));
+                                       devopts, ARRAY_SIZE(devopts), sizeof(uint32_t));
                case SR_CONF_SPL_WEIGHT_FREQ:
                        *data = g_variant_new_strv(weight_freq, ARRAY_SIZE(weight_freq));
                        break;