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;
}