/// <summary> /// Initializes a new instance of the SysCommonMessage class with a /// system common message packed as an integer. /// </summary> /// <param name="message"> /// The packed system common message to use for initialization. /// </param> public SysCommonMessage(int message) { // Enforce preconditions. if (!SysCommonMessage.IsSysCommonMessage(message)) { throw new ArgumentException( "Message is not a system common message.", "message"); } // // Initialize properties. // Type = (SysCommonType)ShortMessage.UnpackStatus(message); Data1 = ShortMessage.UnpackData1(message); Data2 = ShortMessage.UnpackData2(message); }
/// <summary> /// Initializes a new instance of the ChannelMessage class with a /// channel message packed into an integer. /// </summary> /// <param name="message"> /// The packed channel message to use for initialization. /// </param> /// <exception cref="ArgumentException"> /// Thrown if the message does not represent a channel message. /// </exception> public ChannelMessage(int message) { // Get status byte. int status = UnpackStatus(message); // Enforce preconditions. if (!ChannelMessage.IsChannelMessage(status)) { throw new ArgumentException("Message is not a channel message.", "message"); } // // Initialize properties. // Command = (ChannelCommand)(message & ~CommandMask); MidiChannel = message & ~ChannelMask; SetData1(ShortMessage.UnpackData1(message)); SetData2(ShortMessage.UnpackData2(message)); }