public unsafe void SetPlaybackCallback(MidiEventHandler handler) { LibFluidsynth.fluid_player_set_playback_callback(Handle, Utility.PassDelegatePointer <LibFluidsynth.handle_midi_event_func_t>( (d, e) => { using (var ev = new MidiEvent(e)) { return(handler(ev)); } }, out var b), null); _handler = b; }
public unsafe MidiRouter(Settings settings, MidiEventHandler handler) : base(LibFluidsynth.new_fluid_midi_router(settings.Handle, Utility.PassDelegatePointer <LibFluidsynth.handle_midi_event_func_t>( (d, e) => { using (var ev = new MidiEvent(e)) { return(handler(ev)); } }, out var wrapHandler), null)) { _settings = settings; _handler = wrapHandler; }
public unsafe MidiDriver(Settings settings, MidiEventHandler handler) : base(new_fluid_midi_driver( settings.Handle, Utility.PassDelegatePointer <handle_midi_event_func_t>( (d, e) => { using (var ev = new MidiEvent(e)) { return(handler(ev)); } }, out var b), null)) { _handler = b; _settings = settings; }
public MidiRouter(Settings settings, MidiEventHandler handler, byte [] eventHandlerData) : base(LibFluidsynth.Midi.new_fluid_midi_router (settings.Handle, (d, e) => handler (d, new MidiEvent (e)), eventHandlerData), true) { }
public MidiDriver(Settings settings, MidiEventHandler handler, byte [] handlerData) : base(LibFluidsynth.Midi.new_fluid_midi_driver(settings.Handle, (d, e) => handler(d, new MidiEvent(e)), handlerData), true) { }
/// <summary> /// Remove a previously set Event Handler /// </summary> /// <param name="handler"></param> public void RemoveEventHandler(MidiEventHandler handler ) { //midi.TraceMessage("MidiPort: RemoveEventHandler()"); OnMidiInputPortData -= handler; }
// NOTE: Race condition. Not being set during startup, but works ok if connected after started. #region IMidiDynamicEvent /// <summary> /// Set an event handler to receive input MIDI data. /// </summary> /// <param name="handler">The event handler to be called when MIDI data is received</param> public void SetEventHandler(MidiEventHandler handler ) { //midi.TraceMessage("MidiPort: SetEventHandler()"); OnMidiInputPortData += handler; }