32 #include "sigrok-internal.h"
46 int num_enabled_probes;
48 if (!(ctx = g_try_malloc(
sizeof(
struct context)))) {
49 sr_err(
"ols out: %s: ctx malloc failed", __func__);
55 num_enabled_probes = 0;
56 for (l = o->
dev->
probes; l; l = l->next) {
61 ctx->
unitsize = (num_enabled_probes + 7) / 8;
69 ctx->
header = g_string_sized_new(512);
70 g_string_append_printf(ctx->
header,
";Rate: %"PRIu64
"\n", samplerate);
71 g_string_append_printf(ctx->
header,
";Channels: %d\n", num_enabled_probes);
72 g_string_append_printf(ctx->
header,
";EnabledChannels: -1\n");
73 g_string_append_printf(ctx->
header,
";Compressed: true\n");
74 g_string_append_printf(ctx->
header,
";CursorEnabled: false\n");
79 static int event(
struct sr_output *o,
int event_type, uint8_t **data_out,
87 g_string_free(ctx->
header, TRUE);
98 static int data(
struct sr_output *o,
const uint8_t *data_in,
99 uint64_t length_in, uint8_t **data_out, uint64_t *length_out)
112 out = g_string_sized_new(512);
116 memcpy(&sample, data_in + i, ctx->
unitsize);
117 g_string_append_printf(out,
"%08x@%"PRIu64
"\n",
120 *data_out = (uint8_t *)out->str;
121 *length_out = out->len;
122 g_string_free(out, FALSE);
129 .description =
"OpenBench Logic Sniffer",