Teddyboy wrote: ↑Mon Feb 08, 2021 8:46 pm
you should consider providing preconfigured profiles for your supported players along with a CMC MCE remote profile ... The default profiles should always remain static out of the box, and any modifications to those profiles would be saved to another new profile and you’d tell cmc to use that one for that player etc.
That's a really good suggestion. I'm struggling a bit figuring out how to actually implement this. For the default static profiles, I want those to be added to in the future by users, so static in principle, but actually creatable/updatable via manual edits outside the software.
I'm thinking I can come up with the base config for each profile and save it in a file called a "template". You can add a template, or add an end-user configured profile. If you add a template, then any changes get saved as a profile. I've never done anything like this before, which is why I'm having to think a bit harder about how to do this right.
Teddyboy wrote: ↑Mon Feb 08, 2021 8:46 pm
Hard coding is fine for now to test functionality, but you should switch to developing the app to use profiles once you’re satisfied with how it works. Keep the scope to just CMC and CMC supported player control.
For the most part, I'm already extremely happy with how it works, proof of concept is 110%. From doing this a few too many times, I know that hard-coding now only to replace it with a proper parameterized solution later is closer to double the work. So I'm spending a few extra hours daydreaming and sketching out the solution now, so that with just a little bit extra effort I come up with a more complete solution from the get-go.
Teddyboy wrote: ↑Mon Feb 08, 2021 8:46 pm
In my view this is eventghost light.
True. But for how long? I'm already anticipating the follow-up requests:
- Can you add the ability to issue WoL Magic Packets on Startup? (already requested and planned)
- Can you add the ability to launch programs with a button outside CMC (already implemented)
- Can you add the ability to run routines on startup?
- Can you add the ability to run a command/macro/script when the mode changes to a new profile?
- Can you add support for a scripting language?
- Can you add a way for me to control my home lighting via the remote?
- Can you add Macro support?
- Can you add a Function button, where if I press button C, then the following button pressed does a different action than normal
- Can you add a long button press modifier to perform a different action
Ok, yeah, some of those are my own requests... hehe. And some have come from users over the years. I think all are legitimate ideas, and I'm trying to keep these in mind now as I go through initial design efforts. Even if I don't implement a feature now, it's smart for me to account for them in my design now, so they can be easily implemented in the future.
For example, the long button press is a feature in Event Ghost. This is something I hadn't even thought about, but after seeing that feature in EG I realized it would be rather easy to implement. In my MCEIR Windows Service, I'm currently filtering out the "Button Released" action, as in my original code it was showing as a double button-press. Instead of filtering it out, I probably need to capture both the press and the release. I can send both actions to the SysTray service, instead of just the press. And at some point in the future, I can more easily expand the SysTray service to do different actions for the length of the button press. That also means I need to provide a way to configure the length of time for each button press to switch between short (normal) and long presses.
In fact, it makes sense for me to design all this now, as otherwise all these "profiles" that get created could be made worthless and have to be recreated to support these capabilities in the future.
On a separate note, I'm a little concerned that my sole focus on MCE IR is giving me a blind spot with regards to other remotes. I'd hate to do a ton of design work only to find out later that to support Hauppauge remotes requires a major change. My concern is probably overblown since I would probably be creating a separate Windows Service for each remote control type, and in my service I could map those buttons to what I'm considering the "gold standard" MCE buttons. I've also set it up so that my SysTray service knows which service sent the button presses, so if buttons come from HPPGE instead of MCEIR, I can do different remote specific processing there too.
Teddyboy wrote: ↑Mon Feb 08, 2021 8:46 pm
Time to put that fancy upgraded compiler/IDE you recently got to good use now!
While I'm very happy with the compiled code being output, the new IDE has been very frustrating. There seems to be a lot of broken functionality, and it is very sluggish and glitchy. At this point, I'm committed to using this version, so I'm just hoping for some relief from some patches.
Teddyboy wrote: ↑Mon Feb 08, 2021 8:46 pm
I did put in a request to Brian to provide a switch in the API to turn off dune file path validation during export.
Thank You!!!! I just responded to your post as well. If any other CMC+CCC users read this, I encourage you to chime in too: