X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=session.c;h=bbcf5bc923172328f5b7be322f7172c3304861aa;hb=baf1d71477ea5c1dea449bc9ce72b39d02751934;hp=b80ab7d59f489ff4bcd3e87918a2e3454b2ee806;hpb=86f5e3d826fc9059e110f07221cb1a30652ceac2;p=libsigrok.git diff --git a/session.c b/session.c index b80ab7d5..bbcf5bc9 100644 --- a/session.c +++ b/session.c @@ -54,6 +54,7 @@ struct sr_session *sr_session_new(void) void sr_session_destroy(void) { + g_slist_free(session->devices); /* TODO: Loop over protocol decoders and free them. */ @@ -210,6 +211,33 @@ void sr_session_stop(void) } +static void datafeed_dump(struct sr_datafeed_packet *packet) +{ + struct sr_datafeed_logic *logic; + + switch (packet->type) { + case SR_DF_HEADER: + sr_dbg("bus: received SR_DF_HEADER"); + break; + case SR_DF_TRIGGER: + sr_dbg("bus: received SR_DF_TRIGGER at %lu ms", + packet->timeoffset / 1000000); + break; + case SR_DF_LOGIC: + logic = packet->payload; + sr_dbg("bus: received SR_DF_LOGIC at %f ms duration %f ms, %"PRIu64" bytes", + packet->timeoffset / 1000000.0, packet->duration / 1000000.0, + logic->length); + break; + case SR_DF_END: + sr_dbg("bus: received SR_DF_END"); + break; + default: + sr_dbg("bus: received unknown packet type %d", packet->type); + } + +} + void sr_session_bus(struct sr_device *device, struct sr_datafeed_packet *packet) { GSList *l; @@ -221,6 +249,7 @@ void sr_session_bus(struct sr_device *device, struct sr_datafeed_packet *packet) */ for (l = session->datafeed_callbacks; l; l = l->next) { cb = l->data; + datafeed_dump(packet); cb(device, packet); } }