diff options
author | Tarek Soliman | 2012-03-01 06:29:44 -0600 |
---|---|---|
committer | Tarek Soliman | 2012-03-02 20:48:50 -0600 |
commit | c0a215282d12872cf32fb24f9067216c0f869b96 (patch) | |
tree | f55b1c3591ebc7c094b78c32f3d714d45e942da7 /common/events.h | |
parent | d12f21b31db2985faeb2e2a6b9b09cd210f82c34 (diff) | |
download | scummvm-rg350-c0a215282d12872cf32fb24f9067216c0f869b96.tar.gz scummvm-rg350-c0a215282d12872cf32fb24f9067216c0f869b96.tar.bz2 scummvm-rg350-c0a215282d12872cf32fb24f9067216c0f869b96.zip |
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.
Diffstat (limited to 'common/events.h')
-rw-r--r-- | common/events.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/common/events.h b/common/events.h index 7e411ecce5..7366c51d36 100644 --- a/common/events.h +++ b/common/events.h @@ -232,12 +232,27 @@ public: * Map an incoming event to one or more action events */ virtual List<Event> mapEvent(const Event &ev, EventSource *source) = 0; + + virtual List<Event> getDelayedEvents() = 0; }; class DefaultEventMapper : public EventMapper { public: + DefaultEventMapper() : _delayedEvents(), _delayedEffectiveTime(0) {} // EventMapper interface virtual List<Event> mapEvent(const Event &ev, EventSource *source); + virtual List<Event> getDelayedEvents(); +protected: + virtual void addDelayedEvent(uint32 millis, Event ev); + + struct DelayedEventsEntry { + const uint32 timerOffset; + const Event event; + DelayedEventsEntry(const uint32 offset, const Event ev) : timerOffset(offset), event(ev) { } + }; + + Queue<DelayedEventsEntry> _delayedEvents; + uint32 _delayedEffectiveTime; }; /** |