예제 #1
0
        public CMetaData LoadFileTags(string sFile)
        {
            CMetaData metaTags = new CMetaData();

            using (TagLib.File tagFile = TagLib.File.Create(sFile))
            {
                GetTags(tagFile, ref metaTags);
                ShowTags(metaTags);
            }
            return(metaTags);
        }
예제 #2
0
 public void ShowTags(CMetaData metaTags)
 {
     txtTitle.Text        = metaTags.sTitle;
     txtAlbum.Text        = metaTags.sAlbum;
     txtTrack.Text        = metaTags.sTrack;
     txtYear.Text         = metaTags.sYear;
     txtArtists.Text      = CombineArray(metaTags.sArtists);
     txtAlbumArtists.Text = CombineArray(metaTags.sAlbumArtists);
     txtComposers.Text    = CombineArray(metaTags.sComposers);
     picCover.Image       = metaTags.image;
     txtGenre.Text        = CombineArray(metaTags.sGenres);
 }
예제 #3
0
        private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string sRootParentDir = Directory.GetParent(settings.sRootSourceDir).FullName;
            string sPath          = sRootParentDir + Path.DirectorySeparatorChar + treeView1.SelectedNode.FullPath;

            foreach (string sSuffix in lAudioDataEnding)
            {
                if (sPath.EndsWith(sSuffix))
                {
                    CMetaData metaData = LoadFileTags(sPath);
                }
            }
        }
예제 #4
0
        public void GetTags(TagLib.File tagFile, ref CMetaData metaTags)
        {
            metaTags.sTitle        = tagFile.Tag.Title;
            metaTags.sAlbum        = tagFile.Tag.Album;
            metaTags.sTrack        = tagFile.Tag.Track.ToString();
            metaTags.sYear         = tagFile.Tag.Year.ToString();
            metaTags.sArtists      = tagFile.Tag.Performers;
            metaTags.sAlbumArtists = tagFile.Tag.AlbumArtists;
            metaTags.sComposers    = tagFile.Tag.Composers;

            try
            {
                MemoryStream ms = new MemoryStream(tagFile.Tag.Pictures[0].Data.Data);
                metaTags.image = Image.FromStream(ms);
            }
            catch (IndexOutOfRangeException)
            {
                metaTags.image = new Bitmap(800, 800);
            }

            metaTags.sGenres = tagFile.Tag.Genres;
        }
예제 #5
0
        public string GetRenamedFile(string sPathEndingWithSeparator, string sOldName, ref CMetaData metaTags)
        {
            string sTmpPath = "";

            if (settings.bChangeName)
            {
                sTmpPath = sPathEndingWithSeparator;
                if (settings.bChangeToTrack)
                {
                    sTmpPath += (settings.bChangeToTitle || settings.bChangeToArtist) ? metaTags.sTrack + " - " : metaTags.sTrack;
                }
                if (settings.bChangeToArtist)
                {
                    try
                    {
                        sTmpPath += settings.bChangeToTitle ? metaTags.sArtists[0] + " - " : metaTags.sArtists[0];
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(String.Format("Error renaming file {0}, no artist meta data?", sOldName), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                if (settings.bChangeToTitle)
                {
                    sTmpPath += metaTags.sTitle;
                }
            }
            else
            {
                sTmpPath = sPathEndingWithSeparator + sOldName;
            }
            return(sTmpPath);
        }