Hello all,
I posted this update (more or less) over on the
HTPC forum at AVS:
Sorry for my absence for the past few days but I've been doing a fair bit of research into how best to go forward with Glissando. To now I've been modifying Web Remote to consume and produce the XML that Glissando needs to function. So far it's been working fairly well. But there are a few restrictions and issues that may limit the usefulness of continuing to modify Web Remote. As a result I've been looking into alternate approaches.
One would be for me to write my own MJ plugin in C|PLS||PLS|. Now, C|PLS||PLS| has always been, IMHO, an absolute horror to work with. So far in my career I've been able to avoid having to touch it; instead I've concentrated on Java. So obviously writing a plugin in C|PLS||PLS| would not be my preferred course of action.
Another choice would be for JRiver to enable access to the MJ Automation APIs via an outside application. I'm not up on COM and its advantages/limitations, but apparently this would not be an easy task so it's not likely to happen.
A third choice would be for me to rewrite my Java XML server (Intermezzo) in C# .NET. as a Media Jukebox plugin. C# has full access to Windows' capabilities - including COM support - and it's frighteningly similar to Java. The catch here is that MJ would need to be ".NET aware", and would require the .NET framework on the same machine, apparently a 20 MB download. .NET support is probably a good move on JRiver's part but won't really be necessary for quite a while.
So there you have it. None of the choices outlined above are likely to happen. I've received inklings of another approach JRiver is considering that would render all of the choices above unnecessary. Of course, they are just inklings and as such can't be considered in the short term. So that leaves me in an interesting position...
What I'm thinking of doing is continuing work on Web Remote despite the issues and restrictions, at least until the inklings are reality. These restrictions would be as follows:
1) Only one XML client (e.g. Glissando) at a time could connect to Web Remote. If another client connects - even if it's just a web browser - all XML clients are disabled and need to reconnect, which would involve stopping and starting the client.
2) In order for cover art to be displayed in Glissando you'll need to have the images available via a web server. These images may be copies of what's already in the MJ database (an exact mirror-image, in fact), or, if the web server's running on the same machine as MJ, may be served from the same place as MJ stores them. I'll make Web Remote return a URI instead of a file system path, which is currently what's provided to Web Remote from MJ. Glissando would then construct the appropriate URL and retrieve the cover art via HTTP.
Both of these restrictions are due to socket and threading issues in the current Web Remote. Matt & co. have committed to fixing these problems but I can't ask them to spend much time on this little plugin while Media Jukebox development itself is consuming almost all of their waking hours. They're not a big company, after all.
I'll keep everyone updated on the current state of affairs. In the end we'll still have a pretty good remote interface to our media collections.