DeveloperGuide
From SqueezeboxWiki
Contents |
Plugin Guide
Lots of people are always asking about how to write a plugin and are pointed to the documentation that comes with SlimServer (under help/Technical Information). That's fine, but I hoped that if we put it online, it could grow from a static help document to a dynamic tutorial of some sort. So I have cut and pasted it below (I hope thats ok!) with the idea being that it can be edited, commented and grow.
- PluginIntroduction
- PluginPerlModuleBasics
- PluginHooks
- PluginModes
- PluginFunctions
- PluginLines
- PluginSettings
- PluginStrings
- PluginWebInterface
- PluginScreenSavers
- PluginSummary
- PluginAPI <-- possibly outdated
NOTE:
Plugins made for server version before 5.0 need to be updated using whack.pl, included in the tools directory of the Subversion version of server 5.0 and higher. Syntax for this command is:
whack.pl myplugin.pm...
This will rewrite myplugin.pm (and any other specified files), leaving a copy of the script in myplugin.pm.old, to use the new module layout.
Commented Samples.
Feel free to add any other tutorials/examples:
How about some PluginIdeas. Have some ideas? Need a plugin?
Protocol specs
The Squeezebox Server install help pages contain a couple of useful reference documents. I have copied them here for ease of referal. Since these documents were last updated the Slim TCP protocol has grown, furthermore the Slim TCP Protocol document descibes the messages passed but not the context that they are passed under. The additional pages hereafter are my attempt to help explain this aspect of the protocol.
As with all Wiki content, please feel free to correct any errors or add further flesh to the pages. Note that I (Neil Horlock) have no direct contact with Slim Devices and as such this is written based upon my own voyage of discovery while writing a simple client.
Packaged documentation (as of version 6)
- SLIMP3ClientProtocol - The old (deprecated) SLIMP3 UDP based client protocol.
- SlimProtoTCPProtocol - The newer TCP based protocol used by all recent Slim devices and SoftSqueeze.
- SlimProtoDeveloperGuide - Additional information for developers who want to know a little more about the interaction between Squeezebox Server and a modern TCP based client.
General SqueezeCenter Development Guide
Patches welcome.
The source code is available via public Git repository
This contains many versions and branches, most of which are not of interest for new work.