Пример #1
0
        private void TimerThreadStart()
        {
            var stopwatch = new Stopwatch();

            while (true)
            {
                stopwatch.Restart();

                if (!TrySendOldest(_controlChangeMessages.Values, msg => ControlChange?.Invoke(msg)))
                {
                    TrySendOldest(_nrpnMessages.Values, msg => Nrpn?.Invoke(msg));
                }

                // Sleep
                var remainingTicks = (int)(UpdateInterval - stopwatch.ElapsedMilliseconds);
                if (_stopTimerEvent.WaitOne(Math.Max(0, remainingTicks)))
                {
                    break;
                }
            }
        }
Пример #2
0
 private void HandleControlChange(MidiController controller, int controllerValue)
 {
     ControlChange?.Invoke(controller, controllerValue);
 }