X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Fraw_analog.c;h=68ac1c956fdefa6b4c200826507ed47f9b658b98;hb=0aaaee2dd325c81b31ac2c285f4bbe0990b9cc8a;hp=f05ca5b8c50116a85e48f081263e7640634593f3;hpb=3be42bc22f8b36599a448273c12a76d3e0f7a940;p=libsigrok.git diff --git a/src/input/raw_analog.c b/src/input/raw_analog.c index f05ca5b8..68ac1c95 100644 --- a/src/input/raw_analog.c +++ b/src/input/raw_analog.c @@ -31,9 +31,9 @@ #define LOG_PREFIX "input/raw_analog" /* How many bytes at a time to process and send to the session bus. */ -#define CHUNK_SIZE 4096 -#define DEFAULT_NUM_CHANNELS 1 -#define DEFAULT_SAMPLERATE 0 +#define CHUNK_SIZE 4096 +#define DEFAULT_NUM_CHANNELS 1 +#define DEFAULT_SAMPLERATE 0 struct context { gboolean started; @@ -105,7 +105,7 @@ static int init(struct sr_input *in, GHashTable *options) { struct context *inc; int num_channels; - char channelname[8]; + char channelname[16]; const char *format; int fmt_index; @@ -130,7 +130,7 @@ static int init(struct sr_input *in, GHashTable *options) in->priv = inc = g_malloc0(sizeof(struct context)); for (int i = 0; i < num_channels; i++) { - snprintf(channelname, 8, "CH%d", i + 1); + snprintf(channelname, sizeof(channelname) - 1, "CH%d", i + 1); sr_channel_new(in->sdi, i, SR_CHANNEL_ANALOG, TRUE, channelname); } @@ -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; @@ -227,7 +227,7 @@ static int end(struct sr_input *in) inc = in->priv; if (inc->started) - std_session_send_df_end(in->sdi, LOG_PREFIX); + std_session_send_df_end(in->sdi); return ret; } @@ -267,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; + + inc->started = FALSE; + cleanup(in); + g_string_truncate(in->buf, 0); + + return SR_OK; +} + SR_PRIV struct sr_input_module input_raw_analog = { .id = "raw_analog", .name = "RAW analog", @@ -277,4 +288,5 @@ SR_PRIV struct sr_input_module input_raw_analog = { .receive = receive, .end = end, .cleanup = cleanup, + .reset = reset, };