using std::ifstream;
using std::string;
-char* configDir = "../configs/";
+typedef std::map<string,SDLKey> 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];
/// ***** Private Methods *****
-void processLine(const string& str, keyMap* map)
+void processLine(const string& str, inputMap* map)
{
string name;
string value;
if(extracted)
{
+ //map->insert(name, value);
cout << name << endl;
cout << value << endl;
}
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:
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;
+}