private bool read(BinaryReader source, MetaDataIO.ReadTagParams readTagParams) { bool result = false; if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_ID3V1)) { if (iD3v1.Read(source, readTagParams)) { sizeInfo.TagSizes.Add(MetaDataIOFactory.TAG_ID3V1, iD3v1.Size); } } if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_ID3V2)) { if (!(audioDataIO is IMetaDataEmbedder)) // No embedded ID3v2 tag => supported tag is the standard version of ID3v2 { if (iD3v2.Read(source, readTagParams)) { sizeInfo.TagSizes.Add(MetaDataIOFactory.TAG_ID3V2, iD3v2.Size); } } } if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_APE)) { if (aPEtag.Read(source, readTagParams)) { sizeInfo.TagSizes.Add(MetaDataIOFactory.TAG_APE, aPEtag.Size); } } if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_NATIVE) && audioDataIO is IMetaDataIO) { IMetaDataIO nativeTag = (IMetaDataIO)audioDataIO; this.nativeTag = nativeTag; result = audioDataIO.Read(source, sizeInfo, readTagParams); if (result) { sizeInfo.TagSizes.Add(MetaDataIOFactory.TAG_NATIVE, nativeTag.Size); } } else { readTagParams.ReadTag = false; result = audioDataIO.Read(source, sizeInfo, readTagParams); } if (audioDataIO is IMetaDataEmbedder) // Embedded ID3v2 tag detected while reading { if (((IMetaDataEmbedder)audioDataIO).HasEmbeddedID3v2 > 0) { readTagParams.offset = ((IMetaDataEmbedder)audioDataIO).HasEmbeddedID3v2; if (iD3v2.Read(source, readTagParams)) { sizeInfo.TagSizes.Add(MetaDataIOFactory.TAG_ID3V2, iD3v2.Size); } } else { iD3v2.Clear(); } } return(result); }
public void Clear() { metaData.Clear(); }