]> sigrok.org Git - libsigrokdecode.git/blobdiff - type_decoder.c
Rename inter-PD output type to SRD_OUTPUT_PYTHON
[libsigrokdecode.git] / type_decoder.c
index 9cf77708dee62982fe6117db67f15afaab1767aa..f689dd0f396045dfa37e484d3f7e1667df976a49 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrokdecode project.
  *
  * Copyright (C) 2012 Bert Vermeulen <bert@biot.com>
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "sigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
-#include "sigrokdecode-internal.h"
+#include "libsigrokdecode.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
+#include "libsigrokdecode-internal.h"
 #include "config.h"
 #include <inttypes.h>
 
 /* This is only used for nicer srd_dbg() output. */
 static const char *OUTPUT_TYPES[] = {
        "OUTPUT_ANN",
-       "OUTPUT_PROTO",
+       "OUTPUT_PYTHON",
        "OUTPUT_BINARY",
 };
 
@@ -95,7 +95,7 @@ static PyObject *Decoder_put(PyObject *self, PyObject *args)
        struct srd_proto_data *pdata;
        uint64_t start_sample, end_sample;
        int output_id;
-       void (*cb)();
+       struct srd_pd_callback *cb;
 
        if (!(di = srd_inst_find_by_obj(NULL, self))) {
                /* Shouldn't happen. */
@@ -135,17 +135,17 @@ static PyObject *Decoder_put(PyObject *self, PyObject *args)
        switch (pdo->output_type) {
        case SRD_OUTPUT_ANN:
                /* Annotations are only fed to callbacks. */
-               if ((cb = srd_pd_output_callback_find(pdo->output_type))) {
+               if ((cb = srd_pd_output_callback_find(di->sess, pdo->output_type))) {
                        /* Annotations need converting from PyObject. */
                        if (convert_pyobj(di, data, &pdata->ann_format,
                                          (char ***)&pdata->data) != SRD_OK) {
                                /* An error was already logged. */
                                break;
                        }
-                       cb(pdata);
+                       cb->cb(pdata, cb->cb_data);
                }
                break;
-       case SRD_OUTPUT_PROTO:
+       case SRD_OUTPUT_PYTHON:
                for (l = di->next_di; l; l = l->next) {
                        next_di = l->data;
                        /* TODO: Is this needed? */
@@ -209,6 +209,7 @@ static PyMethodDef Decoder_methods[] = {
        {NULL, NULL, 0, NULL}
 };
 
+/** @cond PRIVATE */
 SRD_PRIV PyTypeObject srd_Decoder_type = {
        PyVarObject_HEAD_INIT(NULL, 0)
        .tp_name = "sigrokdecode.Decoder",
@@ -217,3 +218,4 @@ SRD_PRIV PyTypeObject srd_Decoder_type = {
        .tp_doc = "sigrok Decoder base class",
        .tp_methods = Decoder_methods,
 };
+/** @endcond */