Alrighty, I've started on this little project and I wanted to give those of you who might be waiting on it some info:
1) This library will find ALL controllers (including mice and keyboards) so I am working on a method for registering the controllers that will work similar to the Video library's Capture class. i.e. list the controllers then pass a String identifier to the constructor to make a Controller object for that specific controller.
2) Like the JOGL library, this one will not be distributable. This is because there is a hardware-specific plugin that JInput uses to communicate with the OS to find registered controllers. On the plus side, there are plug-ins for Windows, Linux, and MacOSX... they just don't coexist nicely. I may be able to find a way around this eventually, but I will probably not spend time dealing with this at the outset.
3) Installation may be a little strange. The JInput plug-ins have to be placed in the application's root directory (processing-XXXX/) to work. I've been trying to find a way around this so that I can package the plug-ins in the .jar, but the they're being downright cantankerous.
4) Like JOGL, JInput likes to be verbose, especially at startup. Casey and Ben... did you ever find a way to catch the unsolicited output, or are we stuck with it? (here's a sample of what to expect)
Code:Scanning jar: dxinput.jar
Examining file : META-INF/
Examining file : META-INF/MANIFEST.MF
Examining file : net/
Examining file : net/java/
Examining file : net/java/games/
Examining file : net/java/games/input/
Examining file : net/java/games/input/DirectInputAxis.class
Examining file : net/java/games/input/DirectInputDevice.class
Examining file : net/java/games/input/DirectInputEnvironmentPlugin.class
Found candidate class: net/java/games/input/DirectInputEnvironmentPlugin.class
Adding class to plugins:net.java.games.input.DirectInputEnvironmentPlugin
Examining file : net/java/games/input/DirectInputKeyboard.class
Examining file : net/java/games/input/DirectInputMouse$BallAxis.class
Examining file : net/java/games/input/DirectInputMouse$BallImpl.class
Examining file : net/java/games/input/DirectInputMouse$ButtonImpl.class
Examining file : net/java/games/input/DirectInputMouse$ButtonsImpl.class
Examining file : net/java/games/input/DirectInputMouse.class
Examining file : net/java/games/input/DirectInputRumbler.class
Creating AIRFLO polling = false
Mouse Mouse
Keyboard (Keyboard)
AIRFLO AIRFLO
I only asked for the following to be output:
Code:Mouse Mouse
Keyboard (Keyboard)
AIRFLO AIRFLO
Alright, I'll post more when I've made a bit more progress.
--- EDIT: Afterthought ----------
By the way, I'll take suggestions for the name of the library. Right now "Oz" is the best I've come up with. Can you do better? Right now the only exposed class name is "InputController". Sorry, "Controller" conflicts with the JInput class of the same name.