コード例 #1
0
        public void FillPlayList(XElement dict, iTunesSongs songsList)
        {
            Name = BCHXMLUtilities.GetKeyValStr(dict, "key", "Name");

            var xSongs = from element in dict.Descendants("array").Descendants("dict")
                         select element;

            Songs = new iTunesSongs();
            int id  = 0;
            int cnt = 0;

            foreach (var xSong in xSongs)
            {
                try
                {
                    id = BCHXMLUtilities.GetKeyValInt(xSong, "key", "Track ID");
                    iTunesSong song = songsList.iTunesSongList.Find(s => s.TrackId == id);
                    if (song != null)
                    {
                        song.SongCount    = cnt++;
                        song.PlayListName = Name;
                        Songs.iTunesSongList.Add(song);
                    }
                }
                catch (Exception)
                {
                    // Something wasn't set, so skip the node ...
                }
            }
        }
コード例 #2
0
        public void FilliTunesSongList(string iTunesLibraryFilePath)
        {
            XDocument xDoc = XDocument.Load(iTunesLibraryFilePath);

            iTunesSongList = new List <iTunesSong>();

            var linqtoxml = from element in xDoc.Descendants("plist").Descendants("dict").Descendants("dict").Descendants("dict")
                            select element;
            int cnt = 0;

            foreach (var dict in linqtoxml)
            {
                try
                {
                    iTunesSong song = new iTunesSong();
                    song.SetProperties(dict);
                    if (song.Kind == "MPEG audio file")
                    {
                        song.SongCount = cnt++;
                        iTunesSongList.Add(song);
                    }
                }
                catch (Exception)
                {
                    // Something wasn't set, so skip the node ...
                }
            }

            if (iTunesSongList != null && iTunesSongList.Count > 0)
            {
                //iTunesSongList.Sort(
            }
        }
コード例 #3
0
ファイル: iTunesSong.cs プロジェクト: bhill10gh/MP3Organizer
        public void SetProperties(XElement dict)
        {
            iTunesSong song = new iTunesSong();

            TrackId            = BCHXMLUtilities.GetKeyValInt(dict, "key", "Track ID");
            Name               = BCHXMLUtilities.GetKeyValStr(dict, "key", "Name");
            Artist             = BCHXMLUtilities.GetKeyValStr(dict, "key", "Artist");
            AlbumArtist        = BCHXMLUtilities.GetKeyValStr(dict, "key", "Album Artist");
            Album              = BCHXMLUtilities.GetKeyValStr(dict, "key", "Album");
            Genre              = BCHXMLUtilities.GetKeyValStr(dict, "key", "Genre");
            Kind               = BCHXMLUtilities.GetKeyValStr(dict, "key", "Kind");
            Size               = BCHXMLUtilities.GetKeyValInt(dict, "key", "Size");
            TotalTIme          = BCHXMLUtilities.GetKeyValInt(dict, "key", "Total Time");
            DiscNumber         = BCHXMLUtilities.GetKeyValInt(dict, "key", "Disc Number");
            DiscCount          = BCHXMLUtilities.GetKeyValInt(dict, "key", "Disc Count");
            TrackNumber        = BCHXMLUtilities.GetKeyValInt(dict, "key", "Track Number");
            DateModified       = BCHXMLUtilities.GetKeyValDate(dict, "key", "Date Modified");
            DateAdded          = BCHXMLUtilities.GetKeyValDate(dict, "key", "Date Added");
            BitRate            = BCHXMLUtilities.GetKeyValInt(dict, "key", "Bit Rate");
            SampleRate         = BCHXMLUtilities.GetKeyValInt(dict, "key", "Sample Rate");
            Comments           = BCHXMLUtilities.GetKeyValStr(dict, "key", "Comments");
            PersistentId       = BCHXMLUtilities.GetKeyValStr(dict, "key", "Persistent ID");
            TrackType          = BCHXMLUtilities.GetKeyValStr(dict, "key", "Track Type");
            Location           = BCHXMLUtilities.UrlDecode(BCHXMLUtilities.GetKeyValStr(dict, "key", "Location"));
            FileFolderCount    = BCHXMLUtilities.GetKeyValInt(dict, "key", "File Folder Count");
            LibraryFolderCount = BCHXMLUtilities.GetKeyValInt(dict, "key", "Library Folder Count");
        }