/// <summary>Creates the specified header.</summary> /// <param name="header">The header.</param> /// <param name="flags">The flags.</param> /// <param name="description">The description.</param> /// <param name="type">The type.</param> /// <param name="mimeType">Type of the MIME.</param> /// <param name="imageData">The image data.</param> /// <returns></returns> /// <exception cref="NotSupportedException"></exception> public static ID3v2APICFrame Create(ID3v2Header header, ID3v2FrameFlags flags, string description, ID3v2PictureType type, string mimeType, byte[] imageData) { ID3v2EncodingType encoding = ID3v2Encoding.Select(header, description + mimeType); // header, encoding[1], mimeType+0, pitureType[1], description+0, data byte[] descriptionBytes = ID3v2Encoding.GetBytes(encoding, description, true); byte[] mimeTypeBytes = ID3v2Encoding.GetBytes(encoding, mimeType, true); int contentSize = descriptionBytes.Length + mimeTypeBytes.Length + 1 + 1 + imageData.Length; var frameHeader = ID3v2FrameHeader.Create(header, "APIC", flags, contentSize); using (var ms = new MemoryStream()) { var writer = new DataWriter(ms); writer.Write(frameHeader.Data); writer.Write((byte)encoding); writer.Write(mimeTypeBytes); writer.Write((byte)type); writer.Write(descriptionBytes); writer.Write(imageData); if (frameHeader.HeaderSize + contentSize != ms.Position) { throw new Exception(); } return(new ID3v2APICFrame(new ID3v2Frame(header, ms.ToArray()))); } }
void Parse() { var encoding = (ID3v2EncodingType)Content[0]; var start = 1 + ID3v2Encoding.Parse(encoding, Content, 1, out description); ID3v2Encoding.Parse(0, Content, start, out address); }
void Parse() { var encoding = (ID3v2EncodingType)m_Content[0]; int start = 1 + ID3v2Encoding.Parse(encoding, m_Content, 1, out m_Description); ID3v2Encoding.Parse(0, m_Content, start, out m_Address); }
void Parse() { var encoding = (ID3v2EncodingType)Content[0]; var index = 1 + ID3v2Encoding.Parse(0, Content, 1, out mimeType); pictureType = (ID3v2PictureType)Content[index++]; index += ID3v2Encoding.Parse(encoding, Content, index, out description); imageDataStart = index; }
void Parse() { var encoding = (ID3v2EncodingType)m_Content[0]; int index = 1 + ID3v2Encoding.Parse(0, m_Content, 1, out m_MimeType); m_PictureType = (ID3v2PictureType)m_Content[index++]; index += ID3v2Encoding.Parse(encoding, m_Content, index, out m_Description); m_ImageDataStart = index; }
void Parse() { var encoding = (ID3v2EncodingType)Content[0]; language = ID3v2Encoding.ISO88591.GetString(Content, 1, 3); var len = ID3v2Encoding.Parse(encoding, Content, 4, out description); ID3v2Encoding.Parse(encoding, Content, 4 + len, out var text); lines = text.SplitNewLine(); }
void Parse() { var encoding = (ID3v2EncodingType)m_Content[0]; m_Language = ID3v2Encoding.ISO88591.GetString(m_Content, 1, 3); int start = 4 + ID3v2Encoding.Parse(encoding, m_Content, 4, out m_Descriptor); string text; ID3v2Encoding.Parse(encoding, m_Content, start, out text); m_Lines = text.Split('\n'); }
void Parse() { var encoding = (ID3v2EncodingType)Content[0]; language = ID3v2Encoding.ISO88591.GetString(Content, 1, 3); var start = 4 + ID3v2Encoding.Parse(encoding, Content, 4, out descriptor); string text; ID3v2Encoding.Parse(encoding, Content, start, out text); lines = text.Split('\n'); }
void Parse() { // encoding var encoding = (ID3v2EncodingType)Content[0]; // language language = ID3v2Encoding.ISO88591.GetString(Content, 1, 3); // timestamp bool isTimeStamp; { var mode = Content[4]; switch (mode) { case 0: isTimeStamp = false; break; case 1: isTimeStamp = true; break; default: throw new NotImplementedException(string.Format("Mode {0} is not implemented!", mode)); } } // content type contentType = (ContentType)Content[5]; // read descriptor var start = 6; start += ID3v2Encoding.Parse(encoding, Content, start, out descriptor); // read events var l_Events = new List <Event>(); while (start < Content.Length) { string text; start += ID3v2Encoding.Parse(encoding, Content, start, out text); long value = 0; for (var i = 0; i < 4; i++) { value = (value << 8) | Content[start++]; } l_Events.Add(new Event(text, value, isTimeStamp)); } events = l_Events.ToArray(); parsed = true; }
void ParseData() { int start = 0; EncodingType = (ID3v2EncodingType)m_Content[start++]; start += ID3v2Encoding.Parse(EncodingType, m_Content, start, out string name); start += ID3v2Encoding.Parse(EncodingType, m_Content, start, out string value); if (start != m_Content.Length) { Trace.WriteLine(string.Format("{0} bytes garbage at end of frame!", m_Content.Length - start)); } Name = name; Value = value; }
void Parse() { var encoding = ID3v2Encoding.Get((ID3v2EncodingType)Content[0]); var strings = encoding.GetString(RawData, 1, Content.Length - 1).Split('\0'); var i = 0; var list = new List <ID3v2Contributor>(); while (i < strings.Length) { var item = default(ID3v2Contributor); item.Involvement = strings[i++]; item.Involvee = strings[i++]; list.Add(item); } this.list = list.ToArray(); }
/// <summary>Creates a new ID3v2TextFrame.</summary> /// <param name="header">The header.</param> /// <param name="flags">The flags.</param> /// <param name="id">The identifier.</param> /// <param name="text">The text.</param> /// <returns></returns> /// <exception cref="NotSupportedException"></exception> public static ID3v2TextFrame Create(ID3v2Header header, ID3v2FrameFlags flags, string id, string text) { var encoding = ID3v2Encoding.Select(header, text); // header, encoding[1], name+0 var textBytes = ID3v2Encoding.GetBytes(encoding, text, true); var contentSize = 1 + textBytes.Length; var frameHeader = ID3v2FrameHeader.Create(header, id, flags, contentSize); using var ms = new MemoryStream(); var writer = new DataWriter(ms); writer.Write(frameHeader.Data); writer.Write((byte)encoding); writer.Write(textBytes); return(new ID3v2TextFrame(new ID3v2Frame(header, ms.ToArray()))); }
void Parse() { Encoding encoding = ID3v2Encoding.Get((ID3v2EncodingType)m_Content[0]); string[] strings = encoding.GetString(m_Data, 1, m_Content.Length - 1).Split('\0'); int i = 0; var l_List = new List <ID3v2Contributor>(); while (i < strings.Length) { var item = new ID3v2Contributor(); item.Involvement = strings[i++]; item.Involvee = strings[i++]; l_List.Add(item); } m_List = l_List.ToArray(); }
/// <summary>Creates a new header.</summary> /// <param name="header">The tag header.</param> /// <param name="flags">The flags.</param> /// <param name="name">The name.</param> /// <param name="value">The value.</param> /// <returns></returns> /// <exception cref="NotSupportedException"></exception> public static ID3v2TXXXFrame Create(ID3v2Header header, ID3v2FrameFlags flags, string name, string value) { var encoding = ID3v2Encoding.Select(header, name + value); // header, encoding[1], name+0, value+0 var nameBytes = ID3v2Encoding.GetBytes(encoding, name, true); var valueBytes = ID3v2Encoding.GetBytes(encoding, value, true); var contentSize = nameBytes.Length + valueBytes.Length + 1; var frameHeader = ID3v2FrameHeader.Create(header, "TXXX", flags, contentSize); using var ms = new MemoryStream(); var writer = new DataWriter(ms); writer.Write(frameHeader.Data); writer.Write((byte)encoding); writer.Write(nameBytes); writer.Write(valueBytes); return(new ID3v2TXXXFrame(new ID3v2Frame(header, ms.ToArray()))); }
void ParseData() { EncodingType = (ID3v2EncodingType)Content[0]; ID3v2Encoding.Parse(EncodingType, Content, 1, out var text); Text = text; }
void Parse() { ID3v2Encoding.Parse(0, m_Content, 0, out m_Address); }
void Parse() => ID3v2Encoding.Parse(0, Content, 0, out m_Address);
void ParseData() { EncodingType = (ID3v2EncodingType)m_Content[0]; ID3v2Encoding.Parse(EncodingType, m_Content, 1, out string text); Text = text; }
void Parse() => startIndex = 1 + ID3v2Encoding.Parse(0, Content, 0, out owner);
void Parse() { m_StartIndex = 1 + ID3v2Encoding.Parse(0, m_Content, 0, out m_Owner); }