summaryrefslogtreecommitdiff
blob: b7f1c3b8eb2b5bc13d34313b7a8546e39959418e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs	2008-10-06 10:27:31.000000000 -0600
+++ src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs.new	2008-12-05 16:01:22.513964625 -0700
@@ -130,7 +130,7 @@
                 track.ArtistName = Choose (file.Tag.JoinedPerformers, track.ArtistName, preferTrackInfo);
                 track.AlbumTitle = Choose (file.Tag.Album, track.AlbumTitle, preferTrackInfo);
                 track.AlbumArtist = Choose (file.Tag.FirstAlbumArtist, track.AlbumArtist, preferTrackInfo);
-                track.IsCompilation = IsCompilation (file.Tag);
+                track.IsCompilation = IsCompilation (file);
                 
                 track.TrackTitle = Choose (file.Tag.Title, track.TrackTitle, preferTrackInfo);
                 track.Genre = Choose (file.Tag.FirstGenre, track.Genre, preferTrackInfo);
@@ -171,18 +171,18 @@
             // TODO these ideas could also be done in an extension that collects such hacks
         }
             
-        private static bool IsCompilation (TagLib.Tag tag)
+        private static bool IsCompilation (TagLib.File file)
         {
-            TagLib.Id3v2.Tag id3v2_tag = tag as TagLib.Id3v2.Tag;
+            TagLib.Id3v2.Tag id3v2_tag = file.GetTag(TagLib.TagTypes.Id3v2, true) as TagLib.Id3v2.Tag;
             if (id3v2_tag != null && id3v2_tag.IsCompilation)
                 return true;
 
-            TagLib.Mpeg4.AppleTag apple_tag = tag as TagLib.Mpeg4.AppleTag;
+            TagLib.Mpeg4.AppleTag apple_tag = file.GetTag(TagLib.TagTypes.Apple,true) as TagLib.Mpeg4.AppleTag;
             if (apple_tag != null && apple_tag.IsCompilation)
                 return true;
             
-            if (tag.Performers.Length > 0 && tag.AlbumArtists.Length > 0 &&
-                (tag.Performers.Length != tag.AlbumArtists.Length || tag.FirstAlbumArtist != tag.FirstPerformer)) {
+            if (file.Tag.Performers.Length > 0 && file.Tag.AlbumArtists.Length > 0 &&
+                (file.Tag.Performers.Length != file.Tag.AlbumArtists.Length || file.Tag.FirstAlbumArtist != file.Tag.FirstPerformer)) {
                 return true;
             }
             return false;