renamed libpg to libbear
[physics.git] / src / input / inputManager.cpp
index ebbd72e..23b945c 100644 (file)
  */
 
 #include "inputManager.h"
-#include "../debug.h"
+
+#include <bear/debug.h>
+using namespace bear;
+
+#include <SDL/SDL.h>
+
+#include "config/keys.h"
 
 
 /// ***** Private Variables *****
@@ -46,6 +52,8 @@ void input::clean()
 
 /// ***** Public Methods *****
 
+const Uint32 eventMask = -1; // ALL events
+
 void input::update()
 {
     SDL_Event event;
@@ -58,7 +66,7 @@ void input::update()
             keyState[i] = isP;
     }
 
-    while(SDL_PollEvent(&event))
+    while(0 < SDL_PeepEvents(&event, 1, SDL_GETEVENT, eventMask))
     {
         switch(event.type)
         {
@@ -68,6 +76,11 @@ void input::update()
         case SDL_KEYDOWN:
             keyState[event.key.keysym.sym] = wasP;
             break;
+        case SDL_QUIT:
+            keyState[key::end] = wasR;
+            break;
+        default:
+            break;
         }
     }
 }
@@ -93,20 +106,20 @@ bool input::mouseRight()
     return state & SDL_BUTTON(3);
 }
 
-bool input::isPressed(Uint8 key)
+bool input::isPressed(const SDLKey& key)
 {
     return keyState[key] == isP || keyState[key] == wasP;
 }
-bool input::isReleased(Uint8 key)
+bool input::isReleased(const SDLKey& key)
 {
     return keyState[key] == isR || keyState[key] == wasR;
 }
 
-bool input::wasPressed(Uint8 key)
+bool input::wasPressed(const SDLKey& key)
 {
     return keyState[key] == wasP;
 }
-bool input::wasReleased(Uint8 key)
+bool input::wasReleased(const SDLKey& key)
 {
     return keyState[key] == wasR;
 }