public void UnsubscribeToKnobUpdates(MidiChannel channel, int knobNumber, KnobDelegate callback) { if (knobCallbacks.ContainsKey(channel) && knobCallbacks[channel].ContainsKey(knobNumber) && knobCallbacks[channel][knobNumber].Contains(callback)) { knobCallbacks[channel][knobNumber].Remove(callback); } }
protected void ConnectMidiListenerComponents() { foreach (var component in GetComponents <MidiListener>()) { Debug.LogFormat("Connecting Midi Listener: {0}", component); noteOnDelegate += component.NoteOn; noteOffDelegate += component.NoteOff; knobDelegate += component.Knob; } }
public void SubscribeToKnobUpdates(MidiChannel channel, int knobNumber, KnobDelegate callback) { if (!knobCallbacks.ContainsKey(channel)) { knobCallbacks.Add(channel, new Dictionary <int, List <KnobDelegate> >()); } if (!knobCallbacks[channel].ContainsKey(knobNumber)) { knobCallbacks[channel].Add(knobNumber, new List <KnobDelegate>()); } if (!knobCallbacks[channel][knobNumber].Contains(callback)) { knobCallbacks[channel][knobNumber].Add(callback); } }
public static void UnsubscribeToKnobUpdates(MidiChannel channel, int knobNumber, KnobDelegate callback) { MidiDriver.Instance.UnsubscribeToKnobUpdates(channel, knobNumber, callback); }