decoder: consider reset() a mandatory decoder method
authorGerhard Sittig <gerhard.sittig@gmx.net>
Sun, 21 Oct 2018 15:14:59 +0000 (17:14 +0200)
committerGerhard Sittig <gerhard.sittig@gmx.net>
Sun, 21 Oct 2018 19:26:09 +0000 (21:26 +0200)
In theory support for PD reset is optional, applications are not
required to make use of it. But it's essential to receive correct
decoding results when used with the popular Pulseview mainline
application.

So let's consider the absence of the reset() method fatal. All mainline
decoders have it. Out-of-tree decoders are easy to adjust, and very
probably should support reset() as well. Thus this change is considered
beneficial, and not harmful.

decoder.c

index 260f6367787597bc8f9c5818bf362f574b9b1c81..2eb9a573136cb206bffc4c30a052b2ebb9c76f49 100644 (file)
--- a/decoder.c
+++ b/decoder.c
@@ -751,6 +751,11 @@ SRD_API int srd_decoder_load(const char *module_name)
 
        /* Check Decoder class for required methods. */
 
+       if (check_method(d->py_dec, module_name, "reset") != SRD_OK) {
+               fail_txt = "no 'reset()' method";
+               goto err_out;
+       }
+
        if (check_method(d->py_dec, module_name, "start") != SRD_OK) {
                fail_txt = "no 'start()' method";
                goto err_out;