This is my first post here on the forums. Just to introduce myself, I'm a student at the University of Iowa that recently got Joystick Mapper. While I thoroughly enjoy this application, I have an idea that I believe could greatly extend the usability of this already fantastic app.
Joystick Mapper should allow users to enable/disable presets through globally-accessible, user-defined hotkey combinations. Doing so would allow users to turn on/off features (such as mouse cursor control) right from their joysticks/controllers.
My primary motivation for requesting this feature is because I use OpenEmu to play N64 games. As I often display my games on my TV monitor, I leave my laptop lid closed. Because my laptop lid is closed, it's easiest to control the mouse cursor through my N64 controller and Joystick Mapper. However, once I load a game in OpenEmu, moving the cursor forces the cursor to go from hidden to visible (distracting from gameplay), regardless of any other system settings in play (like Cursorcerer.) As I need the analog stick to control the game, it would be easiest if I could disable the preset that allows cursor movement from the controller itself after selecting the game and reenabling it after being done with play.
This could be easily accomplished by allowing the user to set globally-accessible hotkey combinations to toggle a given present on/off. The user could then create a master preset with these key bindings and use this preset to toggle the first preset on/off.
This would be easy to implement by just allowing the user to set the enable/disable hotkey within a given preset's "Edit Preset" widow. Mac OS X system hotkeys combinations should be reserved from use. Also, the same combination should be able to be used for multiple presets. (And multiple hotkey combinations could theoretically be used for a given preset to allow the users to enable/disable by tag or other set preference.)
It's important that these hotkeys be globally available, even if Joystick Mapper is not the active app. If this is not possible within the current app, a .prefpane could be used to ensure that these hotkeys are globally accessible. Although use of a prefpane could possibly make it difficult to get an update onto the App Store. (If a prefpane is required, it could potentially be made available as a plugin on the website or forums.)
Let me know what you all think of this suggestion. I'd imagine that this would be relatively quick and painless to code and could greatly increase usability.
One could also implement this by allowing users to enable/disable presents through bindings within the "Edit Preset" window. Instead of" Mouse Motion", "Keyboard key", etc, one could select "Toggle Preset" (as a new binding type), and then select the individual preset from the accompanying dropdown menu. This would be simpler and would only take a few minutes of coding.
Allowing hotkey combinations has the advantage of allowing users to set more unique, less frequently used key combinations to toggle presets. (For example, I'd probably use something like D-Pad Up, Left Trigger, Right Trigger mapped to Cmd-Alt-4 to toggle the preset that turns cursor control on/off.) Implementing this feature through bindings only allows a single key to do the toggling, and during a game this is likely to be accidentally triggered . Unless the ability to require multiple inputs to be pressed simultaneously to start a given action were implemented for key bindings, this couldn't be implemented with the same effect.