Пример #1
0
        public void SetController(int channel, int controller, int value)
        {
            if (batchMode)
            {
                ChannelBatchState channelState;
                if (!batchChannels.TryGetValue(channel, out channelState))
                {
                    channelState = new ChannelBatchState()
                    {
                        ControllersModified = new OrderedDictionary <int, int>()
                    };
                    batchChannels.Add(channel, channelState);
                }

                // Remember the controller value:
                channelState.ControllersModified[controller] = value;
                return;
            }

            if (!Enabled || channels[channel].controllerValues[controller] != value)
            {
                midi.SetController(channel, controller, value);
                channels[channel].controllerValues[controller] = value;
            }
        }
Пример #2
0
        public void SetProgram(int channel, int program)
        {
            if (batchMode)
            {
                ChannelBatchState controllerSet;
                if (!batchChannels.TryGetValue(channel, out controllerSet))
                {
                    controllerSet = new ChannelBatchState();
                    batchChannels.Add(channel, controllerSet);
                }

                // Clear the state and indicate program changed:
                controllerSet.ControllersModified = new OrderedDictionary <int, int>();
                controllerSet.ProgramChanged      = true;
                controllerSet.ProgramValue        = program;
                return;
            }

            if (!Enabled || channels[channel].programValue != program)
            {
                // Forget all sent data now that we're switching programs:
                channels[channel].Reset();
                midi.SetProgram(channel, program);
                channels[channel].programValue = program;
            }
        }