/// <summary> /// Returns information about the currently playing track. /// </summary> /// <returns>iTunesTrack with current track's information.</returns> public iTunesTrack GetCurrentTrack() { IITTrack currentTrack = iTunes.CurrentTrack; iTunesTrack track = new iTunesTrack(); track.Album = currentTrack.Album; track.Artist = currentTrack.Artist; track.Comment = currentTrack.Comment; track.Compilation = currentTrack.Compilation; track.DateAdded = currentTrack.DateAdded; track.DiscCount = currentTrack.DiscCount; track.DiscNumber = currentTrack.DiscNumber; track.Duration = currentTrack.Duration; track.Genre = currentTrack.Genre; track.Index = currentTrack.Index; track.Kind = currentTrack.KindAsString; track.Name = currentTrack.Name; track.PlayedCount = currentTrack.PlayedCount; track.PlayedDate = currentTrack.PlayedDate; track.Rating = currentTrack.Rating; track.Time = currentTrack.Time; track.TrackCount = currentTrack.TrackCount; track.TrackId = currentTrack.trackID; track.TrackNumber = currentTrack.TrackNumber; track.Year = currentTrack.Year; return(track); }
public static IReadOnlyList <iTunesTrack> GetiTunesTracks(XDocument xmliTunesMediaLibrary) { return(xmliTunesMediaLibrary .Element("plist") .Element("dict") .Elements() .AsParallel() .SkipWhile(x => x.Name != "key" || x.Value != "Tracks") .Skip(1) .FirstOrDefault() .Elements("dict") .Select(xElement => xElement.ToDictionary()) .Select(xmliTunesTrack => { iTunesTrack iTunesTrack = null; try { iTunesTrack = new iTunesTrack() { Album = xmliTunesTrack.GetKeyValueIfExists("Album"), AlbumArtist = xmliTunesTrack.GetKeyValueIfExists("Album Artist"), AlbumLoved = xmliTunesTrack.GetValue("Album Loved", default(bool)), AlbumRating = xmliTunesTrack.GetNullableValue("Album Rating", default(uint?)), AlbumRatingComputed = xmliTunesTrack.GetValue("Album Rating Computed", default(bool)), Artist = xmliTunesTrack.GetKeyValueIfExists("Artist"), ArtworkCount = xmliTunesTrack.GetNullableValue("Artwork Count", default(uint?)), BitRate = xmliTunesTrack.GetNullableValue("Bit Rate", default(uint?)), Comments = xmliTunesTrack.GetKeyValueIfExists("Comments"), Compilation = xmliTunesTrack.GetKeyValueIfExists("Compilation"), Composer = xmliTunesTrack.GetKeyValueIfExists("Composer"), DateAdded = xmliTunesTrack.GetValue("Date Added", default(DateTime)), DateModified = xmliTunesTrack.GetNullableValue("Date Modified", default(DateTime?)), DiscCount = xmliTunesTrack.GetNullableValue("Disc Count", default(uint?)), DiscNumber = xmliTunesTrack.GetNullableValue("Disc Number", default(uint?)), Equalizer = xmliTunesTrack.GetKeyValueIfExists("Equalizer"), FileFolderCount = xmliTunesTrack.GetNullableValue("File Folder Count", default(int?)), Genre = xmliTunesTrack.GetKeyValueIfExists("Genre"), Kind = xmliTunesTrack.GetKeyValueIfExists("Kind"), LibraryFolderCount = xmliTunesTrack.GetNullableValue("Library Folder Count", default(int?)), Location = xmliTunesTrack.GetKeyValueIfExists("Location"), Loved = xmliTunesTrack.GetValue("Loved", default(bool)), Name = xmliTunesTrack.GetKeyValueIfExists("Name"), PersistentID = xmliTunesTrack.GetKeyValueIfExists("Persistent ID"), PlayCount = xmliTunesTrack.GetValue("Play Count", default(uint)), PlayDate = xmliTunesTrack.GetNullableValue("Play Date", default(uint?)), PlayDateUTC = xmliTunesTrack.GetValue("Play Date UTC", default(DateTime)), Podcast = xmliTunesTrack.GetValue("Podcast", default(bool)), Rating = xmliTunesTrack.GetNullableValue("Rating", default(uint?)), ReleaseDate = xmliTunesTrack.GetNullableValue("Release Date", default(DateTime?)), SampleRate = xmliTunesTrack.GetNullableValue("Sample Rate", default(uint?)), Size = xmliTunesTrack.GetNullableValue("Size", default(uint?)), SkipCount = xmliTunesTrack.GetValue("Skip Count", default(uint)), SkipDate = xmliTunesTrack.GetNullableValue("Skip Date", default(DateTime?)), SortAlbum = xmliTunesTrack.GetKeyValueIfExists("Sort Album"), SortAlbumArtist = xmliTunesTrack.GetKeyValueIfExists("Sort Album Artist"), SortArtist = xmliTunesTrack.GetKeyValueIfExists("Sort Artist"), SortComposer = xmliTunesTrack.GetKeyValueIfExists("Sort Composer"), SortName = xmliTunesTrack.GetKeyValueIfExists("Sort Name"), TotalTime = TimeSpan.FromMilliseconds(xmliTunesTrack.GetValue("Total Time", default(uint))), TrackCount = xmliTunesTrack.GetNullableValue("Track Count", default(uint?)), TrackID = xmliTunesTrack.GetValue("Track ID", default(uint)), TrackNumber = xmliTunesTrack.GetNullableValue("Track Number", default(uint?)), TrackType = xmliTunesTrack.GetKeyValueIfExists("Track Type"), Unplayed = xmliTunesTrack.GetValue("Unplayed", default(bool)), VolumeAdjustment = xmliTunesTrack.GetNullableValue("Volume Adjustment", default(int?)), Year = xmliTunesTrack.GetNullableValue("Year", default(uint?)) }; } catch //(Exception ex) { iTunesTrack = null; } finally { } return iTunesTrack; }) .ToArray()); }