Example #1
0
 private TagTypes ReadTagInfo(ref long position)
 {
     if ((position - read_size) >= 0L)
     {
         this.file.Seek(position - read_size);
         ByteVector vector = this.file.ReadBlock(read_size);
         try
         {
             int offset = vector.Count - ((int) 0x20L);
             if (vector.ContainsAt(TagLib.Ape.Footer.FileIdentifier, offset))
             {
                 TagLib.Ape.Footer footer = new TagLib.Ape.Footer(vector.Mid(offset));
                 if ((footer.CompleteTagSize == 0) || ((footer.Flags & FooterFlags.IsHeader) != ((FooterFlags) 0)))
                 {
                     return TagTypes.None;
                 }
                 position -= footer.CompleteTagSize;
                 return (TagTypes.None | TagTypes.Ape);
             }
             offset = vector.Count - ((int) 10L);
             if (vector.ContainsAt(TagLib.Id3v2.Footer.FileIdentifier, offset))
             {
                 TagLib.Id3v2.Footer footer2 = new TagLib.Id3v2.Footer(vector.Mid(offset));
                 position -= footer2.CompleteTagSize;
                 return (TagTypes.None | TagTypes.Id3v2);
             }
             if (vector.StartsWith(TagLib.Id3v1.Tag.FileIdentifier))
             {
                 position -= 0x80L;
                 return (TagTypes.None | TagTypes.Id3v1);
             }
         }
         catch (CorruptFileException)
         {
         }
     }
     return TagTypes.None;
 }
 private TagTypes ReadTagInfo(ref long position)
 {
     this.file.Seek(position);
     ByteVector data = this.file.ReadBlock(this.read_size);
     try
     {
         if (data.StartsWith(TagLib.Ape.Footer.FileIdentifier))
         {
             TagLib.Ape.Footer footer = new TagLib.Ape.Footer(data);
             position += footer.CompleteTagSize;
             return (TagTypes.None | TagTypes.Ape);
         }
         if (data.StartsWith(Header.FileIdentifier))
         {
             Header header = new Header(data);
             position += header.CompleteTagSize;
             return (TagTypes.None | TagTypes.Id3v2);
         }
     }
     catch (CorruptFileException)
     {
     }
     return TagTypes.None;
 }