X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=sigrokdecode.h;h=5112e0969e23ebe16995aa3d90bc1794e9de03c8;hp=be3ab98e05d9929bf2b2864c29f5508557c40f57;hb=70e44845f0138666d78fc2a13acc4e37fc63c4f9;hpb=31b82285e5ca1fbd6a33eaaaa95bf83862b69eb1 diff --git a/sigrokdecode.h b/sigrokdecode.h index be3ab98..5112e09 100644 --- a/sigrokdecode.h +++ b/sigrokdecode.h @@ -23,6 +23,7 @@ #include /* First, so we avoid a _POSIX_C_SOURCE warning. */ #include +#include /* * Status/error codes returned by libsigrokdecode functions. @@ -44,20 +45,25 @@ #define SIGROKDECODE_OK 0 /* No error */ #define SIGROKDECODE_ERR -1 /* Generic/unspecified error */ #define SIGROKDECODE_ERR_MALLOC -2 /* Malloc/calloc/realloc error */ +#define SIGROKDECODE_ERR_ARGS -3 /* Function argument error */ +#define SIGROKDECODE_ERR_PYTHON -4 /* Python C API error */ /* TODO: Documentation. */ -struct sigrokdecode_decoder_info { +struct sigrokdecode_decoder { char *id; char *name; - char *description; - char *function; - char *inputformats; /* FIXME: Should be a list. */ - char *outputformats; /* FIXME: Should be a list. */ + char *desc; + char *func; + GSList *inputformats; + GSList *outputformats; + + PyObject *py_mod; + PyObject *py_func; }; int sigrokdecode_init(void); -int sigrokdecode_load_decoder_file(const char *name); -int sigrokdecode_run_decoder(const char *modulename, const char *decodername, +int sigrokdecode_load_decoder(const char *name, struct sigrokdecode_decoder **dec); +int sigrokdecode_run_decoder(struct sigrokdecode_decoder *dec, uint8_t *inbuf, uint64_t inbuflen, uint8_t **outbuf, uint64_t *outbuflen); int sigrokdecode_shutdown(void);