]> sigrok.org Git - libsigrok.git/blobdiff - input/input_binary.c
use new datafeed packet format
[libsigrok.git] / input / input_binary.c
index be67f2d2d33767e8f9b59f5ee7356d38197193b0..d9a53cb66c3f63a7876c1e02c68d846623a69f1f 100644 (file)
@@ -60,7 +60,8 @@ static int loadfile(struct sr_input *in, const char *filename)
 {
        struct sr_datafeed_header header;
        struct sr_datafeed_packet packet;
-       char buffer[CHUNKSIZE];
+       struct sr_datafeed_logic logic;
+       unsigned char buffer[CHUNKSIZE];
        int fd, size, num_probes;
 
        if ((fd = open(filename, O_RDONLY)) == -1)
@@ -72,36 +73,34 @@ static int loadfile(struct sr_input *in, const char *filename)
        header.feed_version = 1;
        header.num_logic_probes = num_probes;
        header.num_analog_probes = 0;
-       header.protocol_id = SR_PROTO_RAW;
        header.samplerate = 0;
        gettimeofday(&header.starttime, NULL);
        packet.type = SR_DF_HEADER;
-       packet.length = sizeof(struct sr_datafeed_header);
        packet.payload = &header;
        sr_session_bus(in->vdevice, &packet);
 
        /* chop up the input file into chunks and feed it into the session bus */
        packet.type = SR_DF_LOGIC;
-       packet.unitsize = (num_probes + 7) / 8;
-       packet.payload = buffer;
+       packet.payload = &logic;
+       logic.unitsize = (num_probes + 7) / 8;
+       logic.data = buffer;
        while ((size = read(fd, buffer, CHUNKSIZE)) > 0) {
-               packet.length = size;
+               logic.length = size;
                sr_session_bus(in->vdevice, &packet);
        }
        close(fd);
 
        /* end of stream */
        packet.type = SR_DF_END;
-       packet.length = 0;
        sr_session_bus(in->vdevice, &packet);
 
        return SR_OK;
 }
 
 struct sr_input_format input_binary = {
-       "binary",
-       "Raw binary",
-       format_match,
-       init,
-       loadfile,
+       .id = "binary",
+       .description = "Raw binary",
+       .format_match = format_match,
+       .init = init,
+       .loadfile = loadfile,
 };