This week i will talk about a project i started and i will use that to promote open source software. I have a Synology NAS at home that acts as my data graveyard. You may have found it on the site under its name “Prometheus”. I love that machine because i can use it for much more than just my data haven. It is my email server and lately it has become my audio streaming service because Grooveshark and Spotify do not offer lossless streaming yet. The thing is that, while the mobile apps are really great, for computers they only offer a player via the web interface which of course requires flash to run. I started to look around for existing clients which turned out to be a fruitless adventure. The next logical step is to write the thing myself. I thought it would be a nice learning experience to write C, C++ code and do networking stuff. Of course the first thing i did was to fire up XCode create a new project and start writing classes i thought i needed. As you can imagine the project was a mess. I had working code but it was FUBAR.
Next step, create a new clean project and *think* about the class hierarchy. I started to think about it and found some nice PHP implementation by a user called zzarbi*. With a project to squint over and my own clean project i was quite productive. The project is quite far advanced and can already be used to query information and download songs as either in MP3 or WAV. Async downloads and streaming giving me a terrible headache though.
This is my first OS project and furthermore i used it as a learning experience so it might be quite broken – but more on that on the Github readme. Use it for your own projects, improve it or do whatever you like with it. Just remember it is published under the GNU GPL V3.
The project can be found under this URL: github.com/kanakodavis/SynologyAPI
Do you have any suggestions, requests or other ideas for the API? Just leave me a comment.
*Thank you for letting me peek over to your project.
Thank you, your comment successfully submitted
your comment has been submited, it might take a while to be moderated.