Example #1
0
 public void AddDisc(XmlDisc o)
 {
     if (!Discs.ContainsKey(o.Key))
     {
         Discs.Add(o.Key, o);
     }
 }
Example #2
0
 public void RemoveDisc(XmlDisc o)
 {
     if (Discs.ContainsKey(o.Key))
     {
         Discs.Remove(o.Key);
     }
 }
Example #3
0
        public void ValidateDisc(XmlDisc disc)
        {
            DebugHelper.WriteLine("Validating --> " + disc.Location);

            disc.Tracks.Sort(XmlTrackComparer.XmlTrackComparerMethods.CompareByTrackNumber);

            foreach (XmlTrack track in disc.Tracks)
            {
                ValidateTrack(track);
            }
        }
Example #4
0
        internal void FillGenre(List <XmlDisc> Discs, ReportWriter reportWriter)
        {
            XmlDisc disc = Discs.FirstOrDefault(x => x.Key == this.GetDiscKey());

            if (disc != null)
            {
                if (this.Tags.Genres.Length == 0)
                {
                    this.Genre = disc.Genre;
                }
            }
        }
Example #5
0
        public void ValidateDisc(XmlDisc disc)
        {
            DebugHelper.WriteLine("Validating --> " + disc.Location);

            disc.Tracks.Sort(XmlTrackComparer.XmlTrackComparerMethods.CompareByTrackNumber);

            Parallel.ForEach(disc.Tracks, track =>
            {
                ValidateTrack(track);
            }
                             );
        }
Example #6
0
        /// <summary>
        /// Method to add a track to Player
        /// </summary>
        /// <param name="track"></param>
        private void AddTrack(XmlTrack track)
        {
            string albumName = track.AlbumArtist;

            if (string.IsNullOrEmpty(albumName))
            {
                albumName = Path.GetFileName(Path.GetDirectoryName(track.Location));
            }

            XmlAlbumArtist tempBand = GetBand(albumName);

            if (tempBand == null)
            {
                tempBand = new XmlAlbumArtist(albumName);
                Library.Add(tempBand.Name, tempBand);
                AlbumArtists.Add(tempBand);
            }

            XmlAlbum tempAlbum = tempBand.GetAlbum(track.GetAlbumKey());

            if (tempAlbum == null)
            {
                tempAlbum = new XmlAlbum(track.GetAlbumKey());
                Library[albumName].AddAlbum(tempAlbum);
                Albums.Add(tempAlbum);
            }

            XmlDisc tempDisc = tempAlbum.GetDisc(track.GetDiscKey());

            if (tempDisc == null)
            {
                tempDisc = new XmlDisc(track.GetDiscKey());
                Library[albumName].GetAlbum(track.GetAlbumKey()).AddDisc(tempDisc);
                Discs.Add(tempDisc);
            }

            if (Library[albumName].GetAlbum(track.GetAlbumKey()).GetDisc(track.GetDiscKey()).AddTrack(track))
            {
                Tracks.Add(track);
            }
        }
Example #7
0
        internal void FillTrackCount(List <XmlAlbum> Albums, List <XmlDisc> Discs, ReportWriter reportWriter)
        {
            XmlDisc       disc       = Discs.FirstOrDefault(x => x.Key == this.GetDiscKey());
            List <string> filledTags = new List <string>();

            if (disc != null)
            {
                if (this.Tags.TrackCount == 0)
                {
                    this.Tags.TrackCount = (uint)disc.Tracks.Count;
                    IsModified           = true;
                    filledTags.Add("TrackCount");
                }
            }

            XmlAlbum album = Albums.FirstOrDefault(x => x.Key == this.GetAlbumKey());

            if (album != null)
            {
                if (this.Tags.Disc == 0 && album.Discs.Count == 1)
                {
                    this.Tags.Disc = 1; // for single disc albums you can specify DiscNumber
                    IsModified     = true;
                    filledTags.Add("DiscNumber");
                }

                if (this.Tags.DiscCount == 0)
                {
                    this.Tags.DiscCount = (uint)album.Discs.Count;
                    IsModified          = true;
                    filledTags.Add("DiscCount");
                }
            }

            if (filledTags.Count > 0)
            {
                DebugHelper.WriteLine(this.FileName + " --> filled " + filledTags.ToArray().Join("; "));
            }
        }
