|
|
|
@ -3,6 +3,7 @@ |
|
|
|
// Copyright(c) 2021 SimonG. All Rights Reserved. |
|
|
|
// Copyright(c) 2021 SimonG. All Rights Reserved. |
|
|
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
using System; |
|
|
|
|
|
|
|
using Lib.Midi.Factories; |
|
|
|
using Lib.Midi.Interfaces; |
|
|
|
using Lib.Midi.Interfaces; |
|
|
|
using NAudio.Midi; |
|
|
|
using NAudio.Midi; |
|
|
|
|
|
|
|
|
|
|
|
@ -10,11 +11,13 @@ namespace Lib.Midi |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class MidiCommunication : IMidiCommunication |
|
|
|
public class MidiCommunication : IMidiCommunication |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
private readonly IMidiMessageFactory _midiMessageFactory; |
|
|
|
private readonly MidiIn _midiIn; |
|
|
|
private readonly MidiIn _midiIn; |
|
|
|
private readonly MidiOut _midiOut; |
|
|
|
private readonly MidiOut _midiOut; |
|
|
|
|
|
|
|
|
|
|
|
public MidiCommunication() |
|
|
|
public MidiCommunication(IMidiMessageFactory midiMessageFactory) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
_midiMessageFactory = midiMessageFactory; |
|
|
|
_midiIn = new MidiIn(0); //TODO: don't always use device 0? |
|
|
|
_midiIn = new MidiIn(0); //TODO: don't always use device 0? |
|
|
|
_midiOut = new MidiOut(0); |
|
|
|
_midiOut = new MidiOut(0); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -36,21 +39,11 @@ namespace Lib.Midi |
|
|
|
_midiOut.Close(); |
|
|
|
_midiOut.Close(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void Send(IMidiMessage message) |
|
|
|
public void Send(IMidiMessage message) => _midiOut.Send(message.RawMessage); |
|
|
|
{ |
|
|
|
private void OnMidiInMessageReceived(object? sender, MidiInMessageEventArgs args) => MessageReceived?.Invoke(this, _midiMessageFactory.Create(args)); |
|
|
|
|
|
|
|
private void OnMidiInErrorReceived(object? sender, MidiInMessageEventArgs args) => ErrorReceived?.Invoke(this, _midiMessageFactory.Create(args)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void OnMidiInMessageReceived(object? sender, MidiInMessageEventArgs args) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
int i = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void OnMidiInErrorReceived(object? sender, MidiInMessageEventArgs args) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
int i = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public event EventHandler<IMidiMessage>? MessageReceived; |
|
|
|
public event EventHandler<IMidiMessage>? MessageReceived; |
|
|
|
|
|
|
|
public event EventHandler<IMidiMessage>? ErrorReceived; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |