internal void SendMessages(OutputMidi[] om, SysCommonMessage CommonMessage) { foreach (int i in outMidiList) { om[i].outMIDI.Send(CommonMessage); } }
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; } }
/// <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; }
void onSysCommonMessageReceived(object obj, SysCommonMessageEventArgs e) { SysCommonMessage m = e.Message; if (debugPrintMIDI) { Console.WriteLine("SysCommon Message: " + m.SysCommonType.ToString() + " " + m.Data1.ToString() + " " + m.Data2.ToString()); } }
/// <summary> /// Builds a SysCommonMessage. /// </summary> public void Build() { result = (SysCommonMessage)messageCache[message]; if (result == null) { result = new SysCommonMessage(message); messageCache.Add(message, result); } }
public virtual void Send(SysCommonMessage message) { #region Require if (IsDisposed) { throw new ObjectDisposedException(this.GetType().Name); } #endregion Send(message.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); }
/// <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> /// SysCommon messages received /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HandleSysCommonMessageReceived(object sender, SysCommonMessageEventArgs e) { context.Post(delegate(object dummy) { int ticks = GetTicks(); sysCommonListBox.Items.Add( e.Message.SysCommonType.ToString() + '\t' + '\t' + e.Message.Data1.ToString() + '\t' + e.Message.Data2.ToString()); sysCommonListBox.SelectedIndex = sysCommonListBox.Items.Count - 1; // insert event SysCommonMessage CMsg = new SysCommonMessage(e.Message.SysCommonType); track1.Insert(ticks, CMsg); }, null); }
/// <summary> /// 添加mid文件到dataGridView /// </summary> /// <param name="trakInfo"></param> /// <param name="gridView"></param> private void AddTrackInfo2GridView(Sanford.Multimedia.Midi.Track trakInfo, DataGridView gridView) { //DataGridViewTextBoxColumn boxColumn = new DataGridViewTextBoxColumn(); DataGridViewTextBoxColumn ColumnEventIndex = new DataGridViewTextBoxColumn(); ColumnEventIndex.HeaderText = "Event-Num"; ColumnEventIndex.Name = "ColumnEventIndex"; ColumnEventIndex.ReadOnly = true; //ColumnEventIndex.Width = 200; DataGridViewTextBoxColumn ColumnAbsTicks = new DataGridViewTextBoxColumn(); ColumnAbsTicks.HeaderText = "Abs-Ticks"; ColumnAbsTicks.Name = "ColumnAbsTicks"; ColumnAbsTicks.ReadOnly = true; //ColumnAbsTicks.Width = 80; // // ColumnDeltaTicks // DataGridViewTextBoxColumn ColumnDeltaTicks = new DataGridViewTextBoxColumn(); ColumnDeltaTicks.HeaderText = "Dlt Ticks"; ColumnDeltaTicks.Name = "ColumnDeltaTicks"; ColumnDeltaTicks.ReadOnly = true; // // ColumnMsgStatus // DataGridViewTextBoxColumn ColumnMsgStatus = new DataGridViewTextBoxColumn(); ColumnMsgStatus.HeaderText = "MsgStatus"; ColumnMsgStatus.Name = "ColumnMsgStatus"; ColumnMsgStatus.ReadOnly = true; // // ColumnMsgType // DataGridViewTextBoxColumn ColumnMsgType = new DataGridViewTextBoxColumn(); ColumnMsgType.HeaderText = "MsgType"; ColumnMsgType.Name = "ColumnMsgType"; ColumnMsgType.ReadOnly = true; // // ColumnMsgSubType // DataGridViewTextBoxColumn ColumnMsgSubType = new DataGridViewTextBoxColumn(); ColumnMsgSubType.HeaderText = "SubType"; ColumnMsgSubType.Name = "ColumnMsgSubType"; ColumnMsgSubType.ReadOnly = true; // // ColumnMsgData1 // DataGridViewTextBoxColumn ColumnMsgData1 = new DataGridViewTextBoxColumn(); ColumnMsgData1.HeaderText = "MsgData1"; ColumnMsgData1.Name = "ColumnMsgData1"; ColumnMsgData1.ReadOnly = true; // // ColumnMsgData2 // DataGridViewTextBoxColumn ColumnMsgData2 = new DataGridViewTextBoxColumn(); ColumnMsgData2.HeaderText = "MsgData2"; ColumnMsgData2.Name = "ColumnMsgData2"; ColumnMsgData2.ReadOnly = true; // // ColumnMidiChannel // DataGridViewTextBoxColumn ColumnMidiChannel = new DataGridViewTextBoxColumn(); ColumnMidiChannel.HeaderText = "MidiChannel"; ColumnMidiChannel.Name = "ColumnMidiChannel"; ColumnMidiChannel.ReadOnly = true; // // ColumnBytes // DataGridViewTextBoxColumn ColumnBytes = new DataGridViewTextBoxColumn(); ColumnBytes.HeaderText = "Bytes"; ColumnBytes.Name = "ColumnBytes"; ColumnBytes.ReadOnly = true; gridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; gridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { ColumnEventIndex, ColumnAbsTicks, ColumnDeltaTicks, ColumnMsgStatus, ColumnMsgType, ColumnMsgSubType, ColumnMsgData1, ColumnMsgData2, ColumnMidiChannel, ColumnBytes }); for (int i = 0; i < trakInfo.Count; i++) { MidiEvent me = trakInfo.GetMidiEvent(i); //listViewTrackInfo.Items.Add(string.Format("音轨{0},EventNo = {1} Msg type = {2} , status = {3}", i, j, me.MidiMessage.MessageType, me.MidiMessage.Status)); ArrayList stuff = new ArrayList(); stuff.Add(i); stuff.Add(me.AbsoluteTicks); stuff.Add(me.DeltaTicks); stuff.Add(me.MidiMessage.Status); stuff.Add(me.MidiMessage.MessageType); switch (me.MidiMessage.MessageType) { case MessageType.Channel: ChannelMessage cm = (ChannelMessage)me.MidiMessage; stuff.Add(cm.Command); stuff.Add(cm.Data1); stuff.Add(cm.Data2); stuff.Add(cm.MidiChannel); break; case MessageType.SystemExclusive: SysExMessage sem = (SysExMessage)me.MidiMessage; stuff.Add(sem.SysExType); break; case MessageType.SystemCommon: SysCommonMessage scm = (SysCommonMessage)me.MidiMessage; stuff.Add(scm.SysCommonType); stuff.Add(scm.Data1); stuff.Add(scm.Data2); break; case MessageType.SystemRealtime: SysRealtimeMessage srm = (SysRealtimeMessage)me.MidiMessage; stuff.Add(srm.SysRealtimeType); break; case MessageType.Meta: MetaMessage mm = (MetaMessage)me.MidiMessage; stuff.Add(mm.MetaType); //if (mm.MetaType == MetaType.TrackName) //{ // stuff.Add(""); //data1 // stuff.Add(""); //data2 // stuff.Add("");//MidiChannel // byte[] bytesTrkName = mm.GetBytes(); // //UnicodeEncoding encoding = new UnicodeEncoding(); // //string trackName = encoding.GetString(mm.GetBytes()); // //stuff.Add(/*trackName*/mm.GetBytes()); //} break; } //object[] stuff = { i, j, me.MidiMessage.MessageType,me.AbsoluteTicks }; gridView.Rows.Add(stuff.ToArray()); } }
/// <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 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; }
public SysCommonMessageEventArgs(SysCommonMessage message) { this.message = message; }
public virtual void Send(SysCommonMessage 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; } }
/// <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> /// Builds a SysCommonMessage. /// </summary> public void Build() { result = (SysCommonMessage)messageCache[message]; if(result == null) { result = new SysCommonMessage(message); messageCache.Add(message, result); } }