Use network audio players for a whole-house music solution
Don't let the low cost fool you. Using LinuxMCE and low-cost audio players like the SqueezeBox from http://slimdevices.com you can build a whole house solution that has better sound than the high-end solutions, is more flexible with effectively unlimited zones, is more expandable, requires no proprietary wiring, and costs a fraction of the price.</p>
How to set it up
Turn on the SqueezeBox 2 and using the manufacturer's remote select whether you are going to connect via Wi-Fi or LAN, as per their instructions, and then choose that it will get an IP address from DHCP. That's it. The Core should automatically recognize the device, configure it, install the software, and display a message on all the Orbiters asking you what room it's in.
How to use it
From any orbiter select the room the squeeze box is in and play music like normal. To play the same music in multiple areas, start playing it in one room and click the "Media Map" button on the Orbiter; the left-most media button with the picture on it. You will see a list of all the media playing in the house, and a map with all the zones. Touch all the zones in which you want the media, and then touch the media stream you want to play in those zones.
In the Device Template for the Squeeze Box are the range of known Mac Addresses for those devices. When LinuxMCE's dhcp monitor sees an IP request from a device in that range, it adds the device, and if not already installed, adds a Slim Server Plugin for the DCERouter and a Slim Server Streamer device. It knows to do this because the Squeeze Box device is dependent on those 2 devices, as specified in the DeviceTemplate_DeviceTemplate_Related table. The Slim Server Plugin (src/SlimServer_PlugIn) is a standard DCE plugin that registers with the Media Plugin. It tells Media Plugin what types of media it knows how to handle and what devices it represents. Media Plugin will call it when it needs it. The Slim Server Streamer device (src/Slim_Server_Streamer) is the actual DCE wrapper for Slim Device's slimserver. It creates the appropriate configuration file based on the SqueezeBoxes in the home and spawns a slim server. The Squeeze Box devices themselves are not DCE Devices; there is no software that is run for each box. The slim server is responsible for controlling the squeeze boxes using it's internal mechanism.