X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d026012d8ba6198d879df68cb4bf6c92c95a633a..1b9b1eeddb8259b72b6d95c445ae22394c213ffa:/lib/base/ebase.h diff --git a/lib/base/ebase.h b/lib/base/ebase.h index fffe252f..b464b44c 100644 --- a/lib/base/ebase.h +++ b/lib/base/ebase.h @@ -182,11 +182,12 @@ class eMainloop ePtrList m_timer_list; bool app_quit_now; int loop_level; - int processOneEvent(unsigned int user_timeout); + int processOneEvent(unsigned int user_timeout, PyObject **res=0, PyObject *additional=0); int retval; pthread_mutex_t recalcLock; int m_now_is_invalid; + int m_interrupt_requested; #endif public: static void addTimeOffset(int offset); @@ -200,7 +201,7 @@ public: #endif eMainloop() - :app_quit_now(0),loop_level(0),retval(0) + :app_quit_now(0),loop_level(0),retval(0), m_interrupt_requested(0) { m_now_is_invalid = 0; existing_loops.push_back(this); @@ -222,11 +223,16 @@ public: 1 - timeout 2 - signal */ - int iterate(unsigned int timeout=0); + int iterate(unsigned int timeout=0, PyObject **res=0, PyObject *additional=0); /* run will iterate endlessly until the app is quit, and return the exit code */ int runLoop(); + + /* our new shared polling interface. */ + PyObject *poll(PyObject *dict, PyObject *timeout); + void interruptPoll(); + void reset(); }; /**