void PollAllInputDevices() { if (mDrumInputEvents.Count > 0) { foreach (var item in mDrumInputEvents) { DrumInputEvent.Delete(item); } mDrumInputEvents.Clear(); } // check for the keyboard messages. if (EnableDrumKeyChecking) { foreach (var idKey in mKeyBindings.KeyboardToDrum) { if (Input.GetKeyDown((KeyCode)idKey.Key.Key)) { mDrumInputEvents.Add(DrumInputEvent.New(idKey.Key.DeviceId, idKey.Key.Key, idKey.Value)); } } } // check for the midi input device. var midiDriver = MainScript.Instance.UsbMidiDriver; if (midiDriver) { foreach (var idKey in mKeyBindings.MIDItoDrum) { if (idKey.Key.DeviceId == 0 && midiDriver.GetMidiNoteOn(idKey.Key.Key)) { mDrumInputEvents.Add(DrumInputEvent.New(idKey.Key.DeviceId, idKey.Key.Key, idKey.Value)); } } } }
public static void Delete(DrumInputEvent instance) { msPool.Push(instance); }
public void EnqueueDrumInputEvent(DrumInputEvent drumInputEvent) { mDrumInputEvents.Add(drumInputEvent); }