]> sigrok.org Git - libsigrok.git/blobdiff - output/output_ols.c
don't just assume a device has a samplerate setting
[libsigrok.git] / output / output_ols.c
index b268866f989493f1c36357209a2d8bf837f225b4..55230bf3f29934f76ff8e93954d7045d5c290d7d 100644 (file)
@@ -66,7 +66,7 @@ struct context {
 const char *ols_header_comment = "\
 # Comment: Acquisition with %d/%d probes at %s";
 
-static int init(struct output *o)
+static int init(struct sr_output *o)
 {
        struct context *ctx;
        struct probe *probe;
@@ -79,11 +79,11 @@ static int init(struct output *o)
        time_t t;
 
        if (!(ctx = calloc(1, sizeof(struct context))))
-               return SIGROK_ERR_MALLOC;
+               return SR_ERR_MALLOC;
 
        if (!(ctx->header = calloc(1, MAX_HEADER_LEN + 1))) {
                free(ctx);
-               return SIGROK_ERR_MALLOC;
+               return SR_ERR_MALLOC;
        }
 
        o->internal = ctx;
@@ -102,13 +102,13 @@ static int init(struct output *o)
 
        /* TODO: Currently not available in the demo module. */
 
-       if (o->device->plugin) {
+       if (o->device->plugin && device_has_hwcap(o->device, SR_HWCAP_SAMPLERATE)) {
                samplerate = *((uint64_t *) o->device->plugin->get_device_info(
-                               o->device->plugin_index, DI_CUR_SAMPLERATE));
-               if (!(frequency_s = sigrok_samplerate_string(samplerate))) {
+                               o->device->plugin_index, SR_DI_CUR_SAMPLERATE));
+               if (!(frequency_s = sr_samplerate_string(samplerate))) {
                        free(ctx->header);
                        free(ctx);
-                       return SIGROK_ERR;
+                       return SR_ERR;
                }
                snprintf(comment, 127, ols_header_comment,
                         ctx->num_enabled_probes, num_probes, frequency_s);
@@ -122,10 +122,10 @@ static int init(struct output *o)
                sprintf(c, "# %d\t\t%s\n", i + 1, ctx->probelist[i]);
        }
 
-       if (!(frequency_s = sigrok_period_string(samplerate))) {
+       if (!(frequency_s = sr_period_string(samplerate))) {
                free(ctx->header);
                free(ctx);
-               return SIGROK_ERR;
+               return SR_ERR;
        }
 
        t = time(NULL);
@@ -149,23 +149,23 @@ static int init(struct output *o)
        if (b < 0) {
                free(ctx->header);
                free(ctx);
-               return SIGROK_ERR;
+               return SR_ERR;
        }
 
        return 0;
 }
 
-static int event(struct output *o, int event_type, char **data_out,
+static int event(struct sr_output *o, int event_type, char **data_out,
                 uint64_t *length_out)
 {
        struct context *ctx;
 
        ctx = o->internal;
        switch (event_type) {
-       case DF_TRIGGER:
+       case SR_DF_TRIGGER:
                /* TODO */
                break;
-       case DF_END:
+       case SR_DF_END:
                free(o->internal);
                o->internal = NULL;
                break;
@@ -174,14 +174,14 @@ static int event(struct output *o, int event_type, char **data_out,
        *data_out = NULL;
        *length_out = 0;
 
-       return SIGROK_OK;
+       return SR_OK;
 }
 
-static int data(struct output *o, char *data_in, uint64_t length_in,
+static int data(struct sr_output *o, char *data_in, uint64_t length_in,
                char **data_out, uint64_t *length_out)
 {
        struct context *ctx;
-       unsigned int max_linelen, outsize, p, curbit, i;
+       unsigned int max_linelen, outsize, i;
        uint64_t sample;
        static uint64_t samplecount = 0;
        char *outbuf, *c;
@@ -193,7 +193,7 @@ static int data(struct output *o, char *data_in, uint64_t length_in,
                outsize += strlen(ctx->header);
 
        if (!(outbuf = calloc(1, outsize)))
-               return SIGROK_ERR_MALLOC;
+               return SR_ERR_MALLOC;
 
        outbuf[0] = '\0';
        if (ctx->header) {
@@ -215,13 +215,13 @@ static int data(struct output *o, char *data_in, uint64_t length_in,
        *data_out = outbuf;
        *length_out = strlen(outbuf);
 
-       return SIGROK_OK;
+       return SR_OK;
 }
 
-struct output_format output_ols = {
+struct sr_output_format output_ols = {
        "ols",
        "OpenBench Logic Sniffer",
-       DF_LOGIC,
+       SR_DF_LOGIC,
        init,
        data,
        event,