X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Finput%2Finput.c;h=f99902d317c6b4497f520ac5a19738273f413d6b;hb=d1d3d2e0c4f74625f6f8379a3128412c600ad98d;hp=7465e125cbab235c7685d1e13aab718ba944fd53;hpb=e6b15cb5e609c9263f501d3b12965206feddb42b;p=libsigrok.git diff --git a/src/input/input.c b/src/input/input.c index 7465e125..f99902d3 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -62,6 +62,7 @@ extern SR_PRIV struct sr_input_module input_chronovu_la8; extern SR_PRIV struct sr_input_module input_csv; extern SR_PRIV struct sr_input_module input_binary; +extern SR_PRIV struct sr_input_module input_trace32_ad; extern SR_PRIV struct sr_input_module input_vcd; extern SR_PRIV struct sr_input_module input_wav; extern SR_PRIV struct sr_input_module input_raw_analog; @@ -71,6 +72,7 @@ static const struct sr_input_module *input_module_list[] = { &input_binary, &input_chronovu_la8, &input_csv, + &input_trace32_ad, &input_vcd, &input_wav, &input_raw_analog, @@ -557,6 +559,27 @@ SR_API int sr_input_end(const struct sr_input *in) return in->module->end((struct sr_input *)in); } +/** + * Reset the input module's input handling structures. + * + * Causes the input module to reset its internal state so that we can re-send + * the input data from the beginning without having to re-create the entire + * input module. + * + * @since 0.5.0 + */ +SR_API int sr_input_reset(const struct sr_input *in) +{ + if (!in->module->reset) { + sr_spew("Tried to reset %s module but no reset handler found.", + in->module->id); + return SR_OK; + } + + sr_spew("Resetting %s module.", in->module->id); + return in->module->reset((struct sr_input *)in); +} + /** * Free the specified input instance and all associated resources. *