Quote Originally Posted by chronozphere
I am using a similar system, which supports both buttons and axises (what is the english plural for axis ?). Axises can be used to handle mouse coordinates or analog sticks on a gamepad. You can Bind and Unbind certain keycodes (or axiscodes) like N3DKEY_ESCAPE or N3DKEY_SPACE to a slot with a number between 0..31.
In consequence, you can call KeyState(Slot) or AxisState(Slot) to retrieve a keystate (Press, Pressed, Release, Released) for the key's or a Float value between 0..1 for the axises. Finally, the module can also handle text input.

My system is based on DirectInput, but I might make a similar system with SDL in the future.

You're code looks good, but I don't need it ATM.
That's fine, I wasn't expecting anyone to suddenly use it, LOL!

Yours sounds neat...any code snippets you could share?

BTW, I believe the plural for axis is axii

cheers,
Paul