private void ReadFrames () { var f = new Id3v2Frame(); do { f = f.ReadFrame(br, this.MajorVersion); // check if we have hit the padding. if (f.padding == true) { //we hit padding. lets advance to end and stop reading. br.BaseStream.Position = System.Convert.ToInt64(headerSize); break; } this.frames.Add(f); if (!this.framesHash.ContainsKey(f.frameName)) { this.framesHash.Add(f.frameName, f); } #region frameprocessing /* else { // figure out which type it is if (f.frameName.StartsWith("T")) { if (f.frameName.Equals("TXXX")) { ProcessTXXX(f); } else { ProcessTTYPE(f); } } else { if (f.frameName.StartsWith("W")) { if (f.frameName.Equals("WXXX")) { ProcessWXXX(f); } else { ProcessWTYPE(f); } } else { // if it isn't a muliple reader case (above) then throw it into the switch to process switch (f.frameName) { case "IPLS": ProcessIPLS(f); break; case "MCDI": ProcessMCDI(f); break; case "UFID": ProcessUFID(f); break; case "COMM": ProcessCOMM(f); break; default: frames.Add(f.frameName, f.frameContents); AddItemToList(f.frameName, "non text"); break; } } } }*/ #endregion } while (br.BaseStream.Position <= System.Convert.ToInt64(this.headerSize)); }