]> sigrok.org Git - libsigrok.git/blobdiff - output/output_gnuplot.c
Constify some more 'char *' parameters.
[libsigrok.git] / output / output_gnuplot.c
index 05da1e1aa9fc36e8666d5a7f5782db02880a5e14..09a42ad65568977c1a6e481705c26f2feda4eb72 100644 (file)
@@ -46,10 +46,10 @@ const char *gnuplot_header = "\
 const char *gnuplot_header_comment = "\
 # Comment: Acquisition with %d/%d probes at %s\n";
 
-static int init(struct output *o)
+static int init(struct sr_output *o)
 {
        struct context *ctx;
-       struct probe *probe;
+       struct sr_probe *probe;
        GSList *l;
        uint64_t samplerate;
        unsigned int i;
@@ -59,11 +59,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;
@@ -79,13 +79,13 @@ static int init(struct output *o)
 
        num_probes = g_slist_length(o->device->probes);
        comment[0] = '\0';
-       if (o->device->plugin) {
+       if (o->device->plugin && sr_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, gnuplot_header_comment,
                        ctx->num_enabled_probes, num_probes, frequency_s);
@@ -99,10 +99,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);
        b = snprintf(ctx->header, MAX_HEADER_LEN, gnuplot_header,
@@ -113,23 +113,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: can a trigger mark be in a gnuplot data file? */
                break;
-       case DF_END:
+       case SR_DF_END:
                free(o->internal);
                o->internal = NULL;
                break;
@@ -138,10 +138,10 @@ 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, const char *data_in, uint64_t length_in,
                char **data_out, uint64_t *length_out)
 {
        struct context *ctx;
@@ -157,7 +157,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) {
@@ -188,13 +188,24 @@ 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;
 }
 
-static int analog_init(struct output *o)
+struct sr_output_format output_gnuplot = {
+       "gnuplot",
+       "Gnuplot",
+       SR_DF_LOGIC,
+       init,
+       data,
+       event,
+};
+
+/* Temporarily disabled. */
+#if 0
+static int analog_init(struct sr_output *o)
 {
        struct context *ctx;
-       struct probe *probe;
+       struct sr_probe *probe;
        GSList *l;
        uint64_t samplerate;
        unsigned int i;
@@ -204,11 +215,11 @@ static int analog_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;
@@ -221,18 +232,18 @@ static int analog_init(struct output *o)
        }
        ctx->probelist[ctx->num_enabled_probes] = 0;
 //     ctx->unitsize = (ctx->num_enabled_probes + 7) / 8;
-       ctx->unitsize = sizeof(struct analog_sample) +
-                       (ctx->num_enabled_probes * sizeof(struct analog_probe));
+       ctx->unitsize = sizeof(struct sr_analog_sample) +
+                       (ctx->num_enabled_probes * sizeof(struct sr_analog_probe));
 
        num_probes = g_slist_length(o->device->probes);
        comment[0] = '\0';
-       if (o->device->plugin) {
+       if (o->device->plugin && sr_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, gnuplot_header_comment,
                        ctx->num_enabled_probes, num_probes, frequency_s);
@@ -246,10 +257,10 @@ static int analog_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);
        b = snprintf(ctx->header, MAX_HEADER_LEN, gnuplot_header,
@@ -260,13 +271,13 @@ static int analog_init(struct output *o)
        if (b < 0) {
                free(ctx->header);
                free(ctx);
-               return SIGROK_ERR;
+               return SR_ERR;
        }
 
        return 0;
 }
 
-static int analog_data(struct output *o, char *data_in, uint64_t length_in,
+static int analog_data(struct sr_output *o, char *data_in, uint64_t length_in,
                char **data_out, uint64_t *length_out)
 {
        struct context *ctx;
@@ -274,7 +285,7 @@ static int analog_data(struct output *o, char *data_in, uint64_t length_in,
 //     uint64_t sample;
        static uint64_t samplecount = 0;
        char *outbuf, *c;
-       struct analog_sample *sample;
+       struct sr_analog_sample *sample;
 
        ctx = o->internal;
 //     max_linelen = 16 + ctx->num_enabled_probes * 2;
@@ -284,7 +295,7 @@ static int analog_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) {
@@ -296,7 +307,7 @@ static int analog_data(struct output *o, char *data_in, uint64_t length_in,
 
        for (i = 0; i <= length_in - ctx->unitsize; i += ctx->unitsize) {
 //             memcpy(&sample, data_in + i, ctx->unitsize);
-               sample = (struct analog_sample *) (data_in + i);
+               sample = (struct sr_analog_sample *) (data_in + i);
 
                /* The first column is a counter (needed for gnuplot). */
                c = outbuf + strlen(outbuf);
@@ -323,23 +334,15 @@ static int analog_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_gnuplot = {
-       "gnuplot",
-       "Gnuplot",
-       DF_LOGIC,
-       init,
-       data,
-       event,
-};
-
-struct output_format output_analog_gnuplot = {
+struct sr_output_format output_analog_gnuplot = {
        "analog_gnuplot",
        "Gnuplot analog",
-       DF_ANALOG,
+       SR_DF_ANALOG,
        analog_init,
        analog_data,
        event,
 };
+#endif