public static SimpleTag FromFile(string fileName) { SimpleTag result = new SimpleTag(); TagBase tag = new TagBase(); tag.ReadFromFile(fileName, new Achamenes.ID3.Frames.Parsers.FrameParserFactory()); foreach (Frames.Frame frame in tag.Frames) { if (frame is Frames.PictureFrame) { if (((Frames.PictureFrame)frame).PictureType == PictureType.CoverFront) { result.CoverArt = ((Frames.PictureFrame)frame).Picture; } else if (result.CoverArt == null) { result.CoverArt = ((Frames.PictureFrame)frame).Picture; } } else if (frame is Frames.ArtistTextFrame) { result.Artist = ((Frames.ArtistTextFrame)frame).Text; } else if (frame is Frames.AlbumTextFrame) { result.Album = ((Frames.AlbumTextFrame)frame).Text; } else if (frame is Frames.CommentExtendedTextFrame) { result.Comment = ((Frames.CommentExtendedTextFrame)frame).Text; } else if (frame is Frames.ComposerTextFrame) { result.Composer = ((Frames.ComposerTextFrame)frame).Text; } else if (frame is Frames.CopyrightTextFrame) { result.Copyright = ((Frames.CopyrightTextFrame)frame).Text; } else if (frame is Frames.EncodedByTextFrame) { result.EncodedBy = ((Frames.EncodedByTextFrame)frame).Text; } else if (frame is Frames.GenreTextFrame) { StandardGenreManager manager = new StandardGenreManager(); result.Genre = manager.TranslateToUserFriendly(((Frames.GenreTextFrame)frame).Text); } else if (frame is Frames.GroupingTextFrame) { result.Grouping = ((Frames.GroupingTextFrame)frame).Text; } else if (frame is Frames.LyricsExtendedTextFrame) { result.Lyrics = ((Frames.LyricsExtendedTextFrame)frame).Text; } else if (frame is Frames.OriginalArtistTextFrame) { result.OriginalArtist = ((Frames.OriginalArtistTextFrame)frame).Text; } else if (frame is Frames.TitleTextFrame) { result.Title = ((Frames.TitleTextFrame)frame).Text; } else if (frame is Frames.CustomUserUrlFrame) { result.UserUrl = ((Frames.CustomUserUrlFrame)frame).Url; } else if (frame is Frames.OfficialArtistUrlFrame) { result.ArtistUrl = ((Frames.OfficialArtistUrlFrame)frame).Url; } else if (frame is Frames.TrackTextFrame) { result.TrackNumber = ((Frames.TrackTextFrame)frame).TrackNumber; result.TotalTracks = ((Frames.TrackTextFrame)frame).TotalTracks; } else if (frame is Frames.PartOfSetTextFrame) { result.PartNumber = ((Frames.PartOfSetTextFrame)frame).PartNumber; result.TotalParts = ((Frames.PartOfSetTextFrame)frame).TotalParts; } else if (frame is Frames.YearTextFrame) { string year = ((Frames.YearTextFrame)frame).Text; if (year != "") { result.Year = year.Substring(0, 4); } } else if (frame is Frames.ReleaseTimeTextFrame) { string year = ((Frames.ReleaseTimeTextFrame)frame).Text; if (year != "") { result.Year = year.Substring(0, 4); } } else if (frame is Frames.BeatsPerMinuteTextFrame) { result.BPM = int.Parse((((Frames.BeatsPerMinuteTextFrame)frame).Text)); } } return(result); }
public static SimpleTag FromFile(string fileName) { SimpleTag result=new SimpleTag(); TagBase tag=new TagBase(); tag.ReadFromFile(fileName, new Achamenes.ID3.Frames.Parsers.FrameParserFactory()); foreach(Frames.Frame frame in tag.Frames) { if(frame is Frames.PictureFrame) { if(((Frames.PictureFrame)frame).PictureType==PictureType.CoverFront) result.CoverArt=((Frames.PictureFrame)frame).Picture; else if(result.CoverArt==null) result.CoverArt=((Frames.PictureFrame)frame).Picture; } else if(frame is Frames.ArtistTextFrame) result.Artist=((Frames.ArtistTextFrame)frame).Text; else if(frame is Frames.AlbumTextFrame) result.Album=((Frames.AlbumTextFrame)frame).Text; else if(frame is Frames.CommentExtendedTextFrame) result.Comment=((Frames.CommentExtendedTextFrame)frame).Text; else if(frame is Frames.ComposerTextFrame) result.Composer=((Frames.ComposerTextFrame)frame).Text; else if(frame is Frames.CopyrightTextFrame) result.Copyright=((Frames.CopyrightTextFrame)frame).Text; else if(frame is Frames.EncodedByTextFrame) result.EncodedBy=((Frames.EncodedByTextFrame)frame).Text; else if(frame is Frames.GenreTextFrame) { StandardGenreManager manager=new StandardGenreManager(); result.Genre=manager.TranslateToUserFriendly(((Frames.GenreTextFrame)frame).Text); } else if(frame is Frames.GroupingTextFrame) result.Grouping=((Frames.GroupingTextFrame)frame).Text; else if(frame is Frames.LyricsExtendedTextFrame) result.Lyrics=((Frames.LyricsExtendedTextFrame)frame).Text; else if(frame is Frames.OriginalArtistTextFrame) result.OriginalArtist=((Frames.OriginalArtistTextFrame)frame).Text; else if(frame is Frames.TitleTextFrame) result.Title=((Frames.TitleTextFrame)frame).Text; else if(frame is Frames.CustomUserUrlFrame) result.UserUrl=((Frames.CustomUserUrlFrame)frame).Url; else if(frame is Frames.OfficialArtistUrlFrame) result.ArtistUrl=((Frames.OfficialArtistUrlFrame)frame).Url; else if(frame is Frames.TrackTextFrame) { result.TrackNumber=((Frames.TrackTextFrame)frame).TrackNumber; result.TotalTracks=((Frames.TrackTextFrame)frame).TotalTracks; } else if(frame is Frames.PartOfSetTextFrame) { result.PartNumber=((Frames.PartOfSetTextFrame)frame).PartNumber; result.TotalParts=((Frames.PartOfSetTextFrame)frame).TotalParts; } else if(frame is Frames.YearTextFrame) { string year=((Frames.YearTextFrame)frame).Text; if(year!="") result.Year=year.Substring(0, 4); } else if(frame is Frames.ReleaseTimeTextFrame) { string year=((Frames.ReleaseTimeTextFrame)frame).Text; if(year!="") result.Year=year.Substring(0, 4); } else if(frame is Frames.BeatsPerMinuteTextFrame) { result.BPM=int.Parse((((Frames.BeatsPerMinuteTextFrame)frame).Text)); } } return result; }