Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 /// <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);
 }