internal void UpdateArtworkMetadata() { var currentSong = NepApp.SongManager.CurrentSong; var currentSongWithMetadata = currentSong as ExtendedSongMetadata; SongMetadata = currentSong; //Handle backgrounds if (currentSongWithMetadata != null) { //album artwork Uri albumArtUri = null; if (currentSongWithMetadata.Album != null && albumArtUri == null) { if (!string.IsNullOrWhiteSpace(currentSongWithMetadata.Album?.AlbumCoverUrl)) { albumArtUri = new Uri(currentSongWithMetadata.Album?.AlbumCoverUrl); } } artworkUriDictionary[NepAppSongMetadataBackground.Album] = albumArtUri; if (albumArtUri != null) { SongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Album, albumArtUri, currentSong)); } else { NoSongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Album, null, currentSong)); } //artist artwork Uri artistArtUri = null; if (!string.IsNullOrWhiteSpace(currentSongWithMetadata.ArtistInfo?.ArtistImage)) { artistArtUri = new Uri(currentSongWithMetadata.ArtistInfo?.ArtistImage); } else if (currentSongWithMetadata.FanArtTVBackgroundUrl != null) { //from FanArt.TV artistArtUri = currentSongWithMetadata.FanArtTVBackgroundUrl; } else if (currentSongWithMetadata.JPopAsiaArtistInfo != null) { //from JPopAsia if (currentSongWithMetadata.JPopAsiaArtistInfo.ArtistImageUrl != null) { artistArtUri = currentSongWithMetadata.JPopAsiaArtistInfo.ArtistImageUrl; } } artworkUriDictionary[NepAppSongMetadataBackground.Artist] = artistArtUri; if (artistArtUri != null) { SongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Artist, artistArtUri, currentSong)); } else { NoSongArtworkAvailable?.Invoke(this, new NepAppSongMetadataArtworkEventArgs(NepAppSongMetadataBackground.Artist, null, currentSong)); } } else { ResetArtworkInternal(); } SongArtworkProcessingComplete?.Invoke(this, EventArgs.Empty); }
internal void ResetArtwork() { ResetArtworkInternal(); SongArtworkProcessingComplete?.Invoke(this, EventArgs.Empty); }