October 3rd, 2005
AdamW’s idea of the day – really cool device support for media player apps.
Media players like Rhythmbox, Banshee etc are getting iPod support these days. Blah. Sure, the iPod is the definition of cool, etc etc etc, but it’s expensive and it doesn’t play all my Vorbis files. It’d be nice to stop thinking about iPods and be a little more comprehensive. With a bit of work this could be really cool.
An increasing number of devices can play music files these days. My Neuros can, obviously. My PSP can. My next cellphone probably will, too. Wouldn’t it be really cool if…
my media player really _understood_ this?
Picture this. I launch my favourite media player and plug in my PSP, my cellphone, and my music player. All three of these players appear in the interface somewhere. I can then move music with a simple drag operation from any of these players to any other, or from them to my library or vice versa, or from a CD to the library or any of the players. The app takes care of the nitty gritty of converting to the appropriate format for the device and writing the player’s database, if it uses one.
Wouldn’t that be really, really cool?
The best thing is, I think this is all possible today. HAL lets apps know exactly what hardware has just been plugged in. You could set up a list of the requirements for all popular players – for e.g., the app needs to know my PSP can only handle MP3 files, so it should convert anything going to the PSP to lame-encoded MP3. It would also know they need to go into a specific directory for any given device. It then abstracts everything to hell so, as far as the user is concerned, every player is just a container with a bunch of music in it. There should also be an interface to configure this, so the user can set the preferred format for devices that support multiple formats. The user’s library could also act as a ‘device’ in this sense, I suppose. Behind the scenes, this could be arranged simply through multiple gstreamer profiles. Unknown devices should probably default to MP3 (if available), since _everything_ speaks MP3. This would be an ideal use for the power and simplicity of HAL and gstreamer, and would make Linux media players immediately rock seventy times harder than ones on other platforms which are generally tuned to the needs of one specific player and don’t worry about others at all. More and more devices these days just act as mass storage and don’t need specific database fiddling, so there wouldn’t be need for things like libipoddevice for too many players in future, but for ones which need databases, they could be written. Neuros would be a good starting point, since it’s very open and there’s already a few Linux projects which write the Neuros database, so their code could be hijacked.
Good idea, no?
I think I’ll send this post to the banshee and rhythmbox projects too…