Ejemplo n.º 1
0
        /// <summary>
        /// Adds a frame to the tag.
        /// </summary>
        /// <param name="newFrame">The frame to add.</param>
        public void AddFrame(ID3v2Frame newFrame)
        {
            if (newFrame == null)
            {
                throw new ArgumentNullException("newFrame");
            }

            if (frames.ContainsKey(newFrame.Type))
            {
                ID3v2Frame     existingFrame = frames[newFrame.Type];
                FrameComposite composite     = existingFrame as FrameComposite;

                if (composite == null)
                {
                    composite = new FrameComposite(existingFrame.Type);
                    composite.AddFrame(existingFrame);

                    frames.Remove(newFrame.Type);
                    frames.Add(composite.Type, composite);
                }

                composite.AddFrame(newFrame);
            }
            else
            {
                frames.Add(newFrame.Type, newFrame);
            }
        }