diff options
author | ancarola <raffaele.ancarola@epfl.ch> | 2019-01-19 13:07:37 +0100 |
---|---|---|
committer | ancarola <raffaele.ancarola@epfl.ch> | 2019-01-19 13:07:37 +0100 |
commit | 3922c797671cdc23d9233ff76909489e45fd0006 (patch) | |
tree | d385754f00159b93a8966fb5080a51dc2d0eb4a0 /engine/flatserial.cpp | |
parent | edas (diff) | |
download | flatland-3922c797671cdc23d9233ff76909489e45fd0006.tar.gz flatland-3922c797671cdc23d9233ff76909489e45fd0006.zip |
Test two completed successfully
Diffstat (limited to '')
-rw-r--r-- | engine/flatserial.cpp | 76 |
1 files changed, 69 insertions, 7 deletions
diff --git a/engine/flatserial.cpp b/engine/flatserial.cpp index d725d30..25eafbe 100644 --- a/engine/flatserial.cpp +++ b/engine/flatserial.cpp @@ -1,22 +1,84 @@ #include "flatserial.h" +#include "flattask.h" -#include <vector> - -using namespace std; - -void process_events() +SDL_EventCollector::SDL_EventCollector() { + checker = new FlatTask<SDL_EventCollector>(this, &SDL_EventCollector::collect, 0); +} +SDL_EventCollector::~SDL_EventCollector() +{ + delete checker; } -void registerFocusable(Focusable*) +void SDL_EventCollector::collect(void*) { + SDL_Event event; + + while ( SDL_PollEvent(&event) ) + { + switch(event.type) + { + + /* Keyboard */ + case SDL_KEYDOWN: + keyboard.push_back(event); + break; + + case SDL_KEYUP: + keyboard.push_back(event); + break; + + /* Window */ + case SDL_WINDOWEVENT: + window.push_back(event); + break; + /* Quit */ + case SDL_QUIT: + quit.push_back(event); + break; + + /* User */ + case SDL_USEREVENT: + user.push_back(event); + break; + } + + // TODO other events + } } -void unregisterFocusable(Focusable*) +const std::vector<SDL_Event>& SDL_EventCollector::getStack(Uint32 id) const { + switch(id) + { + { + + /* Keyboard */ + case SDL_KEYDOWN: + return keyboard; + + case SDL_KEYUP: + return keyboard; + + /* Window */ + case SDL_WINDOWEVENT: + return window; + + /* Quit */ + case SDL_QUIT: + return quit; + + /* User */ + case SDL_USEREVENT: + return user; + + } + // TODO other events + } } +SDL_EventCollector * FlatSerial::collector = new SDL_EventCollector(); |