This is nice info, but I would rather have a bit less "clever" and a bit more "inbuilt", it is starting to be quite a lot when you make a custom thing in MC, that calls a script, that again sends a Request, that changes a something in yet another program and also launches another program with a command line.
It depends on how you look at it. On the one hand, I agree with you. There are
certainly places where MC could be easier to use. But accomplishing that, as often as not, involves
removing functionality, not adding it. It might be "easier to set up" for a few users, but for everyone else (who isn't going to have or use any room control systems at all, which is probably 90%+ of JRiver's customers) it is just additional UI "noise" which reduces ease-of-use.
And then, there's this:
being able to easily make MC do a little group of different things as response to one input.
That's
called a script. That is exactly what a scripting language (or shell script, like a BAT file)
does. So, if JRiver implemented this kind of thing, they'd be reinventing the wheel. You'd have to learn some esoteric MC-only scripting "language" (or a GUI that "hides" the script underneath, which is almost worse) to accomplish what you want. As it is now, you can choose anything you already know: Perl, python, PowerShell, VBScript, or just shell scripting with a BAT file.
About the only reasonable way I can see that they'd accomplish this in a flexible manner would be for them to implement a Lua interpreter. That's a huge ball of wax, and... I don't know.
I want my blender to be a blender, not a blender and a microwave. Because if it tries to do both, it is probably going to be bad at both jobs. Of course, I also refuse to use toaster ovens too (for why,
see also Siracusa), so maybe I'm too far on one side of this coin.
None of this
is to say that MC couldn't be improved in some of these areas, around the edges.
One thing you can't (easily) do is launch a script in response to another user action in MC, while simultaneously doing the action in MC. So, for example, say you want to run a script that puts your home theater into Movie Watching Mode each time you launch a movie. This "Movie Watching Mode" would entail things like:
1. Dimming the lights
2. Adjusting the blinds
3. Switching the display to THX mode
But, when you launch a TV Show episode, you want to keep the display in non-THX mode and not dim the lights or close the blinds (maybe unless it is
Homeland, which you want treated as a Movie). That's pretty tough to accomplish currently.
There are a few strategies you can use currently, but by-far the simplest is to give up on "automatic". If you do this, you can add a "folder view" called "Room Control" to the top-level of Theater View, and under it you can have entries for "Normal", "Music Mode", "Movie Mode", "TV Mode", etc (each of which is a script that calls out to your room control system). But you can't have it automatically switch when you play a [Media Sub Type] = Movie, and have it switch to something else when you play [Media Sub Type] = TV Show.
A third-party plugin could do most of this, because it could detect Playstate changes and automatically issue the commands depending on what was added to (or removed from) Playing Now. That would be handy and is perfectly possible using the COM tools we have now. You can detect playstate changes via COM, and then investigate what file is playing and whatnot. That would certainly allow you to design a "if file matching
this search is played, then X, when playback stops then Y" type of system. I'd use it if someone builds it, but I'm too lazy to write it myself.
But I don't know if it belongs in the core product. This seems like it should be a plugin. If you aren't too lazy to write it, I bet you could sell it.