- void enter_loop();
- void exit_loop();
- void setTimerOffset( int );
- int getTimerOffset() { return timer_offset; }
- bool isAppQuitNowSet() { return app_quit_now; }
+#endif
+
+ /* a user supplied timeout. enter_loop will return with:
+ 0 - no timeout, no signal
+ 1 - timeout
+ 2 - signal
+ */
+ int iterate(unsigned int timeout=0, PyObject **res=0, SWIG_PYOBJECT(ePyObject) additional=(PyObject*)0);
+
+ /* run will iterate endlessly until the app is quit, and return
+ the exit code */
+ int runLoop();
+
+ /* our new shared polling interface. */
+ PyObject *poll(SWIG_PYOBJECT(ePyObject) dict, SWIG_PYOBJECT(ePyObject) timeout);
+ void interruptPoll();
+ void reset();
+
+ /* m_is_idle needs to be atomic, but it doesn't really matter much, as it's read-only from outside */
+ int isIdle() { return m_is_idle; }