aboutsummaryrefslogtreecommitdiff
path: root/lib/base
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-02-27 02:20:31 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-02-27 02:20:31 +0000
commitdba614edd2aad3c17e244914eaef3809d8300cb1 (patch)
tree382782ddff50bf88e421d933b13e35b9e5682cff /lib/base
parent1cdf6cb021fcaa6548b90ba7b6765cf1e8b8b37b (diff)
downloadenigma2-dba614edd2aad3c17e244914eaef3809d8300cb1.tar.gz
enigma2-dba614edd2aad3c17e244914eaef3809d8300cb1.zip
- hopefully fixed some python/refcount stuff (__deref__ is still evil!)
- first work on skin support, not really far - improved infobar - deletes components when destroying screens - fixed elistbox and component - add ability to change bouqet - real query parser still unfinished
Diffstat (limited to 'lib/base')
-rw-r--r--lib/base/ebase.h72
-rw-r--r--lib/base/object.h12
2 files changed, 49 insertions, 35 deletions
diff --git a/lib/base/ebase.h b/lib/base/ebase.h
index 187f9548..d9a17b79 100644
--- a/lib/base/ebase.h
+++ b/lib/base/ebase.h
@@ -171,40 +171,7 @@ public:
void setRequested(int req) { requested=req; }
};
- // ... und Timer
-/**
- * \brief Gives a callback after a specified timeout.
- *
- * This class emits the signal \c eTimer::timeout after the specified timeout.
- */
-class eTimer
-{
- eMainloop &context;
- timeval nextActivation;
- long interval;
- bool bSingleShot;
- bool bActive;
-public:
- /**
- * \brief Constructs a timer.
- *
- * The timer is not yet active, it has to be started with \c start.
- * \param context The thread from which the signal should be emitted.
- */
- eTimer(eMainloop *context): context(*context), bActive(false) { }
- ~eTimer() { if (bActive) stop(); }
-
- PSignal0<void> timeout;
- void activate();
-
- bool isActive() { return bActive; }
- timeval &getNextActivation() { return nextActivation; }
-
- void start(long msec, bool singleShot=false);
- void stop();
- void changeInterval(long msek);
- bool operator<(const eTimer& t) const { return nextActivation < t.nextActivation; }
-};
+class eTimer;
// werden in einer mainloop verarbeitet
class eMainloop
@@ -231,6 +198,7 @@ public:
void exit_loop();
};
+
/**
* \brief The application class.
*
@@ -250,4 +218,40 @@ public:
eApp = 0;
}
};
+
+ // ... und Timer
+/**
+ * \brief Gives a callback after a specified timeout.
+ *
+ * This class emits the signal \c eTimer::timeout after the specified timeout.
+ */
+class eTimer
+{
+ eMainloop &context;
+ timeval nextActivation;
+ long interval;
+ bool bSingleShot;
+ bool bActive;
+public:
+ /**
+ * \brief Constructs a timer.
+ *
+ * The timer is not yet active, it has to be started with \c start.
+ * \param context The thread from which the signal should be emitted.
+ */
+ eTimer(eMainloop *context = eApp): context(*context), bActive(false) { }
+ ~eTimer() { if (bActive) stop(); }
+
+ PSignal0<void> timeout;
+ void activate();
+
+ bool isActive() { return bActive; }
+ timeval &getNextActivation() { return nextActivation; }
+
+ void start(long msec, bool singleShot=false);
+ void stop();
+ void changeInterval(long msek);
+ bool operator<(const eTimer& t) const { return nextActivation < t.nextActivation; }
+};
+
#endif
diff --git a/lib/base/object.h b/lib/base/object.h
index 64d9a88f..edd68a86 100644
--- a/lib/base/object.h
+++ b/lib/base/object.h
@@ -37,12 +37,22 @@ public:
}
};
-#define DECLARE_REF private: oRefCount ref; public: void AddRef(); void Release();
+#ifndef SWIG
+#define DECLARE_REF(x) private: oRefCount ref; public: void AddRef(); void Release();
#ifdef OBJECT_DEBUG
extern int object_total_remaining;
#define DEFINE_REF(c) void c::AddRef() { ++object_total_remaining; ++ref; eDebug("OBJECT_DEBUG " #c "+%p now %d", this, (int)ref); } void c::Release() { --object_total_remaining; eDebug("OBJECT_DEBUG " #c "-%p now %d", this, ref-1); if (!--ref) delete this; }
#else
#define DEFINE_REF(c) void c::AddRef() { ++ref; } void c::Release() { if (!--ref) delete this; }
#endif
+#else
+#define DECLARE_REF(x) private: void AddRef(); void Release();
+#endif
+
+#ifdef SWIG
+class Object
+{
+};
+#endif
#endif