aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/events/default/default-events.cpp10
-rw-r--r--common/events.cpp2
-rw-r--r--common/events.h19
3 files changed, 17 insertions, 14 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 8cbc44d052..842b4dd87a 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -101,10 +101,10 @@ DefaultEventManager::DefaultEventManager(Common::EventSource *boss) :
assert(boss);
- g_eventDispatcher.registerSource(boss, false);
- g_eventDispatcher.registerSource(&_artificialEventSource, false);
+ _dispatcher.registerSource(boss, false);
+ _dispatcher.registerSource(&_artificialEventSource, false);
- g_eventDispatcher.registerObserver(this, 0, false);
+ _dispatcher.registerObserver(this, 0, false);
_recordFile = NULL;
_recordTimeFile = NULL;
@@ -207,7 +207,7 @@ DefaultEventManager::DefaultEventManager(Common::EventSource *boss) :
#ifdef ENABLE_KEYMAPPER
_keymapper = new Common::Keymapper(this);
// EventDispatcher will automatically free the keymapper
- g_eventDispatcher.registerMapper(_keymapper);
+ _dispatcher.registerMapper(_keymapper);
_remap = false;
#endif
}
@@ -383,7 +383,7 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
uint32 time = g_system->getMillis();
bool result = false;
- g_eventDispatcher.dispatch();
+ _dispatcher.dispatch();
if (!_eventQueue.empty()) {
event = _eventQueue.pop();
result = true;
diff --git a/common/events.cpp b/common/events.cpp
index 149b4936a9..0fab55c956 100644
--- a/common/events.cpp
+++ b/common/events.cpp
@@ -25,8 +25,6 @@
#include "common/events.h"
-DECLARE_SINGLETON(Common::EventDispatcher);
-
namespace Common {
EventDispatcher::EventDispatcher() : _mapper(0) {
diff --git a/common/events.h b/common/events.h
index 4f060a6da7..2ca705c70c 100644
--- a/common/events.h
+++ b/common/events.h
@@ -236,9 +236,11 @@ public:
* mapper will be processed before an event is sent to the
* observers.
*/
-class EventDispatcher : public Singleton<EventDispatcher> {
- friend class Singleton<SingletonBaseType>;
+class EventDispatcher {
public:
+ EventDispatcher();
+ ~EventDispatcher();
+
/**
* Tries to catch events from the registered event
* sources and dispatch them to the observers.
@@ -289,9 +291,6 @@ public:
*/
void unregisterObserver(EventObserver *obs);
private:
- EventDispatcher();
- ~EventDispatcher();
-
EventMapper *_mapper;
struct Entry {
@@ -314,8 +313,6 @@ private:
void dispatchEvent(const Event &event);
};
-#define g_eventDispatcher (Common::EventDispatcher::instance())
-
class Keymapper;
/**
@@ -398,6 +395,14 @@ public:
#ifdef ENABLE_KEYMAPPER
virtual Common::Keymapper *getKeymapper() = 0;
#endif
+
+ /**
+ * Returns the underlying EventDispatcher.
+ */
+ EventDispatcher *getEventDispatcher() { return &_dispatcher; }
+
+protected:
+ EventDispatcher _dispatcher;
};
} // End of namespace Common