Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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());
        }