by Presto » Feb 20, 2004 @ 9:13pm
I've brought up the non-standard values for keys a few times before... Usually the solution is just "provide a keymapper".
I'll use the wonderful Axims as an example. [/sarcasm]
On the Axim X5, GetKeyList returns as default:
vkA - Leftmost Key
vkB - MidLeft Key
vkC - MidRight Key
vkStart - Rightmost Key
On the Axim X3, it returns as default:
vkA - MidLeft Key
vkB - MidRight Key
vkC - Rightmost Key
vkStart - Leftmost Key
On the h1910, GetKeyList returns as default:
vkStart - button in the center of the d-pad
It's all pretty nuts. Even the same manufacturer returns different values. Of course, with the different button configurations coming out (like buttons wrapped around the d-pad), you can't rely on button placement.
So anyway, if you're going to use the buttons, you really have no choice but to include a keymapper. The only alternative would be to intercept the value, compare it to a master device/keycode list, and send an alternative value to ButtonDown() and ButtonUp() (like BUTTON_A, BUTTON_B, etc). But nobody's going to build a master list and do that, because it would be obsolete when the next device came out.
-John