diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-05 15:00:50 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-05 15:00:50 -0400 |
| commit | 44b12c0f9fc81dd10d6f655f341d7df28c5f3e20 (patch) | |
| tree | 520179e21ec80e988e44407b06c2f22f040d9903 /MediaBrowser.Controller | |
| parent | cbf061d5f62a98a977d192bb0117f6c21be7e808 (diff) | |
fixes #520 - Support multiple artists per audio track
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Audio/Audio.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 5ee1e8152a..7c226864bc 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -1,6 +1,7 @@ using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; +using System.Linq; using System.Runtime.Serialization; namespace MediaBrowser.Controller.Entities.Audio @@ -13,6 +14,7 @@ namespace MediaBrowser.Controller.Entities.Audio public Audio() { MediaStreams = new List<MediaStream>(); + Artists = new List<string>(); } /// <summary> @@ -57,7 +59,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// Gets or sets the artist. /// </summary> /// <value>The artist.</value> - public string Artist { get; set; } + public List<string> Artists { get; set; } /// <summary> /// Gets or sets the album. @@ -99,7 +101,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// <returns><c>true</c> if the specified name has artist; otherwise, <c>false</c>.</returns> public bool HasArtist(string name) { - return string.Equals(Artist, name, StringComparison.OrdinalIgnoreCase) || string.Equals(AlbumArtist, name, StringComparison.OrdinalIgnoreCase); + return Artists.Contains(name, StringComparer.OrdinalIgnoreCase) || string.Equals(AlbumArtist, name, StringComparison.OrdinalIgnoreCase); } } } diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 91f4504c23..8945a33076 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -257,7 +257,7 @@ namespace MediaBrowser.Controller.Entities { var songs = recursiveChildren.OfType<Audio.Audio>().ToList(); - indexFolders = songs.Select(i => i.Artist ?? string.Empty) + indexFolders = songs.SelectMany(i => i.Artists) .Distinct(StringComparer.OrdinalIgnoreCase) .Select(i => { @@ -278,7 +278,7 @@ namespace MediaBrowser.Controller.Entities }) .Where(i => i != null) .Select(a => new IndexFolder(us, a, - songs.Where(i => string.Equals(i.Artist, a.Name, StringComparison.OrdinalIgnoreCase) + songs.Where(i => i.Artists.Contains(a.Name, StringComparer.OrdinalIgnoreCase) ), currentIndexName)).Concat(indexFolders); } |
