]> sigrok.org Git - libsigrok.git/blobdiff - input/chronovu_la8.c
sr: change input/output modules to use struct sr_dev_inst *
[libsigrok.git] / input / chronovu_la8.c
index 681b812df4d03e759b4e61dc0fe6476875eb5119..c4b3b403be3f3ceb94c5c5a0fcb05a6e56f0e1b4 100644 (file)
@@ -94,6 +94,7 @@ static int format_match(const char *filename)
 
 static int init(struct sr_input *in)
 {
+       struct sr_probe *probe;
        int num_probes, i;
        char name[SR_MAX_PROBENAME_LEN + 1];
        char *param;
@@ -112,12 +113,14 @@ static int init(struct sr_input *in)
        }
 
        /* Create a virtual device. */
-       in->vdev = sr_dev_new(NULL, 0);
+       in->sdi = sr_dev_inst_new(0, SR_ST_ACTIVE, NULL, NULL, NULL);
 
        for (i = 0; i < num_probes; i++) {
                snprintf(name, SR_MAX_PROBENAME_LEN, "%d", i);
                /* TODO: Check return value. */
-               sr_dev_probe_add(in->vdev, name);
+               if (!(probe = sr_probe_new(i, SR_PROBE_LOGIC, TRUE, name)))
+                       return SR_ERR;
+               in->sdi->probes = g_slist_append(in->sdi->probes, probe);
        }
 
        return SR_OK;
@@ -139,7 +142,7 @@ static int loadfile(struct sr_input *in, const char *filename)
                return SR_ERR;
        }
 
-       num_probes = g_slist_length(in->vdev->probes);
+       num_probes = g_slist_length(in->sdi->probes);
 
        /* Seek to the end of the file, and read the divcount byte. */
        divcount = 0x00; /* TODO: Don't hardcode! */
@@ -158,14 +161,14 @@ static int loadfile(struct sr_input *in, const char *filename)
        packet.payload = &header;
        header.feed_version = 1;
        gettimeofday(&header.starttime, NULL);
-       sr_session_send(in->vdev, &packet);
+       sr_session_send(in->sdi, &packet);
 
        /* Send metadata about the SR_DF_LOGIC packets to come. */
        packet.type = SR_DF_META_LOGIC;
        packet.payload = &meta;
        meta.samplerate = samplerate;
        meta.num_probes = num_probes;
-       sr_session_send(in->vdev, &packet);
+       sr_session_send(in->sdi, &packet);
 
        /* TODO: Handle trigger point. */
 
@@ -181,7 +184,7 @@ static int loadfile(struct sr_input *in, const char *filename)
                /* TODO: Handle errors, handle incomplete reads. */
                size = read(fd, buf, PACKET_SIZE);
                logic.length = size;
-               sr_session_send(in->vdev, &packet);
+               sr_session_send(in->sdi, &packet);
        }
        close(fd); /* FIXME */
 
@@ -189,7 +192,7 @@ static int loadfile(struct sr_input *in, const char *filename)
        sr_dbg("la8 in: %s: sending SR_DF_END", __func__);
        packet.type = SR_DF_END;
        packet.payload = NULL;
-       sr_session_send(in->vdev, &packet);
+       sr_session_send(in->sdi, &packet);
 
        return SR_OK;
 }