X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=session_driver.c;h=2b6bfbbeda9a9c0ce9e297c1da5cec802163f851;hb=124c548de85346ff7ff9c6776a963b911559faac;hp=8090df9d84a427308bd3c7cc635899686c78862b;hpb=f438e0c923a114d7fd34fe0729ecd6891cb262f4;p=libsigrok.git diff --git a/session_driver.c b/session_driver.c index 8090df9d..2b6bfbbe 100644 --- a/session_driver.c +++ b/session_driver.c @@ -26,14 +26,7 @@ #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; }