GNOME Bugzilla – Bug 374076
iPod track transfer does not preserve rating
Last modified: 2007-06-10 09:37:48 UTC
Please describe the problem: When Rhythmbox is compiled with --enable-track-transfer, if the song being transferred to the iPod has a rating, the matching song in the iPod database has a rating of 1 instead of the original rating. Also, after re-rating the song, the next time RB is loaded the rating is back to 1 Steps to reproduce: 1. Compile RB with --enable-track-transfer 2. Transfer a rated track 3. Set rating to 5 4. Restart RB Actual results: The song appears with a rating of 1 Expected results: The song appears with original rating Does this happen every time? Always Other information:
This is a known limitation (at least the fact that the rating cannot be changed), I'm surprised this hasn't been filed yet ;) Should be pretty easy to fix if someone wants to give it a try...
Looking at the code, create_ipod_song_from_entry() sets track->rating, so I would have thought it would have transferred. We definitely don't change the on-ipod metadata when the you rate an existing ipod song though.
Created attachment 85930 [details] [review] Save rating to the iPod when it changes The attached patch saves song ratings to the iPod when they are changed in RB. It should also save the rating for new songs copied to the iPod (there was a missing * ITDB_RATING_STEP). However, writing the ipod database is really slow on my ipod (maybe ten seconds) and since itdb_schedule_save is 100% synchronous, this makes things really slow. Saving should probably be made asynchronous before this patch is committed.
Created attachment 87648 [details] [review] Updated patch This patch saves last played time and play count in addition to rating, and it uses the async saving implemented in bug #436319
Looks fine to me.
Created attachment 89561 [details] [review] updated patch after the landing of async iTunesDB saving
Looks good to me.