I actually going to use JInput having spent a long time writting for it
I'm trying to come at the input layer from a user perspective, rather than a tech perspective.
I've played a number of games in my time, and they all differ slightly in the input setup. X-Plane got me thinking though (i know, it doesn't happen very often).
X-Plane lists your joystick (I guess it lists more than one, I only have one plugged in), and the axis and buttons on it, and has visible representations of the state, ie, axis are show as like a status bar with the position of the axis on it, buttons are show to be up or down. You can move/press any of them at any time and see them move. The axis have a drop down next to them so you can select an action, and the buttons when selected show what action they have assigned.
In my system I'm thinking of having the ability to wrap pairs of keys to increase/decrease an axis too, so you can play keyboard only, or assign buttons on your gamepad/joystick to increase or decrease a value.
I'm thinking of having one tab per device so that one screen doesn't get too cluttered.
Underneath, I'm not sure what to do. I like the idea of the game knowing about a control, and that control underneath maps it's value to the input's value however that is done, either on/off, or toggle, or an axis value.
How have other people done their input system, what things have people learned to do or not to do, what works and what doesn't.
All input welcomed.