]> sigrok.org Git - libsigrok.git/blobdiff - src/session_driver.c
Enable loading of session files without total probes defined
[libsigrok.git] / src / session_driver.c
index 07ee10b04aee08d974daa55b62444df373e219ab..cfa1da9d2ac0beaf24c182bf0d1614e0a30e5395 100644 (file)
@@ -74,10 +74,11 @@ static gboolean stream_session_data(struct sr_dev_inst *sdi)
 
        got_data = FALSE;
        vdev = sdi->priv;
+
        if (!vdev->capfile) {
                /* No capture file opened yet, or finished with the last
                 * chunked one. */
-               if (vdev->cur_chunk == 0) {
+               if (vdev->capturefile && (vdev->cur_chunk == 0)) {
                        /* capturefile is always the unchunked base name. */
                        if (zip_stat(vdev->archive, vdev->capturefile, 0, &zs) != -1) {
                                /* No chunks, just a single capture file. */
@@ -126,8 +127,13 @@ static gboolean stream_session_data(struct sr_dev_inst *sdi)
 
        buf = g_malloc(CHUNKSIZE);
 
-       ret = zip_fread(vdev->capfile, buf,
-                       CHUNKSIZE / vdev->unitsize * vdev->unitsize);
+       /* unitsize is not defined for purely analog session files. */
+       if (vdev->unitsize)
+               ret = zip_fread(vdev->capfile, buf,
+                               CHUNKSIZE / vdev->unitsize * vdev->unitsize);
+       else
+               ret = zip_fread(vdev->capfile, buf, CHUNKSIZE);
+
        if (ret > 0) {
                got_data = TRUE;
                if (vdev->cur_analog_channel != 0) {