diff -rupN tangerine-0.3.2.2/daap-sharp/src/Track.cs tangerine-0.3.2.2-patched/daap-sharp/src/Track.cs --- tangerine-0.3.2.2/daap-sharp/src/Track.cs 2009-08-08 17:56:08.000000000 +0200 +++ tangerine-0.3.2.2-patched/daap-sharp/src/Track.cs 2009-08-22 22:40:35.000000000 +0200 @@ -39,6 +39,7 @@ namespace DAAP { private DateTime dateAdded = DateTime.Now; private DateTime dateModified = DateTime.Now; private short bitrate; + private int rating; public event EventHandler Updated; @@ -155,6 +156,11 @@ namespace DAAP { set { bitrate = value; } } + public int Rating { + get { return rating; } + set { rating = value; } + } + public object Clone () { Track track = new Track (); track.artist = artist; @@ -172,6 +178,7 @@ namespace DAAP { track.dateAdded = dateAdded; track.dateModified = dateModified; track.bitrate = bitrate; + track.rating = rating; return track; } @@ -280,7 +287,7 @@ namespace DAAP { val = (short) trackNumber; break; case "daap.songuserrating": - val = (byte) 0; + val = (byte) rating; break; case "daap.songyear": val = (short) year; @@ -345,6 +352,9 @@ namespace DAAP { case "daap.bitrate": track.bitrate = (short) field.Value; break; + case "daap.songuserrating": + track.rating = (byte) field.Value; + break; case "daap.songdateadded": track.dateAdded = (DateTime) field.Value; break; @@ -399,7 +409,8 @@ namespace DAAP { trackCount == track.TrackCount && dateAdded == track.DateAdded && dateModified == track.DateModified && - bitrate == track.BitRate; + bitrate == track.BitRate && + rating == track.Rating; } internal void Update (Track track) { @@ -419,6 +430,7 @@ namespace DAAP { dateAdded = track.DateAdded; dateModified = track.DateModified; bitrate = track.BitRate; + rating = track.Rating; EmitUpdated (); } diff -rupN tangerine-0.3.2.2/plugins/Banshee/src/BansheePlugin.cs tangerine-0.3.2.2-patched/plugins/Banshee/src/BansheePlugin.cs --- tangerine-0.3.2.2/plugins/Banshee/src/BansheePlugin.cs 2009-08-02 08:20:51.000000000 +0200 +++ tangerine-0.3.2.2-patched/plugins/Banshee/src/BansheePlugin.cs 2009-08-22 22:41:02.000000000 +0200 @@ -25,7 +25,7 @@ namespace Tangerine.Plugins List> indexed_items; readonly string [] export_fields = new [] {"name", "artist", "genre", "year", "album", "local-path", "URI", - "media-attributes", "track-number", "track-count", "bitrate"}; + "media-attributes", "track-number", "track-count", "bitrate", "rating"}; public BansheePlugin () : base () { @@ -103,7 +103,7 @@ namespace Tangerine.Plugins short bitrate; string path, mediaType; Dictionary tags; - int year, trackCount, trackNumber; + int year, trackCount, trackNumber, rating; tags = SetupTags (); foreach (string tag in export_fields) { @@ -139,6 +139,8 @@ namespace Tangerine.Plugins track.TrackCount = trackCount; if (int.TryParse (tags ["track-number"], out trackNumber)) track.TrackNumber = trackNumber; + if (int.TryParse (tags ["rating"], out rating)) + track.Rating = rating * 20; track.Format = Path.GetExtension (track.FileName).Substring (1); // the 1 cuts off the .