[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] PATCH: Pass keyboard scancodes to Python


I've recently written a few apps with pygame, and noted that the multimedia keys on my keyboard produce a keycode of 0 in keydown/up events. This patch also passes the OS-dependent scancode for the key into Python. Though not useful for identifying keys generically, it could be useful for allowing you to set a per-machine or per-user key binding. Right now, I'm using it with Freevo to bind the volume up/down keys on my keyboard.

diff -ur pygame-1.7.1release_orig/src/event.c pygame-1.7.1release/src/event.c
--- pygame-1.7.1release_orig/src/event.c        2005-08-15 07:11:40.000000000 -0400
+++ pygame-1.7.1release/src/event.c     2007-03-19 21:46:10.000000000 -0400
@@ -250,6 +250,7 @@
        case SDL_KEYUP:
                insobj(dict, "key", PyInt_FromLong(event->key.keysym.sym));
                insobj(dict, "mod", PyInt_FromLong(event->key.keysym.mod));
+               insobj(dict, "scancode", PyInt_FromLong(event->key.keysym.scancode));
        case SDL_MOUSEMOTION:
                obj = Py_BuildValue("(ii)", event->motion.x, event->motion.y);

Thanks, --Quentin