コード例 #1
0
        protected virtual void OnSysRealtimeMessageDispatched(SysRealtimeMessageEventArgs e)
        {
            EventHandler <SysRealtimeMessageEventArgs> handler = SysRealtimeMessageDispatched;

            if (handler != null)
            {
                handler(this, e);
            }
        }
コード例 #2
0
        protected virtual void OnSysRealtimeMessageReceived(SysRealtimeMessageEventArgs e)
        {
            EventHandler <SysRealtimeMessageEventArgs> handler = SysRealtimeMessageReceived;

            if (handler != null)
            {
                context.Post(delegate(object dummy)
                {
                    handler(this, e);
                }, null);
            }
        }
コード例 #3
0
        private void HandleShortMessage(object state)
        {
            int message = (int)state;

            //first send RawMessage
            OnShortMessage(new ShortMessageEventArgs(message));

            int status = ShortMessage.UnpackStatus(message);

            if (status >= (int)ChannelCommand.NoteOff &&
                status <= (int)ChannelCommand.PitchWheel +
                ChannelMessage.MidiChannelMaxValue)
            {
                cmBuilder.Message = message;
                cmBuilder.Build();

                OnMessageReceived(cmBuilder.Result);
                OnChannelMessageReceived(new ChannelMessageEventArgs(cmBuilder.Result));
            }
            else if (status == (int)SysCommonType.MidiTimeCode ||
                     status == (int)SysCommonType.SongPositionPointer ||
                     status == (int)SysCommonType.SongSelect ||
                     status == (int)SysCommonType.TuneRequest)
            {
                scBuilder.Message = message;
                scBuilder.Build();

                OnMessageReceived(scBuilder.Result);
                OnSysCommonMessageReceived(new SysCommonMessageEventArgs(scBuilder.Result));
            }
            else
            {
                SysRealtimeMessageEventArgs e = null;

                switch ((SysRealtimeType)status)
                {
                case SysRealtimeType.ActiveSense:
                    e = SysRealtimeMessageEventArgs.ActiveSense;
                    break;

                case SysRealtimeType.Clock:
                    e = SysRealtimeMessageEventArgs.Clock;
                    break;

                case SysRealtimeType.Continue:
                    e = SysRealtimeMessageEventArgs.Continue;
                    break;

                case SysRealtimeType.Reset:
                    e = SysRealtimeMessageEventArgs.Reset;
                    break;

                case SysRealtimeType.Start:
                    e = SysRealtimeMessageEventArgs.Start;
                    break;

                case SysRealtimeType.Stop:
                    e = SysRealtimeMessageEventArgs.Stop;
                    break;

                case SysRealtimeType.Tick:
                    e = SysRealtimeMessageEventArgs.Tick;
                    break;
                }

                OnMessageReceived(e.Message);
                OnSysRealtimeMessageReceived(e);
            }
        }
コード例 #4
0
 public static ShortMessageEventArgs FromSysRealtimeMessage(SysRealtimeMessageEventArgs arg)
 {
     return(new ShortMessageEventArgs(arg.Message));
 }
コード例 #5
0
 private void EventSource_SysRealtimeMessageReceived(object sender, SysRealtimeMessageEventArgs e)
 {
     FOutDevice.Send(e.Message);
 }