/// <summary> /// New DataWithSymbolFrame /// </summary> /// <param name="FrameID">FrameID</param> /// <param name="Flags">Frame Flags</param> /// <param name="Data">FileStream to read frame data from</param> /// <param name="Length">Maximum available length for this frame</param> public DataWithSymbolFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); _Owner = TStream.ReadText(Length, TextEncodings.Ascii, ref Length, true); _Symbol = TStream.ReadByte(FS); Length--; _Data = TStream.ReadData(Length); }
/// <summary> /// Create new AudioEncryptionFrame /// </summary> /// <param name="FrameID">4 Characters tag identifier</param> /// <param name="Flags">2 Bytes flags identifier</param> /// <param name="Data">Contain Data for this frame</param> /// <param name="Length">Maximum available length for this frame</param> public AudioEncryptionFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); _Owner = TStream.ReadText(Length, TextEncodings.Ascii, ref Length, true); _PreviewStart = Convert.ToInt32(TStream.ReadUInt(2)); _PreviewLength = Convert.ToInt32(TStream.ReadUInt(2)); Length -= 4; _Data = TStream.ReadData(Length); }
/// <summary> /// Create new ID3v2 class for specific file /// </summary> /// <param name="FilePath">FileAddress to read ID3 information from</param> /// <param name="LoadData">Indicate load ID3 in constructor or not</param> public ID3v2(bool LoadData, Stream FS) { // ------ Set default values ----------- _LoadLinkedFrames = true; _DropUnknown = false; Initializer(); TStream = new BreadPlayer.Tags.TagStreamUWP(FS); if (LoadData == true) { Load(); } }
/// <summary> /// Create a new Frame class /// </summary> /// <param name="FrameID">4 Characters tag identifier</param> /// <param name="Flags">Frame Falgs</param> protected Frame(string FrameID, FrameFlags Flags, Stream FS) { // All FrameID letters must be capital FrameID = FrameID.ToUpper(); if (!ValidatingFrameID(FrameID, ExceptionLevels.Error)) { return; } Tag = new BreadPlayer.Tags.TagStreamUWP(FS); _FrameFlags = Flags; _FrameID = FrameID; _IsLinked = false; }
/// <summary> /// New SynchronisedText /// </summary> /// <param name="FrameID">FrameID</param> /// <param name="Flags">Frame Flag</param> /// <param name="Data">FileStream contain current frame data</param> /// <param name="Length">Maximum availabel length for this frame</param> public SynchronisedText(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { _Syllables = new FrameCollection <Syllable>("Syllables"); TStream = new BreadPlayer.Tags.TagStreamUWP(FS); TextEncoding = (TextEncodings)TStream.ReadByte(FS); if (!IsValidEnumValue(TextEncoding, ExceptionLevels.Error, FrameID)) { return; } Length--; Language = new Language(TStream.FS); Length -= 3; _TimeStamp = (TimeStamps)TStream.ReadByte(FS); if (!IsValidEnumValue(_TimeStamp, ExceptionLevels.Error, FrameID)) { return; } Length--; _ContentType = (ContentTypes)TStream.ReadByte(FS); if (!IsValidEnumValue(_ContentType)) { _ContentType = ContentTypes.Other; } Length--; // use Text variable for descriptor property Text = TStream.ReadText(Length, TextEncoding, ref Length, true); string tempText; uint tempTime; while (Length > 5) { tempText = TStream.ReadText(Length, TextEncoding, ref Length, true); tempTime = TStream.ReadUInt(4); _Syllables.Add(FrameID, new Syllable(tempTime, tempText)); Length -= 4; } }
/// <summary> /// Create new TextWithLanguageFrame /// </summary> /// <param name="FrameID">4 Characters tag identifier</param> /// <param name="Flags">2 Bytes flags identifier</param> /// <param name="Data">TagStream contains frame data</param> /// <param name="Length">Maximum available length for current frame is TagStream</param> public TextWithLanguageFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); TextEncoding = (TextEncodings)TStream.FS.ReadByte(); Length--; if (!IsValidEnumValue(TextEncoding, ExceptionLevels.Error, FrameID)) { return; } _Language = new Language(TStream.FS); Length -= 3; Description = TStream.ReadText(Length, TextEncoding, ref Length, true); Text = TStream.ReadText(Length, TextEncoding); }
/// <summary> /// Create new GeneralFileFrame /// </summary> /// <param name="FrameID">4 Characters tag identifier</param> /// <param name="Flags">2 Bytes flags identifier</param> /// <param name="Data">Contain Data for this frame</param> /// <param name="Length">Maximum available length for this frame</param> public GeneralFileFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); _TextEncoding = (TextEncodings)TStream.ReadByte(FS); Length--; if (!IsValidEnumValue(_TextEncoding, ExceptionLevels.Error, FrameID)) { return; } _MIMEType = TStream.ReadText(Length, TextEncodings.Ascii, ref Length, true); _FileName = TStream.ReadText(Length, _TextEncoding, ref Length, true); _Description = TStream.ReadText(Length, _TextEncoding, ref Length, true); _Data = TStream.ReadData(Length); }
/// <summary> /// Create new EventTimingCodeFrame /// </summary> /// <param name="FrameID">FrameID</param> /// <param name="Flags">Flags of frame</param> /// <param name="Data">TagStream to read data from</param> /// <param name="Length">Maximum available length</param> public EventTimingCodeFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { _Events = new FrameCollection <EventCode>("EventCode"); TStream = new BreadPlayer.Tags.TagStreamUWP(FS); _TimeStamp = (TimeStamps)TStream.ReadByte(FS); if (!IsValidEnumValue(_TimeStamp, ExceptionLevels.Error, FrameID)) { return; } Length--; while (Length >= 5) { _Events.Add(FrameID, new EventCode(TStream.ReadByte(FS), TStream.ReadUInt(4))); Length -= 5; } }
public Language(Stream FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); Read(); }
private string _Text; // Contain text of current frame /// <summary> /// Create new TextOnlyFrame /// </summary> /// <param name="FrameID">4 Characters tag identifier</param> /// <param name="Flags">Flags of current frame</param> protected TextOnlyFrame(string FrameID, FrameFlags Flags, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); }
/// <summary> /// New BinaryFrame /// </summary> /// <param name="FrameID">FrameID</param> /// <param name="Flags">Frame Flag</param> /// <param name="Data">FileStream contain frame data</param> /// <param name="Length">Maximum available length for this frame</param> public BinaryFrame(string FrameID, FrameFlags Flags, int Length, Stream FS) : base(FrameID, Flags, FS) { TStream = new BreadPlayer.Tags.TagStreamUWP(FS); _Data = TStream.ReadData(Length); }