From: Felix Domke Date: Tue, 21 Feb 2006 16:42:50 +0000 (+0000) Subject: PSignal was already able to handle this without modifications X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=f0eb06742afb77ddf4ea856493ff47bf836be0a2 PSignal was already able to handle this without modifications --- diff --git a/lib/base/console.h b/lib/base/console.h index bfa0240..ddfd82a 100644 --- a/lib/base/console.h +++ b/lib/base/console.h @@ -40,7 +40,7 @@ public: void sendCtrlC(); void write( const char *data, int len ); bool running() { return (fd[0]!=-1) && (fd[1]!=-1) && (fd[2]!=-1); } - PSignal1Str dataAvail; + PSignal1 dataAvail; PSignal1 dataSent; PSignal1 appClosed; }; diff --git a/lib/python/connections.h b/lib/python/connections.h index ac5865e..8a06f7f 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 PSignal0: public PSignal, public Signal0 { @@ -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::operator()(a0); - } -}; - -template -class PSignal1Str: public PSignal, public Signal1 -{ -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::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::operator()(a0, a1); diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i index 42315ce..29b66ac 100644 --- a/lib/python/enigma_python.i +++ b/lib/python/enigma_python.i @@ -216,19 +216,12 @@ public: }; %template(PSignal1VI) PSignal1; +%template(PSignal1VS) PSignal1; %typemap(out) PSignal1VI { $1 = $input->get(); } -template class PSignal1Str -{ -public: - PyObject *get(); -}; - -%template(PSignal1VS) PSignal1Str; - %typemap(out) PSignal1VS { $1 = $input->get(); }