]> 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 acf10af66981a0224aeb37b91d96f0fd5c9988a1..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;
@@ -102,10 +102,10 @@ 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 SR_ERR;
@@ -122,7 +122,7 @@ 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 SR_ERR;
@@ -155,17 +155,17 @@ static int init(struct output *o)
        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;
@@ -177,7 +177,7 @@ static int event(struct output *o, int event_type, char **data_out,
        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;
@@ -218,10 +218,10 @@ static int data(struct output *o, char *data_in, uint64_t length_in,
        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,