/// <summary> /// Writing Data to specific TagStream /// </summary> protected override void OnWritingData(int MinorVersion) { if (ID3v2.AutoTextEncoding) { SetEncoding(); } TStream.FS.WriteByte((byte)TextEncoding); // Write Text Encoding Language.Write(TStream.FS); // Write Language TStream.FS.WriteByte((byte)_TimeStamp); TStream.FS.WriteByte((byte)_ContentType); TStream.WriteText(Text, TextEncoding, true); _Syllables.Sort(); // Sort Syllables byte[] Buf; foreach (Syllable sb in _Syllables) { TStream.WriteText(sb.Text, TextEncoding, true); Buf = BitConverter.GetBytes(sb.Time); Array.Reverse(Buf); TStream.FS.Write(Buf, 0, 4); } }
private void WriteFrameHeader(int MinorVersion) { byte[] Buf; int FrameIDLength = MinorVersion == 2 ? 3 : 4; // Length of FrameID according to version string Temp = _FrameID; // if minor version of ID3 were 2, the frameID is 3 character length if (MinorVersion == 2) { Temp = FramesInfo.Get3CharID(Temp); if (Temp == null) // This frame is not availabe in this version { return; } } Tag.WriteText(Temp, TextEncodings.Ascii, false); // Write FrameID Buf = BitConverter.GetBytes(Length); Array.Reverse(Buf); if (MinorVersion == 2) { Tag.FS.Write(Buf, 1, Buf.Length - 1); // Write Frame Size } else { Tag.FS.Write(Buf, 0, Buf.Length); // Write Frame Size } if (MinorVersion != 2) { // If newer than version 2 it have Flags Buf = BitConverter.GetBytes((ushort)_FrameFlags); Array.Reverse(Buf); Tag.FS.Write(Buf, 0, Buf.Length); // Write Frame Flag } }
/// <summary> /// Writing Data to specific TagStream /// </summary> protected override void OnWritingData(int MinorVersion) { if (ID3v2.AutoTextEncoding) { SetEncoding(); } TStream.FS.WriteByte((byte)_TextEncoding); TStream.WriteText(_MIMEType, TextEncodings.Ascii, true); TStream.WriteText(_FileName, _TextEncoding, true); TStream.WriteText(_Description, _TextEncoding, true); _Data.WriteTo(TStream.FS); }
/// <summary> /// Writing Data to specific TagStream /// </summary> protected override void OnWritingData(int MinorVersion) { TStream.WriteText(_Owner, TextEncodings.Ascii, true); ushort temp; byte[] Buf; temp = Convert.ToUInt16(_PreviewStart); Buf = BitConverter.GetBytes(temp); TStream.FS.Write(Buf, 0, 2); temp = Convert.ToUInt16(_PreviewLength); Buf = BitConverter.GetBytes(temp); TStream.FS.Write(Buf, 0, 2); Data.WriteTo(TStream.FS); }
private int WriteHeader() { TStream.WriteText("ID3", TextEncodings.Ascii, false); TStream.FS.WriteByte(Convert.ToByte(_Version.Minor)); TStream.FS.WriteByte(Convert.ToByte(_Version.Build)); TStream.FS.WriteByte((byte)_HeaderFlags); byte[] Buf = new byte[4]; int Len = Length; int TOrginLength = Len; for (int i = 3; i >= 0; i--) { Buf[i] = Convert.ToByte(Len % 0x80); Len /= 0x80; } TStream.FS.Write(Buf, 0, 4); return(TOrginLength); }
/// <summary> /// Call when frame need to write it's data to stream /// </summary> /// <param name="writer">TagStream to write data</param> /// <param name="MinorVersion">ID3 minor version</param> protected override void OnWritingData(int MinorVersion) { TStream.WriteText(_Text, TextEncodings.Ascii, false); }
/// <summary> /// Writing Data to specific TagStream /// </summary> protected override void OnWritingData(int MinorVersion) { TStream.WriteText(_Owner, TextEncodings.Ascii, true); TStream.FS.WriteByte(_Symbol); Data.WriteTo(TStream.FS); }