I wanted to do an in-depth video this week to celebrate our 3rd anniversery, but a failed NAS and my workstation on round-the-clock data reconstruction and recovery duty for the past 3 days has kept that from happening. So instead I taking the time to hammer some stuff out on the KB once again.
So issues have been becoming apparent over the last couple weeks that relate to Windows' increasingly strict driver signing requirements coupled with aging certificates for the also aging SCP Virtual Bus Drivers that we use to make all the magic happen. There isn't much I can do about it at this point as Microsoft has made a very hard line on not wanting "untrusted" drivers on their OS's anymore. I am fast tracking implementation of Benjamin's newest ViGEm release which has all the new signing and certs required, but am in a bit of a stand-still until the aforementioned data recovery is complete.
Current In Progress Work
Work continues on IM 1.7's ability to theme. Many controls in the WPF framework are poorly written (imagine that Microsoft) to the extent where they do not make proper use of their own color dependency properties, so I am creating custom styles and control templates for basically all the primitive controls and incorporating the properties in a way where that if you change the color it will actually change the controls color in a manner that makes sense. It's tedious work in some areas but required because unless everything themes together, the whole experience or look just kind of falls apart.
I have also almost completed laying the framework for the new interfaces and library needed to turn IM 1.7 into an expandable plugin driven application. My goal is to merge the plug-and-play nature of IM 1.6 and the upgrade-ability and freedom of IM 2.0 into a platform that can be used for I/O device mapping for years to come. IM 1.7 pre-defined controller layout is the key to making this work and provides default or custom mappings for all devices unlike IM 2.0 which required manually creating a mapping for each button and stick prior to being able to use it.
One thing that I have been interested in doing since the start of IM was to create some sort of cloud functionality or a user created repository of profiles, mappings, macros for various game titles. This began in 1.5 by incorporating an API into IM known as TheGamesDb.net, but work quickly grinded to a halt after discovering just how unstable and unreliable the API was. But background work has been in progress since then to keep the hope of a "online" aspect of IM alive. Once such task involved shifting all IM data serialization including settings, profiles, etc into JSON, a format that is easier to use in both .net and php and also slightly more compressed than the previous XML. I have also experimented with using GiantBomb's excellent API coupled with caching on our own server to provide the base game meta data that user contributed profiles can be attached to with encouraging success. I still see an overall need and use for a user to be able to within IM, select a game that may have complicated bindings such as the Witcher, and instantly see top rated user contributed profiles and apply them with no advanced IM knowledge on the users part.
I spoke of bringing input and output plugins into IM 1.7, but I would also like the option to still have advanced mapping "connectors" and plugins in IM 1.7. This is a goal that will be several revisions in the future of IM 1.7, but not too far away. IM 2.0 made some pretty cool things achievable through its advanced mapping capabilities but the polish and UI was alwayse lacking and fell short of what I was capible of writing and envisioned. But thanks to some digging and suggestions from the community I have found a control that I think will help enact what I envisioned IM 2.0 advanced mapping being able to do. The answer is a control called NetworkView. The basic benefits would be a more visually appropriate representation of how mapping in IM works as well as adding the ability to map to and from individual parameters and properties of individual logic nodes.
Continued Support of the Community
The support so far of the IM community has been great, and is the single deciding factor for why this project is still going when others have ceased development. As some of you may know if you follow any major YouTube channel, we certainly dont count ourselves as major, earnings for YouTube creators has nosedived for various reasons. While again we are not major, and we never made enough on YT to keep this whole project afloat, the money we did earn took a decent enough chunk out of the base monthly goal to ensure that the lights (ie servers) alwayse stayed on. AdSense does not allow me to disclose exact earnings, I can say that even though my viewer numbers are up, YT income has dropped from "taking a decent chunk out of monthly costs" down to "barely enough for 1 cup of coffee a month". Because of this the ad's on YouTube are doing more harm than good and as of my next check-in video (which was supposed to be this one) I will be de-monitizing future videos. But as I take away ad's, I also want to in the near future vastly expand our online video content to include development tutorials (much as I did with early IM 2.0), application tutorials, Q&A's, support videos etc etc etc. While I never started IM to "make money", I have alwayse operated under the model of wanting to break even with project expenses and possibly pay for a beer or two on the rare occasion I have time for such luxuries ;-) So as soon as I have set thing up, my plan is to branch our contributions into 2 categories. First will be the general expenses and project donations just as we have now. Second will be a Patreon that I am in the process of setting up that will be solely for video content. Now to get one thing clear off the bat, the videos I create will NOT be limited to just being accessible by subscribers meaning you can access the tutorials even if you have not ever donated a single penny, and I am also alleviating any concern of double dipping in the communities generosity by having the same $2 reward in Patron as I do in our donations, and that is $2 gets you ad free software forever. I am still setting it up and adding details and info, but our patron page can be located at: https://www.patreon.com/InputMapper.
Thats it for this week, sorry for all the tech issues going on here that resulted in a big wall of text instead of looking at my ugly mug for 15mins, I hope to have those issues resolved soon ;-)