private void InputDeviceOnNrpn(NrpnMessage msg)
 {
     _nrpnMessages.AddOrUpdate(new NrpnKey(msg),
                               key => new NrpnMessageHolder(msg),
                               (key, holder) =>
     {
         holder.SetMessage(msg);
         return(holder);
     });
 }
Exemple #2
0
        public void Should_Not_Recognize_NRPN_Message_If_Different_Channels()
        {
            for (var i = 1; i < 4; i++)
            {
                // Setup
                var msgs = ControlChangeMessages(Channel.Channel1,
                                                 ControlFunction.NonRegisteredParameterNumberMSB,
                                                 ControlFunction.NonRegisteredParameterNumberLSB,
                                                 ControlFunction.DataEntryMSB,
                                                 ControlFunction.LSBForControl6DataEntry);
                msgs[i] = new ControlChangeMessage(Channel.Channel2, msgs[i].Control, msgs[i].Value);

                // Test
                Assert.False(NrpnMessage.IsExpectedControls(msgs));
            }
        }
Exemple #3
0
        public void Should_Recognize_NRPN_Message_Including_Partials()
        {
            Assert.True(NrpnMessage.IsExpectedControls(ControlChangeMessages(Channel.Channel1,
                                                                             ControlFunction.NonRegisteredParameterNumberMSB)));

            Assert.True(NrpnMessage.IsExpectedControls(ControlChangeMessages(Channel.Channel1,
                                                                             ControlFunction.NonRegisteredParameterNumberMSB,
                                                                             ControlFunction.NonRegisteredParameterNumberLSB)));

            Assert.True(NrpnMessage.IsExpectedControls(ControlChangeMessages(Channel.Channel1,
                                                                             ControlFunction.NonRegisteredParameterNumberMSB,
                                                                             ControlFunction.NonRegisteredParameterNumberLSB,
                                                                             ControlFunction.DataEntryMSB)));

            Assert.True(NrpnMessage.IsExpectedControls(ControlChangeMessages(Channel.Channel1,
                                                                             ControlFunction.NonRegisteredParameterNumberMSB,
                                                                             ControlFunction.NonRegisteredParameterNumberLSB,
                                                                             ControlFunction.DataEntryMSB,
                                                                             ControlFunction.LSBForControl6DataEntry)));
        }
Exemple #4
0
            private void SendNrpn()
            {
                var nrpn = _device.Nrpn;

                if (nrpn != null)
                {
                    var firstMsg  = _messageQueue.Peek();
                    var parameter = DequeueInt14();
                    var value     = DequeueInt14();

                    var msg = new NrpnMessage(_device, firstMsg.Channel, parameter.Value, value.Value, firstMsg.Time);
                    nrpn(msg);
                }
                else
                {
                    _messageQueue.Clear();
                }

                // Stop queueing messages
                _queueMessages = false;
            }
Exemple #5
0
 public NrpnKey(NrpnMessage msg) : this(msg.Channel, msg.Parameter)
 {
 }