X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fraw_analog.c;h=9c7135f0622aacfd9a6b2177f3ce316f53d66bad;hb=bee2b0168c087676c1b365861d8c2d4714afa9b9;hp=e0b5cedaeffc6726b892705fc44b86e0a20451d0;hpb=1393bccfcbfa47c55e29b5a453d9d976ebd58a03;p=libsigrok.git diff --git a/src/input/raw_analog.c b/src/input/raw_analog.c index e0b5ceda..9c7135f0 100644 --- a/src/input/raw_analog.c +++ b/src/input/raw_analog.c @@ -151,7 +151,7 @@ static int process_buffer(struct sr_input *in) inc = in->priv; if (!inc->started) { - std_session_send_df_header(in->sdi, LOG_PREFIX); + std_session_send_df_header(in->sdi); if (inc->samplerate) { packet.type = SR_DF_META; @@ -217,7 +217,6 @@ static int receive(struct sr_input *in, GString *buf) static int end(struct sr_input *in) { - struct sr_datafeed_packet packet; struct context *inc; int ret; @@ -227,10 +226,8 @@ static int end(struct sr_input *in) ret = SR_OK; inc = in->priv; - if (inc->started) { - packet.type = SR_DF_END; - sr_session_send(in->sdi, &packet); - } + if (inc->started) + std_session_send_df_end(in->sdi); return ret; } @@ -270,6 +267,17 @@ static void cleanup(struct sr_input *in) in->priv = NULL; } +static int reset(struct sr_input *in) +{ + struct context *inc = in->priv; + + cleanup(in); + inc->started = FALSE; + g_string_truncate(in->buf, 0); + + return SR_OK; +} + SR_PRIV struct sr_input_module input_raw_analog = { .id = "raw_analog", .name = "RAW analog", @@ -280,4 +288,5 @@ SR_PRIV struct sr_input_module input_raw_analog = { .receive = receive, .end = end, .cleanup = cleanup, + .reset = reset, };