- add errorReceived and implement methods

master
Simon G 5 years ago
parent fc65926b4e
commit 12c0e6a539
  1. 1
      Lib.Midi/Interfaces/IMidiCommunication.cs
  2. 23
      Lib.Midi/MidiCommunication.cs

@ -14,5 +14,6 @@ namespace Lib.Midi.Interfaces
void Send(IMidiMessage message);
event EventHandler<IMidiMessage> MessageReceived;
event EventHandler<IMidiMessage> ErrorReceived;
}
}

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