|
 |
 |
|
 |
One company, Nirvis Systems, sold just such a device called the Slink-e. The Slink-e connected to a PC via a serial port and included several other ports to interface with a variety of devices, including Sony jukeboxes. Also included in the cost of the Slink-e was a Windows application, CDJ, which catalogued your CD collection and provided a graphical interface for controlling the Sony jukebox — essentially an iTunes for physical CDs. The Slink-e was pricey, but I couldn’t resist the gadget factor. It was unobtrusive housed in its little black box, and the CDJ software worked fine. If the application had been a little better looking, that might have been the end of the story, but I hate using ugly software. CDJ was butt-ugly. Along with CDJ, an ActiveX component SlinkX was also included that incorporated most of CDJ’s jukebox monitoring and controlling functionality. SlinkX was provided to programmers to be the foundation of home-grown, CDJ-like programs. I started to experience a severe case of Not-Invented-Here syndrome and thus began Phase I of what was to become a multi-year project.
Phase I: Creating a CD Control Program
I began working on a Visual Basic version of CDJ. It was fairly straightforward getting simple functionality like playing and stopping working, but about 20% of the way into the project, I started to lose steam. Despite my loathing of CDJ’s interface, I felt like I was reinventing the wheel and adding no value in the process. If anything, my application would likely end up with less functionality than CDJ itself. I was also interested in controlling the Slink-e from various computers around the house so that I could select and play music from wherever, but I didn’t like the idea of installing an application on every computer to be able to do that.
I wondered if a web-based “thin-client” interface would be better-suited. The functionality of the SlinkX ActiveX object could be accessed through Internet Explorer, so I tried embedding SlinkX in a simple ASP. This resulted in the same issue of having to install software (SlinkX) on each client machines accessing the Slink-e. What I needed was a server-based application to marshall communications bewteen the Slink-e and the client machines. After researching the types of applications that can be built with Visual Basic, I settled upon creating an ActiveX EXE and running it inside of IIS, Microsoft’s web server. The ActiveX EXE would interface with SlinkX, which would be installed only on the machine physically connected to the Slink-e device.
Basically, the ActiveX EXE “wraps” the SlinkX object (in fact I called it SlinkxWrap). For each of SlinkX’s properties and methods that I wanted to use, I created a corresponding property or method in the ActiveX EXE. I also included a lot of additional logic to handle things like creating, loading and playing playlists, and reading from and writing to the database containing the CD metadata.
|
|
 |
|