]> sigrok.org Git - libsigrok.git/blobdiff - src/std.c
std: std_gvar_tuple_array/_rational: Fix GVariantBuilder type.
[libsigrok.git] / src / std.c
index 9199611a1723118cf39de5d857679f17388d2f4c..4e069702294d0a5d58344b5e3bf0c7fe2740d83c 100644 (file)
--- a/src/std.c
+++ b/src/std.c
@@ -39,6 +39,8 @@
 
 #define LOG_PREFIX "std"
 
+SR_PRIV const uint32_t NO_OPTS[1] = {};
+
 /**
  * Standard driver init() callback API helper.
  *
@@ -303,7 +305,7 @@ SR_PRIV int std_session_send_frame_end(const struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-#ifdef HAVE_LIBSERIALPORT
+#ifdef HAVE_SERIAL_COMM
 
 /**
  * Standard serial driver dev_open() callback API helper.
@@ -452,7 +454,7 @@ SR_PRIV int std_dev_clear_with_callback(const struct sr_dev_driver *driver,
                        driver->dev_close(sdi);
 
                if (sdi->conn) {
-#ifdef HAVE_LIBSERIALPORT
+#ifdef HAVE_SERIAL_COMM
                        if (sdi->inst_type == SR_INST_SERIAL)
                                sr_serial_dev_inst_free(sdi->conn);
 #endif
@@ -581,7 +583,7 @@ SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data,
        switch (key) {
        case SR_CONF_SCAN_OPTIONS:
                /* Always return scanopts, regardless of sdi or cg. */
-               if (!scanopts)
+               if (!scanopts || scanopts == NO_OPTS)
                        return SR_ERR_ARG;
                *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
                        scanopts, scansize, sizeof(uint32_t));
@@ -589,13 +591,13 @@ SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data,
        case SR_CONF_DEVICE_OPTIONS:
                if (!sdi) {
                        /* sdi == NULL: return drvopts. */
-                       if (!drvopts)
+                       if (!drvopts || drvopts == NO_OPTS)
                                return SR_ERR_ARG;
                        *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
                                drvopts, drvsize, sizeof(uint32_t));
                } else if (sdi && !cg) {
                        /* sdi != NULL, cg == NULL: return devopts. */
-                       if (!devopts)
+                       if (!devopts || devopts == NO_OPTS)
                                return SR_ERR_ARG;
                        *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
                                devopts, devsize, sizeof(uint32_t));
@@ -622,7 +624,7 @@ SR_PRIV GVariant *std_gvar_tuple_array(const uint64_t a[][2], unsigned int n)
        GVariant *rational[2];
        GVariantBuilder gvb;
 
-       g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
+       g_variant_builder_init(&gvb, G_VARIANT_TYPE_TUPLE);
 
        for (i = 0; i < n; i++) {
                rational[0] = g_variant_new_uint64(a[i][0]);
@@ -641,7 +643,7 @@ SR_PRIV GVariant *std_gvar_tuple_rational(const struct sr_rational *r, unsigned
        GVariant *rational[2];
        GVariantBuilder gvb;
 
-       g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
+       g_variant_builder_init(&gvb, G_VARIANT_TYPE_TUPLE);
 
        for (i = 0; i < n; i++) {
                rational[0] = g_variant_new_uint64(r[i].p);
@@ -935,3 +937,20 @@ SR_PRIV int std_cg_idx(const struct sr_channel_group *cg, struct sr_channel_grou
 
        return -1;
 }
+
+SR_PRIV int std_dummy_set_params(struct sr_serial_dev_inst *serial,
+       int baudrate, int bits, int parity, int stopbits,
+       int flowcontrol, int rts, int dtr)
+{
+       (void)serial;
+       (void)baudrate;
+       (void)bits;
+       (void)parity;
+       (void)stopbits;
+       (void)flowcontrol;
+       (void)rts;
+       (void)dtr;
+
+       return SR_OK;
+}
+