Ejemplo n.º 1
0
 public static PrivateFrame Get(TagLib.Id3v2.Tag tag, string owner, bool create)
 {
     PrivateFrame frame;
     IEnumerator<Frame> enumerator = tag.GetFrames(FrameType.PRIV).GetEnumerator();
     try
     {
         while (enumerator.MoveNext())
         {
             Frame current = enumerator.Current;
             frame = current as PrivateFrame;
             if ((frame != null) && (frame.Owner == owner))
             {
                 return frame;
             }
         }
     }
     finally
     {
         if (enumerator == null)
         {
         }
         enumerator.Dispose();
     }
     if (!create)
     {
         return null;
     }
     frame = new PrivateFrame(owner);
     tag.AddFrame(frame);
     return frame;
 }
Ejemplo n.º 2
0
 public override Frame Clone()
 {
     PrivateFrame frame = new PrivateFrame(this.owner);
     if (this.data != null)
     {
         frame.data = new ByteVector(this.data);
     }
     return frame;
 }
Ejemplo n.º 3
0
        public override Frame Clone()
        {
            PrivateFrame frame = new PrivateFrame(owner);

            if (data != null)
            {
                frame.data = new ByteVector(data);
            }
            return(frame);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///    Creates a deep copy of the current instance.
        /// </summary>
        /// <returns>
        ///    A new <see cref="Frame" /> object identical to the
        ///    current instance.
        /// </returns>
        public override Frame Clone()
        {
            var frame = new PrivateFrame(Owner);

            if (PrivateData != null)
            {
                frame.PrivateData = new ByteVector(PrivateData);
            }
            return(frame);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///    Gets a specified private frame from the specified tag,
        ///    optionally creating it if it does not exist.
        /// </summary>
        /// <param name="tag">
        ///    A <see cref="Tag" /> object to search in.
        /// </param>
        /// <param name="owner">
        ///    A <see cref="string" /> specifying the owner to match.
        /// </param>
        /// <param name="create">
        ///    A <see cref="bool" /> specifying whether or not to create
        ///    and add a new frame to the tag if a match is not found.
        /// </param>
        /// <returns>
        ///    A <see cref="PrivateFrame" /> object containing the
        ///    matching frame, or <see langword="null" /> if a match
        ///    wasn't found and <paramref name="create" /> is <see
        ///    langword="false" />.
        /// </returns>
        public static PrivateFrame Get(Tag tag, string owner, bool create)
        {
            PrivateFrame priv;

            foreach (Frame frame in tag.GetFrames(FrameType.PRIV))
            {
                priv = frame as PrivateFrame;
                if (priv != null && priv.Owner == owner)
                {
                    return(priv);
                }
            }

            if (!create)
            {
                return(null);
            }

            priv = new PrivateFrame(owner);
            tag.AddFrame(priv);
            return(priv);
        }
Ejemplo n.º 6
0
		/// <summary>
		///    Creates a deep copy of the current instance.
		/// </summary>
		/// <returns>
		///    A new <see cref="Frame" /> object identical to the
		///    current instance.
		/// </returns>
		public override Frame Clone ()
		{
			PrivateFrame frame = new PrivateFrame (owner);
			if (data != null)
				frame.data = new ByteVector (data);
			return frame;
		}
Ejemplo n.º 7
0
		/// <summary>
		///    Gets a specified private frame from the specified tag,
		///    optionally creating it if it does not exist.
		/// </summary>
		/// <param name="tag">
		///    A <see cref="Tag" /> object to search in.
		/// </param>
		/// <param name="owner">
		///    A <see cref="string" /> specifying the owner to match.
		/// </param>
		/// <param name="create">
		///    A <see cref="bool" /> specifying whether or not to create
		///    and add a new frame to the tag if a match is not found.
		/// </param>
		/// <returns>
		///    A <see cref="PrivateFrame" /> object containing the
		///    matching frame, or <see langword="null" /> if a match
		///    wasn't found and <paramref name="create" /> is <see
		///    langword="false" />.
		/// </returns>
		public static PrivateFrame Get (Tag tag, string owner,
		                                bool create)
		{
			PrivateFrame priv;
			
			foreach (Frame frame in tag.GetFrames (FrameType.PRIV)) {
				priv = frame as PrivateFrame;
				if (priv != null && priv.Owner == owner)
					return priv;
			}
			
			if (!create)
				return null;
			
			priv = new PrivateFrame (owner);
			tag.AddFrame (priv);
			return priv;
		}
Ejemplo n.º 8
0
		public void TestPrivateFrame ()
		{
			ByteVector data = val_sing;
			data.Add (data); data.Add (data); data.Add (data);
			data.Add (data); data.Add (data); data.Add (data);
			data.Add (data); data.Add (data); data.Add (data);
			data.Add (data); data.Add (data); data.Add (data);
			// data.Add (data); data.Add (data); data.Add (data);
			
			PrivateFrame frame = new PrivateFrame (val_sing, data);
			
			FrameTest (frame, 3, null,
				delegate (ByteVector d, byte v) {
					return new PrivateFrame (d, v);
				},
				
				delegate (Frame f, string m) {
					PrivateFrame g = (f as PrivateFrame);
					Assert.AreEqual (val_sing, g.Owner, m);
					Assert.AreEqual (data, g.PrivateData, m);
				});
		}