Exemplo n.º 1
0
		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));
		}