]> sigrok.org Git - libsigrok.git/blobdiff - session_driver.c
configure.ac: Disable atten-pps3xxx driver if libserialport is not found.
[libsigrok.git] / session_driver.c
index 8090df9d84a427308bd3c7cc635899686c78862b..2b6bfbbeda9a9c0ce9e297c1da5cec802163f851 100644 (file)
 #include "libsigrok.h"
 #include "libsigrok-internal.h"
 
-/* Message logging helpers with subsystem-specific prefix string. */
-#define LOG_PREFIX "virtual-session: "
-#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args)
-#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args)
-#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args)
-#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args)
-#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
-#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
+#define LOG_PREFIX "virtual-session"
 
 /* size of payloads sent across the session bus */
 /** @cond PRIVATE */
@@ -81,11 +74,6 @@ static int receive_data(int fd, int revents, void *cb_data)
                        /* Already done with this instance. */
                        continue;
 
-               if (!(buf = g_try_malloc(CHUNKSIZE))) {
-                       sr_err("%s: buf malloc failed", __func__);
-                       return FALSE;
-               }
-
                if (!vdev->capfile) {
                        /* No capture file opened yet, or finished with the last
                         * chunked one. */
@@ -133,6 +121,11 @@ static int receive_data(int fd, int revents, void *cb_data)
                        }
                }
 
+               if (!(buf = g_try_malloc(CHUNKSIZE))) {
+                       sr_err("%s: buf malloc failed", __func__);
+                       return FALSE;
+               }
+
                ret = zip_fread(vdev->capfile, buf, CHUNKSIZE);
                if (ret > 0) {
                        got_data = TRUE;
@@ -155,9 +148,11 @@ static int receive_data(int fd, int revents, void *cb_data)
                        } else {
                                /* There might be more chunks, so don't fall through
                                 * to the SR_DF_END here. */
+                               g_free(buf);
                                return TRUE;
                        }
                }
+               g_free(buf);
        }
 
        if (!got_data) {
@@ -202,10 +197,13 @@ static int dev_open(struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi)
+static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
+               const struct sr_probe_group *probe_group)
 {
        struct session_vdev *vdev;
 
+       (void)probe_group;
+
        switch (id) {
        case SR_CONF_SAMPLERATE:
                if (sdi) {
@@ -221,10 +219,13 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
+static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi,
+               const struct sr_probe_group *probe_group)
 {
        struct session_vdev *vdev;
 
+       (void)probe_group;
+
        vdev = sdi->priv;
 
        switch (id) {
@@ -243,7 +244,7 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
        case SR_CONF_CAPTURE_UNITSIZE:
                vdev->unitsize = g_variant_get_uint64(data);
                break;
-       case SR_CONF_CAPTURE_NUM_PROBES:
+       case SR_CONF_NUM_LOGIC_PROBES:
                vdev->num_probes = g_variant_get_uint64(data);
                break;
        default:
@@ -253,10 +254,11 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
-static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
+static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
+               const struct sr_probe_group *probe_group)
 {
-
        (void)sdi;
+       (void)probe_group;
 
        switch (key) {
        case SR_CONF_DEVICE_OPTIONS:
@@ -282,7 +284,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
 
        if (!(vdev->archive = zip_open(vdev->sessionfile, 0, &ret))) {
                sr_err("Failed to open session file '%s': "
-                      "zip error %d\n", vdev->sessionfile, ret);
+                      "zip error %d.", vdev->sessionfile, ret);
                return SR_ERR;
        }