Animatroller.Framework.Expander.MidiInput2.inputDevice_ChannelMessageReceived C# (CSharp) Method

inputDevice_ChannelMessageReceived() private method

private inputDevice_ChannelMessageReceived ( object sender, Sanford.Multimedia.Midi.ChannelMessageEventArgs e ) : void
sender object
e Sanford.Multimedia.Midi.ChannelMessageEventArgs
return void
        private void inputDevice_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            log.Trace("Recv {4} cmd {0}, chn: {1}  data1: {2}  data2: {3}",
                e.Message.Command,
                e.Message.MidiChannel,
                e.Message.Data1,
                e.Message.Data2,
                Name);

            this.midiMessages.OnNext(e.Message);

            try
            {
                var key = Tuple.Create(e.Message.MidiChannel, e.Message.Command, e.Message.Data1);

                Action<ChannelMessage> action;
                if (this.messageMapper.TryGetValue(key, out action))
                {
                    action.Invoke(e.Message);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex, "Failed to invoke action");
            }
        }