diff options
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/connections.h | 30 | ||||
| -rw-r--r-- | lib/python/enigma_python.i | 9 |
2 files changed, 14 insertions, 25 deletions
diff --git a/lib/python/connections.h b/lib/python/connections.h index ac5865e5..8a06f7fa 100644 --- a/lib/python/connections.h +++ b/lib/python/connections.h @@ -40,6 +40,16 @@ public: PyObject *get() { Py_INCREF(m_list); return m_list; } }; +inline PyObject *PyFrom(int v) +{ + return PyInt_FromLong(v); +} + +inline PyObject *PyFrom(const char *c) +{ + return PyString_FromString(c); +} + template <class R> class PSignal0: public PSignal, public Signal0<R> { @@ -60,21 +70,7 @@ public: R operator()(V0 a0) { PyObject *pArgs = PyTuple_New(1); - PyTuple_SET_ITEM(pArgs, 0, PyInt_FromLong(a0)); - callPython(pArgs); - Py_DECREF(pArgs); - return Signal1<R,V0>::operator()(a0); - } -}; - -template <class R, class V0> -class PSignal1Str: public PSignal, public Signal1<R,V0> -{ -public: - R operator()(V0 a0) - { - PyObject *pArgs = PyTuple_New(1); - PyTuple_SET_ITEM(pArgs, 0, PyString_FromString(a0)); + PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); callPython(pArgs); Py_DECREF(pArgs); return Signal1<R,V0>::operator()(a0); @@ -88,8 +84,8 @@ public: R operator()(V0 a0, V1 a1) { PyObject *pArgs = PyTuple_New(2); - PyTuple_SET_ITEM(pArgs, 0, PyInt_FromLong(a0)); - PyTuple_SET_ITEM(pArgs, 1, PyInt_FromLong(a1)); + PyTuple_SET_ITEM(pArgs, 0, PyFrom(a0)); + PyTuple_SET_ITEM(pArgs, 1, PyFrom(a1)); callPython(pArgs); Py_DECREF(pArgs); return Signal2<R,V0,V1>::operator()(a0, a1); diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i index 42315ce7..29b66acf 100644 --- a/lib/python/enigma_python.i +++ b/lib/python/enigma_python.i @@ -216,19 +216,12 @@ public: }; %template(PSignal1VI) PSignal1<void,int>; +%template(PSignal1VS) PSignal1<void,const char *c>; %typemap(out) PSignal1VI { $1 = $input->get(); } -template<class R, class P0> class PSignal1Str -{ -public: - PyObject *get(); -}; - -%template(PSignal1VS) PSignal1Str<void,const char*>; - %typemap(out) PSignal1VS { $1 = $input->get(); } |
