diff options
Diffstat (limited to 'scripts/gen_keys.py')
| -rw-r--r-- | scripts/gen_keys.py | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/scripts/gen_keys.py b/scripts/gen_keys.py index 5a2e8f7f..e8f206c3 100644 --- a/scripts/gen_keys.py +++ b/scripts/gen_keys.py @@ -7,6 +7,10 @@ lines = [line.strip() for line in file(glfw).readlines()] # genereate keys.h file f = file("src/engine/e_keys.h", "w") +keynames_sdl = [] +for i in range(0, 512): + keynames_sdl += ["&%d"%i] + keynames = {} KEY_MOUSE_FIRST = 256+128 KEY_MOUSE_WHEEL_DOWN = KEY_MOUSE_FIRST-2 @@ -15,9 +19,9 @@ KEY_MOUSE_WHEEL_UP = KEY_MOUSE_FIRST-1 print >>f, "#ifndef ENGINE_KEYS_H" print >>f, "#define ENGINE_KEYS_H" print >>f, '/* AUTO GENERATED! DO NOT EDIT MANUALLY! */' -print >>f, "" print >>f, "enum" print >>f, "{" +print >>f, "#ifdef CONFIG_NO_SDL" # do keys for line in lines: @@ -60,12 +64,45 @@ for line in lines: # add to keynames exec("%s = %s" % (key, value)) exec("keynames[%s] = '%s'" % (value, key)) - print >>f, "\tKEY_LAST" + +print >>f, "#else" + +highestid = 0 +for line in open("scripts/SDL_keysym.h"): + l = line.strip().split("=") + if len(l) == 2 and "SDLK_" in line: + key = l[0].strip().replace("SDLK_", "KEY_") + value = int(l[1].split(",")[0].strip()) + print >>f, "\t%s = %d,"%(key, value) + + keynames_sdl[value] = key.replace("KEY_", "").lower() + + if value > highestid: + highestid =value + +print >>f, "\tKEY_MOUSE_1 = %d,"%(highestid+1); keynames_sdl[highestid+1] = "mouse1" +print >>f, "\tKEY_MOUSE_2 = %d,"%(highestid+2); keynames_sdl[highestid+2] = "mouse2" +print >>f, "\tKEY_MOUSE_3 = %d,"%(highestid+3); keynames_sdl[highestid+3] = "mouse3" +print >>f, "\tKEY_MOUSE_4 = %d,"%(highestid+4); keynames_sdl[highestid+4] = "mouse4" +print >>f, "\tKEY_MOUSE_5 = %d,"%(highestid+5); keynames_sdl[highestid+5] = "mouse5" +print >>f, "\tKEY_MOUSE_6 = %d,"%(highestid+6); keynames_sdl[highestid+6] = "mouse6" +print >>f, "\tKEY_MOUSE_7 = %d,"%(highestid+7); keynames_sdl[highestid+7] = "mouse7" +print >>f, "\tKEY_MOUSE_8 = %d,"%(highestid+8); keynames_sdl[highestid+8] = "mouse8" +print >>f, "\tKEY_MOUSE_WHEEL_UP = %d,"%(highestid+9); keynames_sdl[highestid+9] = "mousewheelup" +print >>f, "\tKEY_MOUSE_WHEEL_DOWN = %d,"%(highestid+10); keynames_sdl[highestid+10] = "mousewheeldown" +print >>f, "\tKEY_LAST," + +print >>f, "\tKEY_DEL=KEY_DELETE," +print >>f, "\tKEY_ENTER=KEY_RETURN," +print >>f, "\tKEY_KP_SUBTRACT=KEY_KP_MINUS," +print >>f, "\tKEY_KP_ADD=KEY_KP_PLUS," +print >>f, "\tKEY_ESC=KEY_ESCAPE" + +print >>f, "#endif" print >>f, "};" print >>f, "" print >>f, "#endif" -f.close() # generate keynames.c file @@ -76,6 +113,7 @@ print >>f, "#include <string.h>" print >>f, "" print >>f, "static const char key_strings[512][16] =" print >>f, "{" +print >>f, "#ifdef CONFIG_NO_SDL" for i in range(0, 512): n = "&%d"%i if i >= 48 and i <= 57 or i >= 65 and i <= 90: @@ -83,7 +121,12 @@ for i in range(0, 512): elif i in keynames: n = keynames[i][4:].lower().replace("_", "") print >>f, "\t\"%s\"," % n +print >>f, "#else" +print >>f, "" +for n in keynames_sdl: + print >>f, '\t"%s",'%n +print >>f, "#endif" print >>f, "};" print >>f, "" print >>f, "const char *inp_key_name(int k) { if (k >= 0 && k < 512) return key_strings[k]; else return key_strings[0]; }" |