Beispiel #1
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;
            }
        }
Beispiel #2
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;
        }
Beispiel #3
0
        /// <summary>
        /// Builds a SysCommonMessage.
        /// </summary>
        public void Build()
        {
            result = (SysCommonMessage)messageCache[message];

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

                messageCache.Add(message, result);
            }
        }
Beispiel #4
0
        public virtual void Send(SysCommonMessage message)
        {
            #region Require

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

            #endregion

            Send(message.Message);
        }
Beispiel #5
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);
        }
        /// <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);
        }
Beispiel #7
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);
        }
 public SysCommonMessageEventArgs(SysCommonMessage message)
 {
     this.message = message;
 }
Beispiel #9
0
 /// <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);
 }
Beispiel #10
0
 /// <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;
 }