From d12f21b31db2985faeb2e2a6b9b09cd210f82c34 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Wed, 22 Feb 2012 18:30:47 -0600 Subject: KEYMAPPER: Map non-key custom input events This also makes the keymapper be in charge of keymapping logic --- common/EventMapper.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'common/EventMapper.cpp') diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp index 2808a7b5fd..0771ecdd89 100644 --- a/common/EventMapper.cpp +++ b/common/EventMapper.cpp @@ -21,6 +21,7 @@ */ #include "common/events.h" +#include "common/textconsole.h" namespace Common { @@ -46,6 +47,15 @@ List DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) { // if it didn't get mapped, just pass it through if (mappedEvent.type == EVENT_INVALID) mappedEvent = ev; + +#ifdef ENABLE_VKEYBD + // TODO: this check is not needed post-split + if (mappedEvent.type == EVENT_CUSTOM_BACKEND_HARDWARE) { + warning("EVENT_CUSTOM_BACKEND_HARDWARE was not mapped"); + return List(); + } +#endif + events.push_back(mappedEvent); return events; } -- cgit v1.2.3 From c0a215282d12872cf32fb24f9067216c0f869b96 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Thu, 1 Mar 2012 06:29:44 -0600 Subject: KEYMAPPER: Add delays for *UP events coming from non-keys Delayed entries are in a queue where each entry stores how many milliseconds should pass based on the last entry. --- common/EventMapper.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'common/EventMapper.cpp') diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp index 0771ecdd89..47db61e472 100644 --- a/common/EventMapper.cpp +++ b/common/EventMapper.cpp @@ -21,6 +21,8 @@ */ #include "common/events.h" + +#include "common/system.h" #include "common/textconsole.h" namespace Common { @@ -61,4 +63,30 @@ List DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) { } +void DefaultEventMapper::addDelayedEvent(uint32 millis, Event ev) { + if (_delayedEvents.empty()) { + _delayedEffectiveTime = g_system->getMillis() + millis; + millis = 0; + } + DelayedEventsEntry entry = DelayedEventsEntry(millis, ev); + _delayedEvents.push(entry); +} + +List DefaultEventMapper::getDelayedEvents() { + List events; + + if (_delayedEvents.empty()) + return events; + + uint32 now = g_system->getMillis(); + + while (!_delayedEvents.empty() && now >= _delayedEffectiveTime) { + DelayedEventsEntry entry = _delayedEvents.pop(); + if (!_delayedEvents.empty()) + _delayedEffectiveTime += _delayedEvents.front().timerOffset; + events.push_back(entry.event); + } + return events; +} + } // namespace Common -- cgit v1.2.3 From 2b57ccfd5e9ce6f1a834fc20de4ea339743692ce Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Sat, 17 Mar 2012 15:25:51 +0200 Subject: COMMON: Hopefully fix compilation EVENT_CUSTOM_BACKEND_HARDWARE is only set when ENABLE_KEYMAPPER is set --- common/EventMapper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'common/EventMapper.cpp') diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp index 47db61e472..5f6771a71d 100644 --- a/common/EventMapper.cpp +++ b/common/EventMapper.cpp @@ -50,7 +50,7 @@ List DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) { if (mappedEvent.type == EVENT_INVALID) mappedEvent = ev; -#ifdef ENABLE_VKEYBD +#ifdef ENABLE_KEYMAPPER // TODO: this check is not needed post-split if (mappedEvent.type == EVENT_CUSTOM_BACKEND_HARDWARE) { warning("EVENT_CUSTOM_BACKEND_HARDWARE was not mapped"); -- cgit v1.2.3