]> sigrok.org Git - libsigrokdecode.git/blobdiff - decode.c
Rename sigrokdecode_register_i2c() to register().
[libsigrokdecode.git] / decode.c
index d4890682e681c9e2dc72ad547c1fa0f9247d2a03..d87f5d282f4061dee3bae7a40844c6daea6df7a8 100644 (file)
--- a/decode.c
+++ b/decode.c
@@ -31,13 +31,14 @@ int sigrokdecode_init(void)
        /* Py_Initialize() returns void and usually cannot fail. */
        Py_Initialize();
 
-       /* FIXME */
-       /* Allows for ./gui/sigrok-gui in the top-level directory. */
-       PySys_SetPath("libsigrokdecode/scripts");
-       /* Allows for ./sigrok-gui in the gui/ directory. */
-       // PySys_SetPath("../libsigrokdecode/scripts");
-       /* Allows for sigrok-gui from anywhere given sigrok is installed. */
-       // PySys_SetPath("/usr/local/share/sigrok");
+       /* Add some more search directories for convenience. */
+       /* FIXME: Check error code. */
+       PyRun_SimpleString(
+               "import sys;"
+               "sys.path.append('libsigrokdecode/scripts');"
+               "sys.path.append('../libsigrokdecode/scripts');"
+               "sys.path.append('/usr/local/share/sigrok');"
+               );
 
        return 0;
 }
@@ -67,12 +68,10 @@ int sigrokdecode_load_decoder_file(const char *name)
  * @param outbuflen TODO
  * @return 0 upon success, non-zero otherwise.
  */
-int sigrokdecode_run_decoder(const char *decodername, uint8_t *inbuf,
-                            uint64_t inbuflen, uint8_t **outbuf,
-                            uint64_t *outbuflen)
+int sigrokdecode_run_decoder(const char *modulename, const char *decodername,
+                            uint8_t *inbuf, uint64_t inbuflen,
+                            uint8_t **outbuf, uint64_t *outbuflen)
 {
-       // const char *decoder_filename = "transitioncounter"; /* FIXME */
-       const char *decoder_filename = "i2c"; /* FIXME */
        PyObject *py_name, *py_module, *py_func, *py_args;
        PyObject *py_value, *py_result;
        int ret;
@@ -92,7 +91,7 @@ int sigrokdecode_run_decoder(const char *decodername, uint8_t *inbuf,
                return -5;
 
        /* Get the name of the decoder module/file as Python string. */
-       if (!(py_name = PyString_FromString(decoder_filename))) {
+       if (!(py_name = PyString_FromString(modulename))) {
                PyErr_Print();
                return -6;
        }