X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Foutput%2Fols.c;h=2129658a346deaa1a48abcd6aab20d1c4e103619;hb=dedaeacad0ef889506b79a8bed634140da28aa72;hp=78a41bb0b4645032eb342ef1796246d165b6da6b;hpb=155b680da482cea2381becb73c51cfb838bff31e;p=libsigrok.git diff --git a/src/output/ols.c b/src/output/ols.c index 78a41bb0..2129658a 100644 --- a/src/output/ols.c +++ b/src/output/ols.c @@ -15,8 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, see . */ /* @@ -25,10 +24,11 @@ * https://github.com/jawi/ols/wiki/OLS-data-file-format */ +#include #include #include #include -#include "libsigrok.h" +#include #include "libsigrok-internal.h" #define LOG_PREFIX "output/ols" @@ -38,16 +38,14 @@ struct context { uint64_t num_samples; }; -static int init(struct sr_output *o) +static int init(struct sr_output *o, GHashTable *options) { struct context *ctx; - if (!(ctx = g_try_malloc(sizeof(struct context)))) { - sr_err("%s: ctx malloc failed", __func__); - return SR_ERR_MALLOC; - } - o->internal = ctx; + (void)options; + ctx = g_malloc0(sizeof(struct context)); + o->priv = ctx; ctx->samplerate = 0; ctx->num_samples = 0; @@ -88,7 +86,7 @@ static GString *gen_header(const struct sr_dev_inst *sdi, struct context *ctx) return s; } -static int receive(struct sr_output *o, const struct sr_datafeed_packet *packet, +static int receive(const struct sr_output *o, const struct sr_datafeed_packet *packet, GString **out) { struct context *ctx; @@ -102,7 +100,7 @@ static int receive(struct sr_output *o, const struct sr_datafeed_packet *packet, *out = NULL; if (!o || !o->sdi) return SR_ERR_ARG; - ctx = o->internal; + ctx = o->priv; switch (packet->type) { case SR_DF_META: @@ -141,16 +139,20 @@ static int cleanup(struct sr_output *o) if (!o || !o->sdi) return SR_ERR_ARG; - ctx = o->internal; + ctx = o->priv; g_free(ctx); - o->internal = NULL; + o->priv = NULL; return SR_OK; } -SR_PRIV struct sr_output_format output_ols = { +SR_PRIV struct sr_output_module output_ols = { .id = "ols", - .description = "OpenBench Logic Sniffer", + .name = "OLS", + .desc = "OpenBench Logic Sniffer data", + .exts = (const char*[]){"ols", NULL}, + .flags = 0, + .options = NULL, .init = init, .receive = receive, .cleanup = cleanup