]> sigrok.org Git - libsigrok.git/blobdiff - hardware/sysclk-lwla/api.c
sysclk-lwla: Do not reset drv_context.instances on scan.
[libsigrok.git] / hardware / sysclk-lwla / api.c
index 43ab370b38e2f1216c0729aeca6a84f06a29823d..8b15b6961589efc6559a17d1f002fef2280163b1 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 
+static const int32_t hwopts[] = {
+       SR_CONF_CONN,
+};
+
 static const int32_t hwcaps[] = {
        SR_CONF_LOGIC_ANALYZER,
        SR_CONF_SAMPLERATE,
@@ -87,7 +91,6 @@ static GSList *scan(GSList *options)
        int device_index;
 
        drvc = di->priv;
-       drvc->instances = NULL;
        conn = USB_VID_PID;
 
        for (node = options; node != NULL; node = node->next) {
@@ -99,7 +102,7 @@ static GSList *scan(GSList *options)
        }
        usb_devices = sr_usb_find(drvc->sr_ctx->libusb_ctx, conn);
        devices = NULL;
-       device_index = 0;
+       device_index = g_slist_length(drvc->instances);
 
        for (node = usb_devices; node != NULL; node = node->next) {
                usb = node->data;
@@ -333,14 +336,18 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
        (void)probe_group;
 
        switch (key) {
+       case SR_CONF_SCAN_OPTIONS:
+               *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
+                               hwopts, G_N_ELEMENTS(hwopts), sizeof(int32_t));
+               break;
        case SR_CONF_DEVICE_OPTIONS:
                *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
-                               hwcaps, ARRAY_SIZE(hwcaps), sizeof(int32_t));
+                               hwcaps, G_N_ELEMENTS(hwcaps), sizeof(int32_t));
                break;
        case SR_CONF_SAMPLERATE:
                g_variant_builder_init(&gvb, G_VARIANT_TYPE("a{sv}"));
                gvar = g_variant_new_fixed_array(G_VARIANT_TYPE("t"),
-                               samplerates, ARRAY_SIZE(samplerates),
+                               samplerates, G_N_ELEMENTS(samplerates),
                                sizeof(uint64_t));
                g_variant_builder_add(&gvb, "{sv}", "samplerates", gvar);
                *data = g_variant_builder_end(&gvb);