diff options
author | Gareth McMullin <gareth@blacksphere.co.nz> | 2011-12-05 20:31:32 +1300 |
---|---|---|
committer | Gareth McMullin <gareth@blacksphere.co.nz> | 2011-12-05 20:31:32 +1300 |
commit | 6547acfda9913a8856e2c875dc3f340570d80583 (patch) | |
tree | 159018a533604e89c3c92b9dfa00e2fea046c928 | |
parent | 09b0acbb8dd292794e7fc797352cda47c27a1355 (diff) | |
download | libsigrokdecode-6547acfda9913a8856e2c875dc3f340570d80583.tar.gz libsigrokdecode-6547acfda9913a8856e2c875dc3f340570d80583.zip |
srd: Initialise struct members by name. Minor other fixes.
Restored some prototypes in sigrokdecode.h.
Abort sigrok-cli on error while decoding (includes KeyboardInterrupt).
Fixed passing metadata to Decoder.start() method.
-rw-r--r-- | controller.c | 42 | ||||
-rw-r--r-- | sigrokdecode.h | 5 |
2 files changed, 13 insertions, 34 deletions
diff --git a/controller.c b/controller.c index db2ed9b..31aad0e 100644 --- a/controller.c +++ b/controller.c @@ -86,34 +86,11 @@ typedef struct { static PyTypeObject sigrok_Decoder_type = { PyObject_HEAD_INIT(NULL) - 0, - "sigrok.Decoder", - sizeof(sigrok_Decoder_object), - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - "Sigrok Decoder object", - 0, - 0, - 0, - 0, - 0, - 0, - Decoder_methods, + .tp_name = "sigrok.Decoder", + .tp_basicsize = sizeof(sigrok_Decoder_object), + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + .tp_doc = "Sigrok Decoder object", + .tp_methods = Decoder_methods, }; PyMODINIT_FUNC init_sigrok_Decoder(void) @@ -293,10 +270,11 @@ int srd_session_start(const char *driver, int unitsize, uint64_t starttime, for (d = decoders; d; d = d->next) { di = d->data; if (!(py_res = PyObject_CallMethod(di->py_instance, "start", - "{s:s,s:i,s:d}", - "driver", driver, - "unitsize", unitsize, - "starttime", starttime))) { + "{s:s,s:l,s:l,s:l}", + "driver", driver, + "unitsize", (long)unitsize, + "starttime", (long)starttime, + "samplerate", (long)samplerate))) { if (PyErr_Occurred()) PyErr_Print(); /* Returns void. */ diff --git a/sigrokdecode.h b/sigrokdecode.h index c1ef9ff..5afb90c 100644 --- a/sigrokdecode.h +++ b/sigrokdecode.h @@ -109,8 +109,9 @@ int srd_instance_set_probe(struct srd_decoder_instance *di, const char *probename, int num); int srd_instance_start(struct srd_decoder_instance *di, const char *driver, int unitsize, uint64_t starttime); -int srd_run_decoder(struct srd_decoder_instance *dec, - uint8_t *inbuf, uint64_t inbuflen); +int srd_session_start(const char *driver, int unitsize, uint64_t starttime, + uint64_t samplerate); +int srd_session_feed(uint8_t *inbuf, uint64_t inbuflen); /* decoder.c */ GSList *srd_list_decoders(void); |