aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-02-21 16:42:50 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-02-21 16:42:50 +0000
commitf0eb06742afb77ddf4ea856493ff47bf836be0a2 (patch)
tree80bee93d910a611d9a28c8a6379840851061fabb /lib/python
parenta1664e81dd83e11828909d10b629ed04ea7d3467 (diff)
downloadenigma2-f0eb06742afb77ddf4ea856493ff47bf836be0a2.tar.gz
enigma2-f0eb06742afb77ddf4ea856493ff47bf836be0a2.zip
PSignal was already able to handle this without modifications
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/connections.h30
-rw-r--r--lib/python/enigma_python.i9
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();
}