Commit Graph

71 Commits

Author SHA1 Message Date
Martin Ling c61e208d26 python: Provide sensible __str__ and __repr__ functions for enum values.
This fixes bug #668.
2016-01-04 20:49:35 +01:00
Martin Ling ae2cdde4d2 python: Fix string conversions for Python 3.
Fixes bug #478.
2015-11-02 18:35:18 +01:00
Martin Ling df979d6dc6 python: Give all enum values __doc__ strings. 2015-10-26 07:17:01 +01:00
Martin Ling c7855def61 SWIG: Declare template specialisations for containers before typemaps.
It seems this is necessary to correctly apply typemaps involving
these template specialisations.
2015-10-24 22:12:41 +02:00
Uwe Hermann dd13d47a9e bindings: Use SR_DF_ANALOG, drop SR_DF_ANALOG_OLD support.
All SR_DF_ANALOG_OLD packets are automatically converted to SR_DF_ANALOG
in the session already.
2015-10-21 00:29:29 +02:00
Uwe Hermann 5faebab290 SR_DF_ANALOG_OLD and sr_datafeed_analog_old renames.
Rename SR_DF_ANALOG to SR_DF_ANALOG_OLD, and 'struct sr_datafeed_analog'
to 'struct sr_datafeed_analog_old'.
2015-10-20 23:32:45 +02:00
Martin Ling e66728886f python: Prevent warning about deprecated NumPy API.
Without this we get:

/usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning
"Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API
NPY_1_7_API_VERSION" [-Wcpp]

As far as I'm aware we're not using any deprecated NumPy C API features.

This fixes part of bug #417.
2015-10-20 21:12:29 +01:00
Daniel Elstner fa72105fe6 python: Fix PyObject_CallMethod() arguments
Pass nullptr instead of the empty string for format, and remove
the excess varargs argument. Also, avoid NULL in favor of nullptr.
2015-10-17 17:40:42 +02:00
Daniel Elstner 2c3c9b999c python: Wrap session stop callback 2015-10-17 17:40:42 +02:00
Daniel Elstner ee9953ef12 session: Make event source injection API private
Also remove the corresponding functionality from the bindings.
2015-10-17 17:40:42 +02:00
Uwe Hermann a2e4d88205 python: Fix the build for Python >= 3.
SWIG_init() returns void for Python 2.x and 'PyObject *' for Python 3.

Use an #if to handle both cases properly, otherwise the Python bindings
for either Python 2 or 3 will fail to build.

Python 3.x failure:

sigrok/core/classes_wrap.cpp: In function ‘PyObject* PyInit__classes()’:
sigrok/core/classes_wrap.cpp:59002:5: error: return-statement with no
value, in function returning ‘PyObject* {aka _object*}’ [-fpermissive]
     return;
     ^

Python 2.x failure:

In file included from /usr/include/dirent.h:244:0,
                 from /usr/include/glib-2.0/glib/gdir.h:32,
                 from /usr/include/glib-2.0/glib.h:45,
                 from /usr/include/pygobject-3.0/pygobject.h:7,
                 from sigrok/core/classes_wrap.cpp:3179:
sigrok/core/classes_wrap.cpp: In function ‘void init_classes()’:
sigrok/core/classes_wrap.cpp:59002:12: error: return-statement with a
value, in function returning 'void' [-fpermissive]
     return NULL;
            ^
2015-08-31 21:08:08 +02:00
Alexandru Gagniuc aae2273b99 bindings/python: Handle import failures without crashing
When the import of gi.repository.GLib failed, we would get a NULL
pointer that we passed along without any checking. In this situation,
the entire program would crash with a segmentation fault, and no
message to indicate the problem.

