Framework for IM triggers mostly built, enough so that I can start working on the UI aspect to test macros and make changes as necessary. A big part of this is setting up the necessary framework to allow for late device arrival binding. What this means is if you make a macro that expects a specific controllers face button to activate it, it needs to be able to do so even if the referenced controller is not present at the time the macro is loaded into memory from the file when IM is launched. The trigger needs to detect late arrivals and test if the controller is the one it is interested in, and if it is then hook the appropriate events as needed.
Issues with the way Microsoft implements databinding and datacontext forced a unplanned re-design of the channel selection control. Figuring the best way to select items from a list would be Microsoft's very own list box with multi-selection turned on. Unfortunately though, for whatever reason, while Microsoft provides a .net control for multi selection, they offer no way to bind to the selection in a MVVM enviornment. Thanks M$... So I made my own, and after some hurdles it seems to be working well.
Some additional mapping options related to deadzone in progress as well as options to trigger a mapping depending on length of button press are on the way. Don't worry, mapping is starting to look scary and confusing but the UI will get more polish and there will be a lengthy tutorial video once things have solidified a bit more, in addition I have made sure that the default mapping options work out of the box needing no more user input than the source and destination channels to keep it simple.