]> sigrok.org Git - libsigrok.git/blobdiff - input/chronovu_la8.c
sigma: Use heap for datafeed packet and header.
[libsigrok.git] / input / chronovu_la8.c
index 875b52bc3da6917e2d6dbc28a32bba733485e6e9..23a8dc09c890e0bdb3d30cc164931c07a7bc14ef 100644 (file)
@@ -36,6 +36,7 @@
  * Max. value for divcount: 0xfe (2550ns sample period, 392.15kHz samplerate).
  *
  * @param divcount The divcount value as needed by the hardware.
+ *
  * @return The samplerate in Hz, or 0xffffffffffffffff upon errors.
  */
 static uint64_t divcount_to_samplerate(uint8_t divcount)
@@ -91,12 +92,12 @@ static int init(struct sr_input *in)
        }
 
        /* Create a virtual device. */
-       in->vdevice = sr_dev_new(NULL, 0);
+       in->vdev = sr_dev_new(NULL, 0);
 
        for (i = 0; i < num_probes; i++) {
                snprintf(name, SR_MAX_PROBENAME_LEN, "%d", i);
                /* TODO: Check return value. */
-               sr_dev_probe_add(in->vdevice, name);
+               sr_dev_probe_add(in->vdev, name);
        }
 
        return SR_OK;
@@ -117,7 +118,7 @@ static int loadfile(struct sr_input *in, const char *filename)
                return SR_ERR;
        }
 
-       num_probes = g_slist_length(in->vdevice->probes);
+       num_probes = g_slist_length(in->vdev->probes);
 
        /* Seek to the end of the file, and read the divcount byte. */
        divcount = 0x00; /* TODO: Don't hardcode! */
@@ -138,7 +139,7 @@ static int loadfile(struct sr_input *in, const char *filename)
        gettimeofday(&header.starttime, NULL);
        header.num_logic_probes = num_probes;
        header.samplerate = samplerate;
-       sr_session_bus(in->vdevice, &packet);
+       sr_session_send(in->vdev, &packet);
 
        /* TODO: Handle trigger point. */
 
@@ -153,8 +154,8 @@ static int loadfile(struct sr_input *in, const char *filename)
        for (i = 0; i < NUM_PACKETS; i++) {
                /* TODO: Handle errors, handle incomplete reads. */
                size = read(fd, buf, PACKET_SIZE);
-               logic.length = PACKET_SIZE;
-               sr_session_bus(in->vdevice, &packet);
+               logic.length = size;
+               sr_session_send(in->vdev, &packet);
        }
        close(fd); /* FIXME */
 
@@ -162,7 +163,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_bus(in->vdevice, &packet);
+       sr_session_send(in->vdev, &packet);
 
        return SR_OK;
 }