I recently stumbled upon this program and it seems to be the only one out there of its kind (for free).
I do have some questions ..
1) why a web config? This doesn't seem to persist between startup/shutdown? Is this something that the author is open to change to a config with maybe even a basic UI? I'm willing to attempt to do this .. just wanted to know the rationale.
2) It seems like the meat of the UPnP server is in cybergarage software. What is this history of this? Was it another open piece of software that was copied in? Does "MS" UPnP for the 360 differ from standards based UPnP? The reason I ask is that other UPnP programs don't seem to work right .. and I wondered what secret sauce was in x360mediaserve.
I'd like to start committing patches where possible .. I'm still getting my feet wet with the code and eclipse. I used to be a pretty proficient java programmer before I switched over to .net .. so it's taking me some time to reacquaint with the tools. But so far I'm stoked that there is a linux alternative to WMP on windows!
1) The reason behind a web config is that I wanted to run it on a headless server. Unfortunately the current one was a temporary hack that just seems to have stuck since it worked ok for me. I intended to replace it with a fancy AJAX web gui but I haven't had the time. I'm definitely open to the idea of some other sort of gui as well since it would be better for a lot of users. This should be easier in the newer versions in CVS since it originally ran as a servlet inside the Jetty http server but now it has jetty embedded within it so having stuff like a Swing/SWT gui should be easier.
What do you mean when you say the config doesn't persist?
2) Cybergarage handles all the udp part of upnp which mainly involves getting detected and authenticating the 360. After this it's all standard http which is done with the Jetty webserver. From what I remember the main problems are that you have to comply with a few odd MS upnp quirks like adding ":1 : Windows media connect" to the device name. I also ran into some odd problems with the http server part, I tried a number of servers and the 360 seemed to hang up on many of them which is why I went with jetty.
1) I was wrong. The settings do persist between runs of the application ... I had run it a couple times prior and it appeared to not persist .. I was wrong though.
I like the idea of a ajax front-end. I also have a squeezebox (slimdevices.com) and they have a web front-end to their software. After rethinking my suggestion, I think what you did makes sense. It's just very bare looking. But I'd like to look into ajax anyway and maybe this gives me an excuse.
2) does including cybergarage (and the other external jars) present any kind of legal issue due to license conflicts? It looks like cybergarage uses BSD and you use GPL ...
I could care less about the licensing stuff since they are both "open" but I figured I'd ask since you probably know more details than I do.
I created a "main" class in the package net.sourceforge.x360mediaserve in order for my ease of setup for eclipse. I couldn't get it to (easily) recognize the "Run" class in it's current top level location (with no package). I won't ask for commit access for such a piddly change (and not sure how you feel about it). If I do get anything going within AJAX I'll submit the code to you and you can decide if you want to give him commit access.
About 2, I think its under the new (since 1999) BSD license which is compatible with the GPL.
Which version of eclipse are you using? I use eclipse to build it on a number of different machines and it seems to work ok if I create a project from CVS using the built in client.
I'm using 3.2.2. Like I said I'm still getting (re)acquainted with the java stuff .. but if you have some tips on how you have your environment setup (i.e. anything you changed from normal out of the box behavior).
I started reading some AJAX tutorials and am muddling around the source trying to align the AJAX with the POST/GET code.
Hopefully I have something to you! Unfortunately I have a kid, wife, and job .. so we'll see what pace I can do. But I'd love to enhance the program since I personally get a lot of benefit from it (not having to use WMP to server my mp3s that are on my linux machine).
I don't think there is anything other than needing to point to the external jars I use. I right click on the x360mediaserve folder in the cvs repos->check out as then check out as project in the work space.
I wouldn't worry about pace, I've got no time to work on it at the moment. The only other thing I can think of is that at some point (which could end up being never) I'd like to replace the classes that store the library with something better, as you've probably seen it's just a bunch of hash tables as it was all written in a rush, so it might be better to use some sort of wrapper when you need to get stuff from the database so that it's easier to transfer the interface over to it if the back end gets changed. Plus it helps whoever writes the new db stuff to know what's needed.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.