When the import fails, abort the SWIG init and print a message. The
Python interpreter then prints out a backtrace, which can be useful
in tracking down the problem.
2015-06-16 13:04:24 +02:00
Alexandru Gagniuc 682fb08c88 python: classes.i: Declare strings with std::string
This makes it consistent with the rest of the string declarations in
this file, all of which use std::string.
2015-04-30 16:21:21 -07:00
Uwe Hermann 161dc24d84 cxx: Rename include/libsigrok/ to include/libsigrokcxx/. 2015-01-17 20:26:14 +01:00
Uwe Hermann 1b40fdb881 Rename libsigrok.hpp to libsigrokcxx.hpp.
This avoids confusion of libsigrok.h vs. libsigrok.hpp and makes it
clearer that this is the main libsigrokcxx header.
2015-01-17 20:15:38 +01:00
Uwe Hermann 52ff4f6a04 Rename libsigrokxx to the more common libsigrokcxx. 2015-01-17 18:52:43 +01:00
Martin Ling ed6b4c4747 python: Wrap Analog::data() as a NumPy array. 2014-11-12 02:27:05 +01:00
Martin Ling ea22dc108b python: Return correct PacketPayload subclasses from Packet.payload() 2014-11-12 02:27:05 +01:00
Martin Ling 75fb30365e python: Fix error handling for callbacks. 2014-11-12 02:27:05 +01:00
Martin Ling f0c0dab5a9 python: Implement equality checks for EnumValue derived classes.
Fixes bug #443.
2014-11-12 02:27:05 +01:00
Martin Ling 7a36ceacb9 bindings: Support per-language extensions to EnumValue wrappers. 2014-11-12 02:27:05 +01:00
Martin Ling 444d6a3975 python: Fix mapping of vector & map attributes to Python types.
Fixes bug #382.
2014-11-12 02:27:05 +01:00
Martin Ling 062430a2fb bindings: Use new %attributevector and %attributemap macros. 2014-11-12 02:27:05 +01:00
Martin Ling 0bc1a7613a bindings: Rename ConfigKey::get(string) to get_by_identifier().
The polymorphism with get(int) causes problems here when a char * is passed.
2014-11-12 02:27:04 +01:00
Martin Ling 9d229ecb9e cxx: Implement more of EnumValue in template. 2014-11-12 02:27:04 +01:00
Martin Ling f90ed2d1af python: fix conversion to string variants. 2014-09-14 04:53:06 +01:00
Martin Ling 3b16108573 bindings: Remove 'get_' prefix from all accessors. 2014-09-11 21:27:32 +01:00
Martin Ling ca3291e3ee Update bindings for new input API. 2014-08-26 01:55:41 +02:00
Marcus Comstedt 0e1a7fe91a Makefile.am: Fix out-of-tree build for Python bindings 2014-08-17 16:05:46 +02:00
Martin Ling 6a8c1d6879 python: Add documentation generation. 2014-08-10 15:47:13 +02:00
Martin Ling bd4fda2407 bindings: Transfer C++ documentation strings to Python and Java wrappers. 2014-08-10 15:47:13 +02:00
Martin Ling 58aa1f8359 Update bindings to use new output API. 2014-07-26 16:03:25 +01:00
Martin Ling abc7146d03 Fix building Python bindings with pygobject >= 3.7.91. 2014-07-19 16:12:34 +02:00
Martin Ling f0f1d90d9c Remove obsolete low-level language bindings. 2014-07-18 21:34:57 +01:00
Martin Ling f774095496 Reimplement high-level Python bindings on top of SWIG/C++ bindings. 2014-07-18 20:47:10 +01:00
Martin Ling 5a7e62211c SWIG: Rename libsigrok.i to lowlevel.i. 2014-07-17 18:30:49 +01:00
Uwe Hermann 3f239f0803 Rename various *PROBE* macros to *CHANNEL*.
This fixes parts of bug #259.
2014-03-25 20:58:54 +01:00
Uwe Hermann 91aea754aa Rename 'struct sr_probe' to 'struct sr_channel' everywhere.
This fixes parts of bug #259.
2014-03-25 20:58:54 +01:00
Uwe Hermann 660e398fe9 Replace 'probe group' with 'channel group' everywhere.
The name 'probe' (and thus 'probe group') is a relic from the times when
sigrok was mostly about logic analyzers. Nowadays we support a lot more
device types where 'probe' is not really a good term and 'channel' is
much better suited.

This fixes parts of bug #259.
2014-03-25 20:58:54 +01:00
Martin Ling 865730188c python: Use OrderedDict for input formats. 2013-12-17 16:29:41 +00:00
Martin Ling 772b21d425 python: Split up Device class and add InputFileDevice class. 2013-12-17 16:10:08 +00:00
Martin Ling 01e9ff61c2 python: Give config keys an auto lowercase name if they have none defined. 2013-12-17 13:11:43 +00:00
Martin Ling cad0acef5d python: Add ConfigKey.info and ConfigKey.<id> shortcuts. 2013-12-17 13:01:35 +00:00
Martin Ling 14e8eb3353 python: ConfigInfo: return None from constructor if not available. 2013-12-17 13:01:11 +00:00
Martin Ling 8593c8e30d python: Add ConfigInfo and DataType classes. 2013-12-17 12:47:49 +00:00
Martin Ling 409d85b3ac python: Finish output format support. 2013-12-17 02:00:09 +01:00
Martin Ling f0e764de7b python: Finish input format support. 2013-12-17 02:00:09 +01:00
Martin Ling a64198c8ea python: Add initial support for input and output formats. 2013-12-17 02:00:09 +01:00
Martin Ling 945e23a57d python: fix setting device/probe group configuration. 2013-12-17 02:00:09 +01:00
Martin Ling 4e5c64e358 python: whitespace fix. 2013-12-17 02:00:09 +01:00