Example #8
0
 public void AddDisc(XmlDisc o)
 {
     if (!Discs.ContainsKey(o.Key))
         Discs.Add(o.Key, o);
 }
Example #9
0
 public void RemoveDisc(XmlDisc o)
 {
     if (Discs.ContainsKey(o.Key))
         Discs.Remove(o.Key);
 }
Example #10
0
        /// <summary>
        /// Method to add a track to Player
        /// </summary>
        /// <param name="track"></param>
        private void AddTrack(XmlTrack track)
        {
            string albumName = track.AlbumArtist;
            if (string.IsNullOrEmpty(albumName))
                albumName = Path.GetFileName(Path.GetDirectoryName(track.Location));

            XmlAlbumArtist tempBand = GetBand(albumName);
            if (tempBand == null)
            {
                tempBand = new XmlAlbumArtist(albumName);
                Library.Add(tempBand.Name, tempBand);
                AlbumArtists.Add(tempBand);
            }

            XmlAlbum tempAlbum = tempBand.GetAlbum(track.GetAlbumKey());
            if (tempAlbum == null)
            {
                tempAlbum = new XmlAlbum(track.GetAlbumKey());
                Library[albumName].AddAlbum(tempAlbum);
                Albums.Add(tempAlbum);
            }

            XmlDisc tempDisc = tempAlbum.GetDisc(track.GetDiscKey());
            if (tempDisc == null)
            {
                tempDisc = new XmlDisc(track.GetDiscKey());
                Library[albumName].GetAlbum(track.GetAlbumKey()).AddDisc(tempDisc);
                Discs.Add(tempDisc);
            }

            if (Library[albumName].GetAlbum(track.GetAlbumKey()).GetDisc(track.GetDiscKey()).AddTrack(track))
            {
                Tracks.Add(track);
            }
        }
Example #11
0
        public void ValidateDisc(XmlDisc disc)
        {
            DebugHelper.WriteLine("Validating --> " + disc.Location);

            disc.Tracks.Sort(XmlTrackComparer.XmlTrackComparerMethods.CompareByTrackNumber);

            foreach (XmlTrack track in disc.Tracks)
            {
                ValidateTrack(track);
            }
        }
Example #12
0
        private void AddFilesWizard_Load(object sender, EventArgs e)
        {
            foreach (string pfd in FilesDirs.ToArray<string>())
            {
                if (Directory.Exists(pfd))
                {
                    AddDirToNode(pfd, tvBands.Nodes);
                }
                else if (File.Exists(pfd))
                {
                    XmlTrack track = new XmlTrack(pfd);
                    Tracks.Add(track);
                    TracksOrphaned.Add(track);
                }
            }

            XmlDisc discOrphaned = new XmlDisc(TracksOrphaned);
            foreach (XmlTrack track in TracksOrphaned)
            {
                TreeNode tnOrphaned = new TreeNode("Orphaned Tracks");
                tnOrphaned.Tag = discOrphaned;
                tvBands.Nodes.Add(tnOrphaned);
            }

            if (tvBands.Nodes.Count > 0 && tvBands.Nodes[0].Nodes.Count > 0)
                tvBands.SelectedNode = tvBands.Nodes[0].Nodes[0];
            else if (tvBands.Nodes.Count > 0)
                tvBands.SelectedNode = tvBands.Nodes[0];
        }
Example #13
0
        private XmlDisc GetDiscFromFolder(string dirPath)
        {
            List<XmlTrack> tracks = new List<XmlTrack>();
            foreach (string ext in Program.Config.SupportedFileTypes)
            {
                Directory.GetFiles(dirPath, string.Format("*.{0}", ext),
                    SearchOption.TopDirectoryOnly).ToList().ForEach(delegate(string fp)
                {
                    tracks.Add(new XmlTrack(fp));
                });
            }

            XmlDisc tempDisc = new XmlDisc(tracks);
            Discs.Add(tempDisc);
            this.Tracks.AddRange(tempDisc.Tracks.ToArray());
            return tempDisc;
        }