X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=session.c;h=acfbdaab529367fa19127dcf3dea241360103d19;hp=d9b6c79209855a7f364f994113564ca2e02c3026;hb=667d4a18657b4a2b4ea77c97f4206a18dfcf86ad;hpb=efe1b57dcc6d60c42796d4f7957d2868bc160628 diff --git a/session.c b/session.c index d9b6c79..acfbdaa 100644 --- a/session.c +++ b/session.c @@ -154,9 +154,9 @@ void datafeed_in(const struct sr_dev_inst *sdi, static FILE *outfile = NULL; GSList *l; GString *out; + GVariant *gvar; uint64_t end_sample; - uint64_t output_len, input_len; - uint8_t *output_buf; + uint64_t input_len; int i; char **channels; @@ -197,13 +197,15 @@ void datafeed_in(const struct sr_dev_inst *sdi, } rcvd_samples_logic = rcvd_samples_analog = 0; + if (sr_config_get(sdi->driver, sdi, NULL, SR_CONF_SAMPLERATE, + &gvar) == SR_OK) { + samplerate = g_variant_get_uint64(gvar); + g_variant_unref(gvar); + } + #ifdef HAVE_SRD if (opt_pds) { - GVariant *gvar; - if (sr_config_get(sdi->driver, sdi, NULL, SR_CONF_SAMPLERATE, - &gvar) == SR_OK) { - samplerate = g_variant_get_uint64(gvar); - g_variant_unref(gvar); + if (samplerate) { if (srd_session_metadata_set(srd_sess, SRD_CONF_SAMPLERATE, g_variant_new_uint64(samplerate)) != SRD_OK) { g_critical("Failed to configure decode session."); @@ -249,9 +251,6 @@ void datafeed_in(const struct sr_dev_inst *sdi, case SR_DF_TRIGGER: g_debug("cli: received SR_DF_TRIGGER"); - if (o->format->event) - o->format->event(o, SR_DF_TRIGGER, &output_buf, - &output_len); triggered = 1; break; @@ -297,16 +296,6 @@ void datafeed_in(const struct sr_dev_inst *sdi, logic->data, input_len) != SRD_OK) sr_session_stop(); #endif - } else { - output_len = 0; - if (o->format->data && packet->type == o->format->df_type) - o->format->data(o, logic->data, input_len, - &output_buf, &output_len); - if (output_len) { - fwrite(output_buf, 1, output_len, outfile); - fflush(outfile); - g_free(output_buf); - } } } @@ -322,44 +311,15 @@ void datafeed_in(const struct sr_dev_inst *sdi, if (limit_samples && rcvd_samples_analog >= limit_samples) break; - if (o->format->data && packet->type == o->format->df_type) { - o->format->data(o, (const uint8_t *)analog->data, - analog->num_samples * sizeof(float), - &output_buf, &output_len); - if (output_buf) { - fwrite(output_buf, 1, output_len, outfile); - fflush(outfile); - g_free(output_buf); - } - } - rcvd_samples_analog += analog->num_samples; break; case SR_DF_FRAME_BEGIN: g_debug("cli: received SR_DF_FRAME_BEGIN"); - if (o->format->event) { - o->format->event(o, SR_DF_FRAME_BEGIN, &output_buf, - &output_len); - if (output_buf) { - fwrite(output_buf, 1, output_len, outfile); - fflush(outfile); - g_free(output_buf); - } - } break; case SR_DF_FRAME_END: g_debug("cli: received SR_DF_FRAME_END"); - if (o->format->event) { - o->format->event(o, SR_DF_FRAME_END, &output_buf, - &output_len); - if (output_buf) { - fwrite(output_buf, 1, output_len, outfile); - fflush(outfile); - g_free(output_buf); - } - } break; default: @@ -379,16 +339,6 @@ void datafeed_in(const struct sr_dev_inst *sdi, if (packet->type == SR_DF_END) { g_debug("cli: Received SR_DF_END"); - if (o->format->event) { - o->format->event(o, SR_DF_END, &output_buf, &output_len); - if (output_buf) { - if (outfile) - fwrite(output_buf, 1, output_len, outfile); - g_free(output_buf); - output_len = 0; - } - } - if (o->format->cleanup) o->format->cleanup(o); g_free(o);