Over the last few months there have been many requests for Banshee to support Digital Audio Players (DAPs) other than the iPod. Support for the iPod was initially most important: like it or not, the iPod has somewhere close to 50% of the entire marketshare for DAPs. The next most popular device line is the Creative Nomad/Zen Micro/Dell DJ family of DAPs (NJB). I have nearly completed my C# bindings to libnjb (njb-sharp from Mono SVN), which means NJB devices will be second to be support in Banshee.
However, I have been working on a very generalized “framework” for DAPs within Banshee. This week, I plan on refactoring the iPod support to implement this new model, implementing NJB, and implementing a base class for generic USB mass storage players (the kind where you just “drop” a file onto it, and it plays… no crazy databases or protocols necessary). This will make adding support for any DAP very simple. Each DAP implementations will be runtime-loadable, and none will be required to build the base Banshee.
Beneath it all is a HAL layer that fires off events to the proper DAP class instantiations when a new device with the
portable_audio_player capability is connected.
Unfortunately, there is a slight problem. Very few FDI entries have been made for DAPs. In order for all the generic USB mass storage devices, and the Creative Nomads, Zen Micros, and Dell DJs, etc. to even be recognized as a DAP, the
fdi/information/10freedesktop/10-usb-music-players.fdi FDI file needs your help. If you would like your DAP to be recognized as a portable audio player and it is not currently, I have written a small utility that collects information about your DAP from HAL. Simply ensure the device is disconnected, run
make, connect the device, and wait 20 seconds. Mail me the result of the probe, and I’ll update the FDI file, and have it pushed upstream. The utility is written in C#, so you will need Mono. I left a precompiled assembly in
src/, but if for some reason it refuses to run, try rebuilding it.
The utility can be found here: hal-device-capture-0.2.
I hope to have the generalized DAP framework in place this week for the 0.9.13 Thansgiving release of Banshee. If you are interested in actually adding support for your DAP of choice, please contact me!
Update: After reports of problems running the utility, I forgot I have Gtk# 2.7.1 installed locally, which means that’s what the utility was linked against. I have rebuilt it against Gtk# 1.0.