Пример #1
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            if (frameData.Length >= 5)
            {
                // Encoding type
                TextEncodingType encType = (TextEncodingType)frameData[0];

                // Language
                char[] languageBytes = new char[COMMFrame.LanguageFieldLength];
                Array.Copy(frameData, 1, languageBytes, 0, languageBytes.Length);
                string languageStr = (new String(languageBytes)).ToUpper();
                language = new EncodedString(LanguageEncodingType, languageStr);

                // Text
                byte[] textBytes = new byte[frameData.Length - 4];
                Array.Copy(frameData, 4, textBytes, 0, textBytes.Length);
                IList <EncodedString> strings = EncodedString.CreateStrings(encType, textBytes);
                if (strings.Count >= 2)
                {
                    description      = strings[0];
                    base.EncodedText = strings[1];
                    SetEncodedStringSettings();
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            IList <EncodedString> strings = EncodedString.CreateStrings(frameData);

            if (strings.Count >= 1)
            {
                text = strings[0];                   //*** no support yet for multiple strings
                SetEncodedStringSettings();
            }
        }
Пример #3
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            IList <EncodedString> strings = EncodedString.CreateStrings(frameData);

            if (strings.Count >= 2)
            {
                description      = strings[0];
                base.EncodedText = strings[1];
                SetEncodedStringSettings();
            }
        }
Пример #4
0
 /// <summary>
 /// Parses the raw frame data.
 /// </summary>
 /// <param name="frameData">The raw frame data.</param>
 /// <param name="version">The ID3v2 version of the tag being parsed.</param>
 protected override void ParseFrameData(byte[] frameData, ID3Versions version)
 {
     if (frameData.Length > 0)
     {
         IList <EncodedString> strings =
             EncodedString.CreateStrings(URLLinkFrame.UrlEncodingType, frameData);
         url = strings[0];                   // "If the text string is followed by a string
         // termination, all the following information should be ignored and not be displayed."
         SetEncodedStringSettings();
     }
 }
Пример #5
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            IList <EncodedString> strings =
                EncodedString.CreateStrings(TextEncodingType.ISO_8859_1, frameData, 1,
                                            delegate(byte[] leftoverBytes) { Identifier = leftoverBytes; });

            if (strings.Count == 1)
            {
                ownerIdentifier = strings[0];
                SetEncodedStringSettings();
            }
        }
Пример #6
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            // "The URL is always encoded with ISO-8859-1." [ID3 Spec.]
            // The description is encoded according to the Text Encoding field, but
            // the URL is always ISO-8859-1. So, create one EncodedString dynamically
            // (using the text encoding byte) and get the remainder back as byte[].
            // Then pass this back through with the encoding specified as ISO-8859-1.
            IList <EncodedString> strings = EncodedString.CreateStrings(frameData, 1,
                                                                        delegate(byte[] leftoverBytes) {
                byte[] urlBytes = leftoverBytes;
                strings         = EncodedString.CreateStrings(URLLinkFrame.UrlEncodingType, leftoverBytes);
                base.EncodedUrl = strings[0];
            });

            description = strings[0];
            SetEncodedStringSettings();
        }
Пример #7
0
        /// <summary>
        /// Parses the raw frame data.
        /// </summary>
        /// <param name="frameData">The raw frame data.</param>
        /// <param name="version">The ID3v2 version of the tag being parsed.</param>
        protected override void ParseFrameData(byte[] frameData, ID3Versions version)
        {
            // Encoding type
            TextEncodingType encType = (TextEncodingType)frameData[0];

            // MIME type
            int mimeEnd = FindNull(frameData, 1);

            byte[] mimeBytes = new byte[mimeEnd - 1];
            Array.Copy(frameData, 1, mimeBytes, 0, mimeBytes.Length);
            mimeType = new EncodedString(MimeTypeEncodingType, mimeBytes);

            byte[] remainingBytes = new byte[(frameData.Length - mimeEnd) - 1];
            Array.Copy(frameData, mimeEnd + 1, remainingBytes, 0, remainingBytes.Length);

            IList <EncodedString> strings = EncodedString.CreateStrings(encType, remainingBytes, 2,
                                                                        delegate(byte[] leftoverBytes) { encapsulatedObject = leftoverBytes; });

            filename    = strings[0];
            description = strings[1];
            SetEncodedStringSettings();
        }