In January, 2002, I happened apon a decent deal on the SonicBlue Rio Receiver.
The Rio Receiver is a Linux-based set-top box that uses the StrongARM processor. It is essentially identical to an empeg car audio unit, but is meant for home use. The major difference is that there is no internal storage, and it attaches to an ethernet LAN or an HPNA (phone jack) network. The application that runs on it only supports Windows Media and MP3, is monolithic, and the source isn't available for extension. This was unfortunate, as most of my digital audio collection is encoded as Ogg/Vorbis. I knew this when I made the purchase, and fully intended on writing a replacement software package for it. Since it runs Linux, development is pretty straightforward other than the size constraints, as the Rio Receiver only has 4MB of RAM, with about 2.5MB usable for an application. It also loads everything over the network, so using a different application is simply a "drop-in" replacement.
This site is dedicated to my development efforts. I'll post code as it becomes usable, and gladly accept reasonable changes from anyone interested in assisting.
Initially, I developed the application right on the Rio Receiver, using a TCP socket for a text output device. As the code grew more complex, and bugs needed squashing, this method became clearly less suited for debugging.
So, I decided to write an emulator of sorts. It doesn't make any attempt to be a general purpose emulator for the Rio Receiver. Rather, with application support, it acts as an "alternate I/O path" for the display, panel, and infrared remote. The applications are two separate programs, so code developed for the emulator can be used on the Rio Receiver without much modification. Really, the only changes required are those that depend on hardware-specific ioctl() calls, such as those used in controlling the display. So far, no audio output support has been implemented. I've spent most of my time concentrating on the development of a GUI interface framework, and then some basic audio property management support -- like volume, balance, etc. Some screenshots of the emulator are available at http://www.csh.rit.edu/~jeffm/gallery/rio/