GNOME Bugzilla – Bug 149716
Ability to work with iRiver MP3/Ogg players
Last modified: 2018-05-24 10:35:37 UTC
There are opensource libraries andrivers for access to iRiver's iFP portable MP3/Ogg players series: http://michele.pupazzo.org/libiriver/ http://ifp-driver.sourceforge.net/ Please consider reusing them in order to make Rhythmbox able excahnge songs with iFP players.
I guess this will be done when someone owning an iRiver cares enough to hack on rhythmbox so that it supports it...
Well, I cannot hack, but I can test result of a hack :)
Attached is a patch that integrates the iRiver (well at least an iHP-140) database access into rhythmbox. A few caveats ... a) It is rather slow as the files themselves have to be parsed to get much of the required metadata b) No playlist support c) iRiver goes 'read-only' quite frequently and this seems to bork rhythmbox d) Icon is a total rip off of the iPod one!
Created attachment 32232 [details] [review] Diff to introduce iRiver source
Created attachment 32233 [details] Icon for the iHP-140 Total rip off of the iPod icon!
You can use the totem-pl-parser functions to save as m3u files, it handles relative paths, and DOS/Unix modes.
The iriverdb.[ch] files are missing from the patch.
Created attachment 32273 [details] iriverdb.c file - extraction of iNavi.iDB functionality Should be in sources directory
Created attachment 32274 [details] Headers for iriverdb.c Should be in sources directory alongside the iriverdb.c file
Playlists are already .m3u files, but they are just on the filesystem, so it's not too difficult to read them in, just how to present them in rhythmbox. i.e. Christophe suggested something like the layout below ... Library + Playlist 1 + Playlist 2 iRiver + Playlist 1 + Playlist 2 etc.
walters agreed with such a layout on irc, and ish said he'd work on that once he has integrated daap support in rhythmbox. If you are interested in working on that too, you should check with him.
Created attachment 35735 [details] Replacement iriverdb.c code - after testing After testing by rudedogis@comcast.net, have fixed an issue with the location of the mount point of the device when using gnome-volume-manager.
I couldn't get your code to work Mark with my iRiver H320, but I'll try to adapt the code a little bit.
the patch may have bitrotted, due to changes in RB. As a point of interest, I have started work an a "removable media framework" for RB as part of my work on audio cd support (bug 110928). Although it still needs some more work on it, should make adding support for new media easier. It shouldn't be too hard to port the iRiver code over to using that, because both the removable media stuff and this iRiver code are based on the ipod code.
I'm currently working on my own patch for iriver, but if your framework is more or less ready for use, I'll start porting my code. IMHO rhythmbox should have some sort of rbsource pluginsystem based on GModule, so it could be possible to develop support for non-free stuff like opendaap. This could probably remove some code/dependencies too, for example could the itunesdb code be removed. Afaik, it's from libitunes, which most ipod users would have anyways. I think gtkpod and other ipod utilities needs it, allthough not sure.
The framework works for audio cds, and it was relatively trivial to port the ipod source over to it. There are going to things that it should have, which aren't in it yet - but until someone else tries to use it to support something a different, I'm not sure exactly what it needs. One thing it probably does want is a general "unmount/eject" method, that gets called when the user requests the media to be unmounted. I've been talking with some people about a "plugin" system over the past few days, and will probably post some of my ideas to the mailing list in the next couple of days.
Actually if you do plan on using my stuff, it's probably worth waiting a day or two - I've got an new patch which fixes some issues and renames several things, I just need to tidy a couple of things up before uploading. If you don't want to use it yet, that's fine, and having another media source to look at will get me a better idea of what I need in the framework.
The removable media framework is in 0.9.1 and cvs, which will help if you want to add iRiver support. If you have any questions about it, or suggestions for improvements feel free to mail me or ask on irc.
Obsoleting the patch because it is really out of date.
Switch component to "Removable Media".
I can do testing if needed, I'm also going to submit the playlist information in a bug in response to Mr. Livingston's call for such a thing. This seems moderately related -- attached is an icon I made for the iRiver H300 series. Other sizes are available if it's used, whatever license you guys want it under, you can have it -- presumably whatever Jimmac puts his under. He didn't like it enough to commit it to GNOME, perhaps one of the Rhythmbox developers do.
Created attachment 63842 [details] iRiver H300 series device icon An icon (using the GNOME color palette) for the iRiver H300 series of media players, possibly useful for displaying the device in Rhythmbox. Other sizes (perhaps a simpler 24x24 version) are available, plus the SVG.
Created attachment 63915 [details] [review] start of a patch This is the start of a patch to add support for iFP-based devices, using libifp (http://ifp-driver.sourceforge.net/). The patch is against cvs, but it should work against 0.9.4 too. To test this, you need to compile RB with the patch applied (having libifp installed), go to Edit->Plugins and turn "iFP Device Support" on. All it should do at the moment is make a new source show up when the device is plugged in.
As far as iriver support is concerned you could try using http://pmplib.sourceforge.net/. I don't know about other iriver models, but it's the only library that supports iriver H10Jr. The library supports players from other vendors as well and here's the full list: * iRiver H100 series * iRiver H300 series * iRiver H10 UMS * iRiver H10 MTP (with emergency connect mode) * iRiver H10Jr. UMS * iRiver U10 UMS * MEDION MDJuke220 * MEDION MDJuke440 * Samsung YH-820 * Samsung YH-920 * Samsung YH-925
Is anyone able to pick up the work on this? The basic structure of the plugin is done. It shouldn't be hard to extract a list of files from the device and display them in the source, but it appears that reading metadata and playing from the device would be a fair bit harder. It seems that GStreamer source and sink elements would be required.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/42.