Here is a conceptual diagram of my phi_prompt user interface library:
The code has been updated for arduino 1.0 and I added support from phi_interfaces
for the library to use combination of any input hardware. It's just the documentation. I wish I had more time. Hope to release the new library version in a week or so.
I've added one more device to my phi_interface, a 2-axis joystick as an 8-directional keypad
You can just sense it with getKey() or read its analog position.
I'll use this thread to post newest development of this library. I think it's awesome for generic interface constructions. On the other hand, if you want to detect two keys held together or the like, it's not your library.
The physical layer that does the input sensing is also discussed here:http://arduino.cc/forum/index.php/topic,85557.0.html