
This could be very simple: see test-publish example. The equipment that you’re going to need for this Raspberry Pi music player is listed below.

This means you can keep it on 24/7 and easily turn on music when you feel like listening to some cool beats.

You should be able to hit the ground running if you start with that. Take a look at the BinaryLight example: It implements a BinaryLight Device that contains a SwitchPower service with several methods and two state variables (properties). It's based on glib and libsoup and allows you to fairly easily define and implement your own UPnP services. It's a very modular framework so you don't need to load or use any of the multimedia related things if you don't need them.

For the RPi side I would suggest GUPnP as long as you can fulfill the dependency requirements.
