From 9d049dcaf022e500e643d6e46bb29412aa419653 Mon Sep 17 00:00:00 2001 From: Patrik Gornicz Date: Fri, 22 Aug 2008 18:26:52 -0400 Subject: [PATCH] wip: reader, added key mappings --- src/config/reader.cpp | 115 +++++++++++++++++++++++++++++++++++++++++++++++--- src/config/reader.h | 7 ++- 2 files changed, 115 insertions(+), 7 deletions(-) diff --git a/src/config/reader.cpp b/src/config/reader.cpp index de6da20..2d1d677 100644 --- a/src/config/reader.cpp +++ b/src/config/reader.cpp @@ -25,18 +25,21 @@ using std::ifstream; using std::string; -char* configDir = "../configs/"; +typedef std::map kMap; +kMap keyMap; /// ***** Private Method Headers ***** -void processLine(const string& str, keyMap* map); +void processLine(const string& str, inputMap* map); bool extractLine(const string& str, string* name, string* value); /// ***** Private Variables ***** +char* configDir = "../configs/"; + /// ***** Public Methods ***** -void readConfigs(keyMap* map) +void readConfigs(inputMap* map) { char fileName[64]; @@ -67,7 +70,7 @@ void readConfigs(keyMap* map) /// ***** Private Methods ***** -void processLine(const string& str, keyMap* map) +void processLine(const string& str, inputMap* map) { string name; string value; @@ -78,6 +81,7 @@ void processLine(const string& str, keyMap* map) if(extracted) { + //map->insert(name, value); cout << name << endl; cout << value << endl; } @@ -132,13 +136,18 @@ bool extractLine(const string& str, string* name, string* value) state++; name_end = char_pos; } + if(c_str[char_pos] == '=') char_pos--; // decrement to stay on this char break; case 2: if(c_str[char_pos] == '=') - { state++; + + if(c_str[char_pos] != ' ' + && c_str[char_pos] != '\t') + { + return false; } break; case 3: @@ -174,3 +183,99 @@ bool extractLine(const string& str, string* name, string* value) return true; } + +bool extractKey(const string& str, Uint8* key) +{ +// if(str.length() != 1) +// return false; + + return false; +} + +void createKeyMap() +{ + // add all the letters + for (int i = 'A'; i <= 'Z'; i++) // uppercase + keyMap["" + (char)i] = (SDLKey)i; + for (int i = 'a'; i <= 'z'; i++) // lowercase + keyMap["" + (char)i] = (SDLKey)i; + + // add all the numbers + for (int i = '0'; i <= '9'; i++) + keyMap["" + (char)i] = (SDLKey)i; + + /* + // add the function keys + int F1 = (int)Key.F1; + for (int i = F1; i <= (int)Key.F15; i++) + { + keyMap.Add("F" + (i - F1 + 1), (Key)i); + keyMap.Add("f" + (i - F1 + 1), (Key)i); + } + */ + + keyMap["LCtrl"] = SDLK_LCTRL; + keyMap["LeftControl"] = SDLK_LCTRL; + keyMap["LAlt"] = SDLK_LALT; + keyMap["LeftAlt"] = SDLK_LALT; + keyMap["LShift"] = SDLK_LSHIFT; + keyMap["LeftShift"] = SDLK_LSHIFT; + keyMap["LWin"] = SDLK_LSUPER; + keyMap["LeftWindows"] = SDLK_LSUPER; + keyMap["LeftMeta"] = SDLK_LMETA; + keyMap["LMeta"] = SDLK_LMETA; + + keyMap["RCtrl"] = SDLK_RCTRL; + keyMap["RightControl"] = SDLK_RCTRL; + keyMap["RAlt"] = SDLK_RALT; + keyMap["RightAlt"] = SDLK_RALT; + keyMap["RShift"] = SDLK_RSHIFT; + keyMap["RightShift"] = SDLK_RSHIFT; + keyMap["RWin"] = SDLK_RSUPER; + keyMap["RightWindows"] = SDLK_RSUPER; + keyMap["RightMeta"] = SDLK_RMETA; + keyMap["RMeta"] = SDLK_RMETA; + + keyMap["Esc"] = SDLK_ESCAPE; + keyMap["Escape"] = SDLK_ESCAPE; + + keyMap["Return"] = SDLK_RETURN; + keyMap["Enter"] = SDLK_RETURN; + + keyMap["Insert"] = SDLK_INSERT; + keyMap["Home"] = SDLK_HOME; + keyMap["Delete"] = SDLK_DELETE; + keyMap["End"] = SDLK_END; + keyMap["PageUp"] = SDLK_PAGEUP; + keyMap["PageDown"] = SDLK_PAGEDOWN; + + keyMap["Minus"] = SDLK_MINUS; + keyMap["Equal"] = SDLK_EQUALS; + keyMap["Equals"] = SDLK_EQUALS; + keyMap["LeftBracket"] = SDLK_LEFTBRACKET; + keyMap["LBracket"] = SDLK_LEFTBRACKET; + keyMap["RightBracket"] = SDLK_RIGHTBRACKET; + keyMap["RBracket"] = SDLK_RIGHTBRACKET; + keyMap["Backslash"] = SDLK_BACKSLASH; + keyMap["Slash"] = SDLK_SLASH; + keyMap["Semicolon"] = SDLK_SEMICOLON; + keyMap["Semi"] = SDLK_SEMICOLON; + keyMap["Quote"] = SDLK_QUOTE; + keyMap["Comma"] = SDLK_COMMA; + keyMap["Period"] = SDLK_PERIOD; + keyMap["Space"] = SDLK_SPACE; + keyMap["BSpace"] = SDLK_BACKSPACE; + keyMap["Backspace"] = SDLK_BACKSPACE; + keyMap["BackSpace"] = SDLK_BACKSPACE; + + keyMap["Tab"] = SDLK_TAB; + keyMap["BackQuote"] = SDLK_BACKQUOTE; + keyMap["BQuote"] = SDLK_BACKQUOTE; + keyMap["CapsLock"] = SDLK_CAPSLOCK; + keyMap["Caps"] = SDLK_CAPSLOCK; + + keyMap["Up"] = SDLK_UP; + keyMap["Down"] = SDLK_DOWN; + keyMap["Left"] = SDLK_LEFT; + keyMap["Right"] = SDLK_RIGHT; +} diff --git a/src/config/reader.h b/src/config/reader.h index 672b6da..eb13cbc 100644 --- a/src/config/reader.h +++ b/src/config/reader.h @@ -21,11 +21,14 @@ #include #include +#include -typedef std::map keyMap; +using std::string; + +typedef std::map inputMap; /// ***** Header Methods ***** -void readConfigs(keyMap*); +void readConfigs(inputMap*); #endif // READER_H -- 2.10.2