public bool Read(BinaryReader source, MetaDataIO.ReadTagParams readTagParams) { throw new NotImplementedException(); }
public bool Read(BinaryReader source, AudioDataManager.SizeInfo sizeInfo, MetaDataIO.ReadTagParams readTagParams) { return(audioData.Read(source, sizeInfo, readTagParams)); }
public bool Read(BinaryReader source, MetaDataIO.ReadTagParams readTagParams) { return(metaData.Read(source, readTagParams)); }
private bool read(BinaryReader source, MetaDataIO.ReadTagParams readTagParams) { bool result = false; if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_ID3V1)) { if (iD3v1.Read(source, readTagParams)) { sizeInfo.SetSize(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.SetSize(MetaDataIOFactory.TAG_ID3V2, iD3v2.Size); } } } if (audioDataIO.IsMetaSupported(MetaDataIOFactory.TAG_APE)) { if (aPEtag.Read(source, readTagParams)) { sizeInfo.SetSize(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.SetSize(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.SetSize(MetaDataIOFactory.TAG_ID3V2, iD3v2.Size); } } else { iD3v2.Clear(); } } return(result); }
public Boolean UpdateTagInFile(TagData theTag, Int32 tagType) { var result = true; IMetaDataIO theMetaIO; LogDelegator.GetLocateDelegate()(fileName); if (audioDataIO.IsMetaSupported(tagType)) { try { theMetaIO = getMeta(tagType); var s = (null == stream) ? new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.Read, bufferSize, fileOptions) : stream; var r = new BinaryReader(s); var w = new BinaryWriter(s); try { // If current file can embed metadata, do a 1st pass to detect embedded metadata position if (audioDataIO is IMetaDataEmbedder) { var readTagParams = new MetaDataIO.ReadTagParams(false, false); readTagParams.PrepareForWriting = true; audioDataIO.Read(r, sizeInfo, readTagParams); theMetaIO.SetEmbedder((IMetaDataEmbedder)audioDataIO); } result = theMetaIO.Write(r, w, theTag); } finally { if (null == stream) { r.Close(); w.Close(); } } } catch (ArgumentOutOfRangeException e) { throw new AudioDataCorruptionException( "Possible audio data corruption, check Inner Exception for details", e); } catch (Exception e) { System.Console.WriteLine(e.Message); System.Console.WriteLine(e.StackTrace); LogDelegator.GetLogDelegate()(Log.LV_ERROR, e.Message); result = false; } } else { LogDelegator.GetLogDelegate()(Log.LV_DEBUG, "Tag type " + tagType + " not supported"); } return(result); }
public Boolean Read(BinaryReader source, MetaDataIO.ReadTagParams readTagParams) { return(_metaData.Read(source, readTagParams)); }