Re: [Rhythmbox-devel] Support for flash based mp3 players

> What i am considering is in particular the devices that are not like an
> ipod. That is, flash based mp3 players without a db. This class of
> players dump files in a folder which the device reads on startup.

So are we talking about portable players that show up as USB mass
storage devices like iRivers, or the kind that use their own weird
filesystem and transfer protocol?

I've been thinking about working on the first case, specifically to get
my iRiver working with Rhythmbox, but I'd like to make the code as
generic as possible so it can be shared by other players that are USB
storage devices.

If it is the second case, perhaps you could use gnomevfs as an
abstraction layer, so your player can also share the basic code for
reading and transferring files.

> Actually, now i realise something else i wanted to discuss, how should i
> handle files that are new on the device? I had considered creating a
> folder like ~/Music and dumping the files there and then adding to the
> playlist.

Maybe I'm misunderstanding, but I don't see why we need to dump the
files on the computer every time.  If we can read the contents of the
player from vfs, then we can browse and play its contents without

Here is my ideal scenario:
1. Plug in portable player, HAL does it's magic, and it shows up as a
source in Rhythmbox (I think the iPod already does this.)
2. Select the new source, and you can browse it just like your library.
2a. For players like iRiver and iPod that have a database, the db file
should be read from the player.
2b. For players like yours a temporary db will have to be generated.
3. Go back to your library and drag a song to the portable player source
to copy it.
3a. There should be pre-copy hooks to convert files for players that we
know only support certain formats.  Gstreamer should be able to do the
converting on the fly.
3b.  There should be post-copy hooks to update the player's database if
it has one.

Damian Christey <christey csee wvu edu>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]