diff options
-rw-r--r-- | base/main.cpp | 4 | ||||
-rw-r--r-- | common/osd_message_queue.cpp | 5 | ||||
-rw-r--r-- | common/osd_message_queue.h | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/base/main.cpp b/base/main.cpp index 42f5910b3b..c52888a827 100644 --- a/base/main.cpp +++ b/base/main.cpp @@ -51,6 +51,7 @@ #include "common/textconsole.h" #include "common/tokenizer.h" #include "common/translation.h" +#include "common/osd_message_queue.h" #include "gui/gui-manager.h" #include "gui/error.h" @@ -477,6 +478,8 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { g_eventRec.RegisterEventSource(); #endif + Common::OSDMessageQueue::instance().registerEventSource(); + // Now as the event manager is created, setup the keymapper setupKeymapper(system); @@ -615,6 +618,7 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { GUI::GuiManager::destroy(); Common::ConfigManager::destroy(); Common::DebugManager::destroy(); + Common::OSDMessageQueue::destroy(); #ifdef ENABLE_EVENTRECORDER GUI::EventRecorder::destroy(); #endif diff --git a/common/osd_message_queue.cpp b/common/osd_message_queue.cpp index ee2ee2d7c8..b8abf18bb5 100644 --- a/common/osd_message_queue.cpp +++ b/common/osd_message_queue.cpp @@ -28,13 +28,16 @@ namespace Common { DECLARE_SINGLETON(OSDMessageQueue); OSDMessageQueue::OSDMessageQueue() : _lastUpdate(0) { - g_system->getEventManager()->getEventDispatcher()->registerSource(this, false); } OSDMessageQueue::~OSDMessageQueue() { g_system->getEventManager()->getEventDispatcher()->unregisterSource(this); } +void OSDMessageQueue::registerEventSource() { + g_system->getEventManager()->getEventDispatcher()->registerSource(this, false); +} + void OSDMessageQueue::addMessage(const char *msg) { _mutex.lock(); _messages.push(msg); diff --git a/common/osd_message_queue.h b/common/osd_message_queue.h index 9348497b28..7aa7cf4792 100644 --- a/common/osd_message_queue.h +++ b/common/osd_message_queue.h @@ -39,6 +39,8 @@ public: OSDMessageQueue(); ~OSDMessageQueue(); + void registerEventSource(); + enum { kMinimumDelay = 1000 /** < Minimum delay between two OSD messages (in milliseconds) */ }; |