#include <string.h>
#include <glib.h>
#include <sigrok.h>
+#include <sigrok-internal.h>
/* demo.c */
extern GIOChannel channels[2];
void sr_session_destroy(void)
{
+
g_slist_free(session->devices);
/* TODO: Loop over protocol decoders and free them. */
{
int ret;
- if (device->plugin && device->plugin->open) {
- ret = device->plugin->open(device->plugin_index);
+ if (device->plugin && device->plugin->opendev) {
+ ret = device->plugin->opendev(device->plugin_index);
if (ret != SR_OK)
return ret;
}
return SR_OK;
}
+#if 0
void sr_session_pa_clear(void)
{
/*
session->analyzers = NULL;
}
-void sr_session_pa_add(struct analyzer *an)
+void sr_session_pa_add(struct sr_analyzer *an)
{
session->analyzers = g_slist_append(session->analyzers, an);
}
+#endif
void sr_session_datafeed_callback_clear(void)
{
GSList *l;
int ret;
- g_message("session: starting");
+ sr_info("session: starting");
for (l = session->devices; l; l = l->next) {
device = l->data;
if ((ret = device->plugin->start_acquisition(
void sr_session_run(void)
{
- g_message("session: running");
+ sr_info("session: running");
session->running = TRUE;
/* do we have real sources? */
void sr_session_halt(void)
{
- g_message("session: halting");
+ sr_info("session: halting");
session->running = FALSE;
}
struct sr_device *device;
GSList *l;
- g_message("session: stopping");
+ sr_info("session: stopping");
session->running = FALSE;
for (l = session->devices; l; l = l->next) {
device = l->data;
}
+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;
*/
for (l = session->datafeed_callbacks; l; l = l->next) {
cb = l->data;
+ datafeed_dump(packet);
cb(device, packet);
}
}