X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e5f1c45c07b1ff43c0113a51128f60bd3e348aa4..995273c1f71c79d72fa75da25da4a03bd83ac9a4:/lib/python/python.h diff --git a/lib/python/python.h b/lib/python/python.h index 42749c7e..f56d49bb 100644 --- a/lib/python/python.h +++ b/lib/python/python.h @@ -4,9 +4,9 @@ #define __lib_python_python_class_h #endif +#include #include #include -#include #if !defined(SKIP_PART1) && !defined(SWIG) class ePyObject @@ -149,18 +149,7 @@ inline void ePyObject::decref() #endif // !SWIG && !SKIP_PART1 #ifndef SKIP_PART2 - -class TestObj -{ -DECLARE_REF(TestObj); -public: - TestObj(); - ~TestObj(); -}; -TEMPLATE_TYPEDEF(ePtr, TestObjPtr); - #ifndef SWIG -extern PyObject *New_TestObj(); #ifdef PYTHON_REFCOUNT_DEBUG inline void Impl_Py_DECREF(const char* file, int line, const ePyObject &obj) { @@ -204,6 +193,15 @@ inline ePyObject Impl_PyString_FromString(const char* file, int line, const char return ePyObject(PyString_FromString(str), file, line); } +inline ePyObject Impl_PyString_FromFormat(const char* file, int line, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + PyObject *ob = PyString_FromFormatV(fmt, ap); + va_end(ap); + return ePyObject(ob, file, line); +} + inline ePyObject Impl_PyInt_FromLong(const char* file, int line, long val) { return ePyObject(PyInt_FromLong(val), file, line); @@ -224,11 +222,6 @@ inline ePyObject Impl_PyLong_FromLongLong(const char* file, int line, long long return ePyObject(PyLong_FromLongLong(val), file, line); } -inline ePyObject Impl_New_TestObj(const char* file, int line) -{ - return ePyObject(New_TestObj(), file, line); -} - inline ePyObject Impl_PyList_GET_ITEM(const char *file, int line, ePyObject list, unsigned int pos) { return ePyObject(PyList_GET_ITEM(list, pos), file, line); @@ -281,6 +274,15 @@ inline ePyObject Impl_PyString_FromString(const char *str) return PyString_FromString(str); } +inline ePyObject Impl_PyString_FromFormat(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + PyObject *ob = PyString_FromFormatV(fmt, ap); + va_end(ap); + return ePyObject(ob); +} + inline ePyObject Impl_PyInt_FromLong(long val) { return PyInt_FromLong(val); @@ -301,11 +303,6 @@ inline ePyObject Impl_PyLong_FromLongLong(long long val) return PyLong_FromLongLong(val); } -inline ePyObject Impl_New_TestObj() -{ - return New_TestObj(); -} - inline ePyObject Impl_PyList_GET_ITEM(ePyObject list, unsigned int pos) { return PyList_GET_ITEM(list, pos); @@ -317,10 +314,16 @@ inline ePyObject Impl_PyTuple_GET_ITEM(ePyObject list, unsigned int pos) } #endif +inline void Impl_INCREF(PyObject *ob) +{ + Py_INCREF(ob); +} + inline void Impl_DECREF(PyObject *ob) { Py_DECREF(ob); } +#define Org_Py_INCREF(obj) Impl_INCREF(obj) #define Org_Py_DECREF(obj) Impl_DECREF(obj) #undef Py_DECREF #undef Py_XDECREF @@ -337,11 +340,11 @@ inline void Impl_DECREF(PyObject *ob) #define PyTuple_New(args...) Impl_PyTuple_New(__FILE__, __LINE__, args) #define PyDict_New(...) Impl_PyDict_New(__FILE__, __LINE__) #define PyString_FromString(str) Impl_PyString_FromString(__FILE__, __LINE__, str) +#define PyString_FromFormat(str, args...) Impl_PyString_FromFormat(__FILE__, __LINE__, str, args) #define PyInt_FromLong(val) Impl_PyInt_FromLong(__FILE__, __LINE__, val) #define PyLong_FromLong(val) Impl_PyLong_FromLong(__FILE__, __LINE__, val) #define PyLong_FromUnsignedLong(val) Impl_PyLong_FromUnsignedLong(__FILE__, __LINE__, val) #define PyLong_FromLongLong(val) Impl_PyLong_FromLongLong(__FILE__, __LINE__, val) -#define NEW_TestObj(...) Impl_New_TestObj(__FILE__, __LINE__) #define PyList_GET_ITEM(list, pos) Impl_PyList_GET_ITEM(__FILE__, __LINE__, list, pos) #define PyTuple_GET_ITEM(list, pos) Impl_PyTuple_GET_ITEM(__FILE__, __LINE__, list, pos) #else @@ -353,11 +356,11 @@ inline void Impl_DECREF(PyObject *ob) #define PyTuple_New(args...) Impl_PyTuple_New(args) #define PyDict_New(...) Impl_PyDict_New() #define PyString_FromString(str) Impl_PyString_FromString(str) +#define PyString_FromFormat(str, args...) Impl_PyString_FromFormat(str, args) #define PyInt_FromLong(val) Impl_PyInt_FromLong(val) #define PyLong_FromLong(val) Impl_PyLong_FromLong(val) #define PyLong_FromUnsignedLong(val) Impl_PyLong_FromUnsignedLong(val) #define PyLong_FromLongLong(val) Impl_PyLong_FromLongLong(val) -#define NEW_TestObj(...) Impl_New_TestObj() #define PyList_GET_ITEM(list, pos) Impl_PyList_GET_ITEM(list, pos) #define PyTuple_GET_ITEM(list, pos) Impl_PyTuple_GET_ITEM(list, pos) #endif @@ -367,6 +370,7 @@ class ePython public: ePython(); ~ePython(); + int execFile(const char *file); int execute(const std::string &pythonfile, const std::string &funcname); static int call(ePyObject pFunc, ePyObject args); static ePyObject resolve(const std::string &pythonfile, const std::string &funcname);