I have used a free app called Radiator in the past that supports a wide variety of FM tuner cards. It also has an SDK and several plugins developed for it. See below for a link to it and its plugins page. I have previously controlled it from the command line, girder, etc. I don't know if this would work, but I figured I would mention it.
(I tried to post links, but the board wouldn't let me since I have less than 5 posts. You can search Google for "radiator radio" and it should be the first or second link at flesko.cz.)
I have been using your app for several weeks now and love it. Thanks a bunch for putting it together. I really like the idea of being able to browse playlists and look forward to that feature being added.
One other thing I would love to have would be the ability to browse by Genre (Rock, Country, Classic, Blues, etc) like we do Artist now. I find that usually I am in a mood for a particular type of music rather than a particular artist anyway. I know that you can configure a view by Genre grouping as an option within JRMC, but I believe that only browsing by artist is available from the keypad using your app, correct?
Lastly, I was originally using Girder by way of Netremote to control my Russound wirelessly with my PDA. With it, you can use your PDA to control zones, select sources, setup playlists, view album covers, lyrics, etc... My only problem is that the Russound only has one RS232 port (that can be active at any one time). I currently need two, one for your app, and one for Girder. Do you know of a way to connect multiple serial channels to the Russound? I considered using a splitter, but I don't know if the Russound protocol can handle multiple devices controlling it over the same channel.
Another option would be for your app to relay commands to the Russound from either a socket connection or a web interface... that would open up many possibilities. I am assuming these would also be possible with the API you mentioned previously.