private bool HasListenerFor(Interpolator interpolator) { int persistentEventCount = innerEvent.GetPersistentEventCount(); for (int i = 0; i < persistentEventCount; i++) { if (innerEvent.GetPersistentTarget(i) == interpolator) { return(true); } } return(false); }
public override void Apply() { MidiDriver.KnobDelegate action = (MidiChannel ch, int knob, float val) => { if ((ch == channel || channel == MidiChannel.All) && knob == knobNumber) { onKnob.Invoke(val); } }; info = new MidiCcEventInfo() { knobName = knobName, channel = channel, knobNumber = knobNumber, methods = Enumerable.Range(0, onKnob.GetPersistentEventCount()) .Select(idx => onKnob.GetPersistentTarget(idx).ToString() + "." + onKnob.GetPersistentMethodName(idx)) .ToArray() }; MidiController.AddCcAction(action, info); }