PDA

View Full Version : Slim or SqueezeDevice Development



JBrett
February 3rd, 2009, 08:51 PM
I am working on a SlimServer/SqueezeBox plugin for both MediaBridge and Girder.
My first goal is to make the Logitech remote work as a NetRemote remote, (through a Girder plugin for various reasons). I will be creating a SourceForge.net project for my progress, if anyone is willing to help it would be GREATLY appreciated. I will be using C# and the latest .NET as possible (to keep in compliance with MediaBridge)
I will update this message accordingly, look for updates.

The source (not yet a working copy, and is being released under the GNU General Public License) for the project can be found at:
https://satyr.svn.sourceforge.net/svnroot/satyr/Silenus

Thanks,
Brett

Ron
February 3rd, 2009, 10:26 PM
That's an interesting approach. How freely programmable is the slim devices remote?

JBrett
February 4th, 2009, 04:57 PM
The remote (Squeezebox Controller) runs SqueezeOS, which is just embedded Linux, and SqueezePlay (the application), both of which are open source. It is completely programable, a quote from the wiki "It's fully hackable and you can install applets written by the community. " I'm chosing to leave the remote in tact (for now) and re-work the server, for one, because I am more familiar programing in Windows, and two, so that I can continue to use the remote with the real server software.

JBrett
February 12th, 2009, 07:58 PM
Ron,
I ran into a slight snag and hope you can point me in the right direction. For a little background, currently the dev is a completely stand-alone executable, basically mimicking MediaBridge, but just for communication with the SqueezeBox Controller. To interface with the media player I am borrowing MBPlugin, and (for testing) WMPPlugin.

My issue comes from the WMP Plugin being a caching plugin. At first I got a "File Not Found" exception, but traced that back to the lack of a "cache.mdb" in my executables directory. I copied the one from the MB directory and everything launched without an exception. But now I am trying to query albums (with FillGAC) and I am not getting any items returned. I attributed this to the cache being empty, so called MBBridge.RefreshCache() and now I have another "File Not Found" exception that I can't seem to trace back with FileMon. I see the cache.ldb file being created so the plugin seems to be hitting cache.mdb. I also tried copying all the MB files into my executables directory with no help. And, just to note, if I use my SatyrPlugin, (it is not a caching plugin) FillGAC returns perfectly (obviously I don't call RefreshCache() for this)

Other than that the control is moving along, I have it creating "fake" Squeezebox Receivers for the MBZones (but just a single one for dev). The "Now Playing" list is popluated with the current track showing current position and time remaining, Play/Pause work, oddly there is no "Stop" (the rest of the controls are trivial, which is why I'm focusing on the library right now)

Anyway, I hope you can help.
Brett

Ron
February 12th, 2009, 09:35 PM
Can you share your source with me?

JBrett
February 12th, 2009, 10:08 PM
I just comitted the latest to SVN on SourceForge.net. The path is in the first post but should be https://satyr.svn.sourceforge.net/svnroot/satyr/Silenus. Also, note the path to my SatyrPlugin is hard keyed right now in MediaBridge\MediaBridge.cs (it was WMPPlugin.dll, but I had to move forward for now). If you want me to send it directly as a zip archive I can do that too.

Thanks,
Brett

(Actually I just attached the source, I removed the binaries)

JBrett
March 1st, 2009, 10:24 PM
If anyone is intersted I have updated the source a bit. Unitl I figure out the caching plugin problem I have taken more of a Lua path for now. It exposes some functions to Lua to control the menu options on the SqueezeController. It adds a "Girder" (for lack of a better name) menu to the main list, that in turn can call Lua callbacks that can control the menu from there, adding sub menus, sliders, or checkboxes. The code isn't in a usable form, I removed the binaries, and Girder will require locks on the Lua stack that aren't implemented yet, but general Lua console code can control the menu. There is a very small example of the Lua code in the luaSlim.cpp (at the bottom)
It is just to give an idea of the direction it is headed in, if there are any suggestions please let me know. (By the way, I realize it is a backwards approach to re-build the server side, instead of writing a client plugin for Jive to allow Girder/Lua connections, my main intention is to use MediaBridge instead of SqueezeCenter and control it with the remote)

Thanks,
Brett

Ron
March 2nd, 2009, 10:58 AM
I'll see if I can get the squeezecenter setup here in the office....

jwilson56
March 2nd, 2009, 11:07 AM
Ron from what I can tell Squeezecenter might effectively be a replacement for JRMC for some people. I also understand that you can use Squeezecenter by itself (just the software). Electron was looking into this....

Would be great if Mediabridge could interface with it and then have NR control it....

Ron
March 2nd, 2009, 11:08 AM
Correct you can use squeezecenter (if used in conjunction with the java squeezebox all free!)

I actually do have a squeezebox here.

Ron
March 3rd, 2009, 01:03 PM
Oh man, that looks like vs2008. :( I don't have that one installed.

JBrett
March 3rd, 2009, 04:57 PM
Ron,
I moved the server side to .Net 2.0 and VS2005, I don't seem to be using anything that requires anything higher, (although I haven't confirmed it) The project builds (with the required MBPlugin.dll, etc) but, honestly, I haven't tried to run it yet. I will move the other pieces, (Lua and a test exe) later tonight, but the server is the important part.

Thanks,
Brett

aagesen
June 17th, 2009, 02:22 PM
Hi,
i have 4 duet recievers that i use with mye Homeseer and homeseer Touch setup at home. Homeseer Touch does not have the media handeling capabilities im looking for so im thinking about using both Netremote and Homeseer touch on my touchscreens.

But: How is this project comming along? Your project is my basic requirement for using Netremote...

Thanks :)

JBrett
June 18th, 2009, 06:44 PM
Sorry, but actually my project took a drastic turn that is contradictory to Girder and NetRemote. I would be happy to offer the source of the SqueezeBox portion and any advice to anyone interested however.