6ffbd1fd3c646cfa06b407170b9ea0e2412f9a8f.svn-base (562B)
1 #include "Input.h" 2 3 Control::Control() 4 { 5 mKeyState = SDL_GetKeyboardState(NULL); 6 memcpy(mLastState, mKeyState, 512); 7 } 8 9 bool Control::SendKeyEvent(int KeyID, int KeyState) 10 { 11 EventType et; 12 if (KeyState == 1) 13 { 14 et = KEY_DOWN; 15 } 16 else // KeyState == 0 17 { 18 et = KEY_UP; 19 } 20 mFeed.EventProcess(Event(et, KeyID)); 21 22 return true; 23 } 24 25 void Control::ProcessKeyboard() 26 { 27 SDL_PumpEvents(); //Update *mKeys 28 29 for (int i = 0; i < 512; i++) 30 { 31 if (mLastState[i] != mKeyState[i]) 32 { 33 SendKeyEvent(i, mKeyState[i]); 34 } 35 } 36 37 memcpy(mLastState, mKeyState, 512); 38 } 39