private void Library_LibraryUpdated(object sender, LibraryEntryEventArgs e) { if (e.LibraryEntry == null) { return; } SongListViewItem item = FindItem(e.LibraryEntry.FileName); if (item != null) { item.SongInfo = e.LibraryEntry; list.InvalidateItem(item); } }
private void Library_LibraryUpdated(object sender, LibraryEntryEventArgs e) { if (!string.IsNullOrEmpty(e.LibraryEntry.AlbumArtist) && _artistsAlbumsNode != null) { foreach (TreeNode node in _artistsAlbumsNode.Nodes) { if (node.Text.Equals(e.LibraryEntry.AlbumArtist, StringComparison.OrdinalIgnoreCase)) { if (node.Nodes.Count > 1 || node.Nodes[0].Text != EmptyNodeText) { if (!string.IsNullOrEmpty(e.LibraryEntry.Album)) { foreach (TreeNode node2 in node.Nodes) { if (node2.Text.Equals(e.LibraryEntry.Album, StringComparison.OrdinalIgnoreCase)) { break; } else if (CompareStringsWithoutTheAndIgnoringCase(node2.Text, e.LibraryEntry.Album) > 0) { node.Nodes.Insert(node2.Index, e.LibraryEntry.Album); break; } else if (node2.NextNode == null) { node.Nodes.Add(e.LibraryEntry.Album); } } } } break; } else if (CompareStringsWithoutTheAndIgnoringCase(node.Text, e.LibraryEntry.AlbumArtist) > 0) { _artistsAlbumsNode.Nodes.Insert(node.Index, e.LibraryEntry.AlbumArtist).Nodes.Add(EmptyNodeText); break; } else if (node.NextNode == null) { _artistsAlbumsNode.Nodes.Add(e.LibraryEntry.AlbumArtist).Nodes.Add(EmptyNodeText); break; } } } if (!string.IsNullOrEmpty(e.LibraryEntry.Album) && _albumsNode != null) { foreach (TreeNode node in _albumsNode.Nodes) { if (node.Text.Equals(e.LibraryEntry.Album, StringComparison.OrdinalIgnoreCase)) { break; } else if (CompareStringsWithoutTheAndIgnoringCase(node.Text, e.LibraryEntry.Album) > 0) { _albumsNode.Nodes.Insert(node.Index, e.LibraryEntry.Album); break; } else if (node.NextNode == null) { _albumsNode.Nodes.Add(e.LibraryEntry.Album); } } } if (!string.IsNullOrEmpty(e.LibraryEntry.Artist) && _contributingArtistsNode != null) { foreach (TreeNode node in _contributingArtistsNode.Nodes) { if (node.Text.Equals(e.LibraryEntry.Artist, StringComparison.OrdinalIgnoreCase)) { break; } else if (CompareStringsWithoutTheAndIgnoringCase(node.Text, e.LibraryEntry.Artist) > 0) { _contributingArtistsNode.Nodes.Insert(node.Index, e.LibraryEntry.Artist); break; } else if (node.NextNode == null) { _contributingArtistsNode.Nodes.Add(e.LibraryEntry.Artist); } } } if (!string.IsNullOrEmpty(e.LibraryEntry.Genre) && _genresNode != null) { foreach (TreeNode node in _genresNode.Nodes) { if (node.Text.Equals(e.LibraryEntry.Genre, StringComparison.OrdinalIgnoreCase)) { break; } else if (node.Text.CompareTo(e.LibraryEntry.Genre) > 0) { _genresNode.Nodes.Insert(node.Index, e.LibraryEntry.Genre); break; } else if (node.NextNode == null) { _genresNode.Nodes.Add(e.LibraryEntry.Genre); } } } if (e.LibraryEntry.Year > 0 && _yearsNode != null) { foreach (TreeNode node in _yearsNode.Nodes) { if (node.Text == "(No Year)") { continue; } else if (Convert.ToInt32(node.Text) == e.LibraryEntry.Year) { break; } else if (Convert.ToInt32(node.Text) > e.LibraryEntry.Year) { _yearsNode.Nodes.Insert(node.Index, e.LibraryEntry.Year.ToString()); break; } else if (node.NextNode == null) { _yearsNode.Nodes.Add(e.LibraryEntry.Year.ToString()); } } } }