Hi, On Fri, Oct 17, 2008 at 11:50 AM, John Stowers <john stowers gmail com> wrote:
Good idea. It's something I've wanted to add for a while, but never got to it. I'm glad you did. I'm curious how you did it, did you used the methods in the Audio class (get_audio_rating, get_audio_cover_location)? Something I should have documented better is how to create these kind of extensions. The way I planned was that a dataprovider would override the get_media_tags from the Audio class.
The DBus interface is stalled right now. My version was created as a Python plugin, and as such had some limitations, such as bad performance, and unstable IDs. A Rhythmbox developer said he was creating another DBus interface built into Rhythmbox, written in C, with much better performace. But the last word I got was it was still incomplete, and I don't have the necessary knowledge in the Rhythmbox internals to work on it.
If you create the bug I'll be glad to review it, i'm quite familiar with the Rhythmbox module, and I can give some help if it's needed.
It's a good idea indeed. I would advise you to use standard methods in the Audio class (get_audio_title, get_audio_artist, get_audio_album, etc), so it should work with all media providers, when they implement support for get_media_tags. You'll notice the way it works with Rhythmbox is that these tags are loaded from the file, so it'll be very slow everytime a folder is scanned. But using the Rhythmbox library, or the DBus API, it can be made much faster, because the tags are already in the database. Again, this kind of information should be added in get_media_tags. If all of this works, it's only a matter of creating folders from get_audio_artist(), get_audio_album() and copying the track to that folder. You can use the Folder provider as a base class. However maybe you would like to create only a source, insted of two-way, to make it simpler. Let me know if you need any help. Bye.
-- Alexandre Rosenfeld USP São Carlos - EESC/ICMC Engenharia de Computação 06 (Computer Engineering Student) |