From 6547acfda9913a8856e2c875dc3f340570d80583 Mon Sep 17 00:00:00 2001 From: Gareth McMullin Date: Mon, 5 Dec 2011 20:31:32 +1300 Subject: [PATCH] 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. --- controller.c | 42 ++++++++++-------------------------------- 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); -- 2.30.2