public IMidiMessage Clone()
        {
            IMidiMessage ret = null;

            if (this.MessageType == MessageType.Channel)
            {
                ret = new ChannelMessage(MessageData);
            }
            else if (this.MessageType == MessageType.Meta)
            {
                ret = new MetaMessage(this.MetaType, byteData);
            }
            else if (this.MessageType == MessageType.SystemCommon)
            {
                ret = new SysCommonMessage(MessageData);
            }
            else if (this.MessageType == MessageType.SystemExclusive)
            {
                ret = new SysExMessage(byteData);
            }
            else if (this.MessageType == MessageType.SystemRealtime)
            {
                ret = SysRealtimeMessage.FromType(realtimeType);
                ;
            }
            return(ret);
        }
Ejemplo n.º 2
0
        private void Write(SysCommonMessage message)
        {
            // Escaped messages cancel running status.
            runningStatus = 0;

            // Escaped message.
            //trackData.Add((byte)0xF7);

            //trackData.Add((byte)message.Status);

            switch (message.SysCommonType)
            {
            case SysCommonType.MidiTimeCode:
                //trackData.Add((byte)message.Data1);
                break;

            case SysCommonType.SongPositionPointer:
                //trackData.Add((byte)message.Data1);
                //trackData.Add((byte)message.Data2);
                break;

            case SysCommonType.SongSelect:
                //trackData.Add((byte)message.Data1);
                break;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the SongPositionPointerBuilder class
        /// with the specified song position pointer message.
        /// </summary>
        /// <param name="message">
        /// The song position pointer message to use for initializing the
        /// SongPositionPointerBuilder.
        /// </param>
        /// <exception cref="ArgumentException">
        /// If message is not a song position pointer message.
        /// </exception>
        public SongPositionPointerBuilder(SysCommonMessage message)
        {
            builder      = new SysCommonMessageBuilder();
            builder.Type = SysCommonType.SongPositionPointer;

            Initialize(message);

            Ppqn = PpqnClock.PpqnMinValue;
        }
        /// <summary>
        /// Builds a SysCommonMessage.
        /// </summary>
        public void Build()
        {
            result = (SysCommonMessage)messageCache[message];

            if (result == null)
            {
                result = new SysCommonMessage(message);

                messageCache.Add(message, result);
            }
        }
Ejemplo n.º 5
0
        public virtual void Send(SysCommonMessage message)
        {
            #region Require

            if (IsDisposed)
            {
                throw new ObjectDisposedException(this.GetType().Name);
            }

            #endregion

            Send(message.Message);
        }
Ejemplo n.º 6
0
        public override void Send(SysCommonMessage message)
        {
            #region Require

            if (IsDisposed)
            {
                throw new ObjectDisposedException(this.GetType().Name);
            }

            #endregion

            // System common cancels running status.
            runningStatus = 0;

            base.Send(message);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Determines whether two SysCommonMessage instances are equal.
        /// </summary>
        /// <param name="obj">
        /// The SysCommonMessage to compare with the current SysCommonMessage.
        /// </param>
        /// <returns>
        /// <b>true</b> if the specified SysCommonMessage is equal to the
        /// current SysCommonMessage; otherwise, <b>false</b>.
        /// </returns>
        public override bool Equals(object obj)
        {
            #region Guard

            if (!(obj is SysCommonMessage))
            {
                return(false);
            }

            #endregion

            SysCommonMessage message = (SysCommonMessage)obj;

            return(this.SysCommonType == message.SysCommonType &&
                   this.Data1 == message.Data1 &&
                   this.Data2 == message.Data2);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Initializes the SongPositionPointerBuilder with the specified
        /// SysCommonMessage.
        /// </summary>
        /// <param name="message">
        /// The SysCommonMessage to use to initialize the
        /// SongPositionPointerBuilder.
        /// </param>
        /// <exception cref="ArgumentException">
        /// If the SysCommonMessage is not a song position pointer message.
        /// </exception>
        public void Initialize(SysCommonMessage message)
        {
            #region Require

            if (message == null)
            {
                throw new ArgumentNullException("message");
            }
            else if (message.SysCommonType != SysCommonType.SongPositionPointer)
            {
                throw new ArgumentException(
                          "Message is not a song position pointer message.");
            }

            #endregion

            builder.Initialize(message);
        }
 /// <summary>
 /// Initializes a new instance of the SysCommonMessageBuilder class
 /// with the specified SystemCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use for initializing the
 /// SysCommonMessageBuilder.
 /// </param>
 /// <remarks>
 /// The SysCommonMessageBuilder uses the specified SysCommonMessage to
 /// initialize its property values.
 /// </remarks>
 public SysCommonMessageBuilder(SysCommonMessage message)
 {
     Initialize(message);
 }
 /// <summary>
 /// Initializes a new instance of the SysCommonMessageBuilder class 
 /// with the specified SystemCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use for initializing the 
 /// SysCommonMessageBuilder.
 /// </param>
 /// <remarks>
 /// The SysCommonMessageBuilder uses the specified SysCommonMessage to 
 /// initialize its property values.
 /// </remarks>
 public SysCommonMessageBuilder(SysCommonMessage message)
 {
     Initialize(message);
 }
        /// <summary>
        /// Builds a SysCommonMessage.
        /// </summary>
        public void Build()
        {
            result = (SysCommonMessage)messageCache[message];

            if(result == null)
            {
                result = new SysCommonMessage(message);

                messageCache.Add(message, result);
            }
        }
 /// <summary>
 /// Initializes the SysCommonMessageBuilder with the specified 
 /// SysCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use for initializing the 
 /// SysCommonMessageBuilder.
 /// </param>
 public void Initialize(SysCommonMessage message)
 {
     this.message = message.Message;
 }
Ejemplo n.º 13
0
        public virtual void Send(SysCommonMessage message)
        {
            #region Require

            if(IsDisposed)
            {
                throw new ObjectDisposedException(this.GetType().Name);
            }

            #endregion

            Send(message.Message);
        }
 public virtual void Send(SysCommonMessage message)
 {
     Send(message.Message);
 }
        private void Write(SysCommonMessage message)
        {
            // Escaped messages cancel running status.
            runningStatus = 0;

            // Escaped message.
            trackData.Add((byte)0xF7);

            trackData.Add((byte)message.Status);

            switch (message.SysCommonType)
            {
                case SysCommonType.MidiTimeCode:
                    trackData.Add((byte)message.Data1);
                    break;

                case SysCommonType.SongPositionPointer:
                    trackData.Add((byte)message.Data1);
                    trackData.Add((byte)message.Data2);
                    break;

                case SysCommonType.SongSelect:
                    trackData.Add((byte)message.Data1);
                    break;
            }
        }
 public virtual void Send(SysCommonMessage message)
 {
     Send(message.Message);
 }
        /// <summary>
        /// Initializes a new instance of the SongPositionPointerBuilder class
        /// with the specified song position pointer message.
        /// </summary>
        /// <param name="message">
        /// The song position pointer message to use for initializing the 
        /// SongPositionPointerBuilder.
        /// </param>
        /// <exception cref="ArgumentException">
        /// If message is not a song position pointer message.
        /// </exception>
        public SongPositionPointerBuilder(SysCommonMessage message)
        {
            builder = new SysCommonMessageBuilder();
            builder.Type = SysCommonType.SongPositionPointer;

            Initialize(message);

            Ppqn = PpqnClock.PpqnMinValue;
        }
        /// <summary>
        /// Initializes the SongPositionPointerBuilder with the specified 
        /// SysCommonMessage.
        /// </summary>
        /// <param name="message">
        /// The SysCommonMessage to use to initialize the 
        /// SongPositionPointerBuilder.
        /// </param>
        /// <exception cref="ArgumentException">
        /// If the SysCommonMessage is not a song position pointer message.
        /// </exception>
        public void Initialize(SysCommonMessage message)
        {
            #region Require

            if(message == null)
            {
                throw new ArgumentNullException("message");
            }
            else if(message.SysCommonType != SysCommonType.SongPositionPointer)
            {
                throw new ArgumentException(
                    "Message is not a song position pointer message.");
            }

            #endregion

            builder.Initialize(message);
        }
 public SysCommonMessageEventArgs(SysCommonMessage message, int absoluteTicks = -1)
 {
     this.message       = message;
     this.AbsoluteTicks = absoluteTicks;
 }
 /// <summary>
 /// Initializes the SongPositionPointerBuilder with the specified 
 /// SysCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use to initialize the 
 /// SongPositionPointerBuilder.
 /// </param>
 /// <exception cref="ArgumentException">
 /// If the SysCommonMessage is not a song position pointer message.
 /// </exception>
 public void Initialize(SysCommonMessage message)
 {
     builder.Initialize(message);
 }
 /// <summary>
 /// Initializes the SongPositionPointerBuilder with the specified
 /// SysCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use to initialize the
 /// SongPositionPointerBuilder.
 /// </param>
 /// <exception cref="ArgumentException">
 /// If the SysCommonMessage is not a song position pointer message.
 /// </exception>
 public void Initialize(SysCommonMessage message)
 {
     builder.Initialize(message);
 }
Ejemplo n.º 22
0
        public override void Send(SysCommonMessage message)
        {
            #region Require

            if(IsDisposed)
            {
                throw new ObjectDisposedException(this.GetType().Name);
            }

            #endregion

            // System common cancels running status.
            runningStatus = 0;

            base.Send(message);
        }
Ejemplo n.º 23
0
 public SysCommonMessageEventArgs(SysCommonMessage message)
 {
     this.message = message;
 }
 public SysCommonMessageEventArgs(SysCommonMessage message)
 {
     this.message = message;
 }
 /// <summary>
 /// Initializes the SysCommonMessageBuilder with the specified
 /// SysCommonMessage.
 /// </summary>
 /// <param name="message">
 /// The SysCommonMessage to use for initializing the
 /// SysCommonMessageBuilder.
 /// </param>
 public void Initialize(SysCommonMessage message)
 {
     this.message = message.Message;
 }