From: Gareth McMullin Date: Mon, 5 Dec 2011 07:31:32 +0000 (+1300) Subject: srd: Initialise struct members by name. Minor other fixes. X-Git-Tag: libsigrokdecode-0.1.0~245 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff_plain;h=6547acfda9913a8856e2c875dc3f340570d80583;hp=09b0acbb8dd292794e7fc797352cda47c27a1355 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. --- 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);