- remove raw message from ctor

master
Simon G 5 years ago
parent 1c94786581
commit 555a37ee90
  1. 3
      Lib.Midi/Messages/ControlChangeMessage.cs
  2. 2
      Lib.Midi/Messages/Factories/IMidiMessageFactory.cs
  3. 14
      Lib.Midi/Messages/Factories/MidiMessageFactory.cs
  4. 17
      Lib.Midi/Messages/MidiMessage.cs
  5. 11
      Lib.Midi/Messages/NoteMessage.cs
  6. 14
      Lib.Midi/Messages/NoteOnMessage.cs
  7. 18
      Lib.Midi/Messages/PitchWheelChangeMessage.cs
  8. 4
      Lib.Midi/MidiCommunication.cs

@ -9,8 +9,9 @@ namespace Lib.Midi.Messages
public class ControlChangeMessage : MidiMessage
{
public ControlChangeMessage(long absolutTime, int channelNumber, int value)
: base(new ControlChangeEvent(absolutTime, channelNumber, (MidiController) 16, value))
{
ControlChangeEvent controlChangeEvent = new(absolutTime, channelNumber, (MidiController) 16, value);
}
}
}

@ -9,6 +9,6 @@ namespace Lib.Midi.Messages.Factories
{
public interface IMidiMessageFactory
{
IMidiMessage Create(MidiInMessageEventArgs midiInMessageEventArgs);
IMidiMessage Create(MidiEvent midiEvent);
}
}

@ -9,14 +9,14 @@ namespace Lib.Midi.Messages.Factories
{
public class MidiMessageFactory : IMidiMessageFactory
{
public IMidiMessage Create(MidiInMessageEventArgs midiInMessageEventArgs)
public IMidiMessage Create(MidiEvent midiEvent)
{
if (midiInMessageEventArgs.MidiEvent is PitchWheelChangeEvent pitchWheelChangeEvent)
return new PitchWheelChangeMessage(pitchWheelChangeEvent, midiInMessageEventArgs.RawMessage);
else if (midiInMessageEventArgs.MidiEvent is NoteOnEvent noteOnEvent)
return new NoteOnMessage(noteOnEvent, midiInMessageEventArgs.RawMessage);
else if (midiInMessageEventArgs.MidiEvent is NoteEvent noteEvent)
return new NoteMessage(noteEvent, midiInMessageEventArgs.RawMessage);
if (midiEvent is PitchWheelChangeEvent pitchWheelChangeEvent)
return new PitchWheelChangeMessage(pitchWheelChangeEvent);
else if (midiEvent is NoteOnEvent noteOnEvent)
return new NoteOnMessage(noteOnEvent);
else if (midiEvent is NoteEvent noteEvent)
return new NoteMessage(noteEvent);
return null;
}

@ -9,18 +9,11 @@ namespace Lib.Midi.Messages
{
public abstract class MidiMessage : IMidiMessage
{
protected MidiMessage(MidiEvent midiEvent, int rawMessage)
{
ChannelNumber = midiEvent.Channel;
RawMessage = rawMessage;
}
protected readonly MidiEvent _midiEvent;
protected MidiMessage(MidiEvent midiEvent) => _midiEvent = midiEvent;
protected MidiMessage()
{
}
public int ChannelNumber { get; protected init; }
public int RawMessage { get; protected init; }
public int ChannelNumber => _midiEvent.Channel;
public int RawMessage => _midiEvent.GetAsShortMessage();
}
}

@ -8,10 +8,13 @@ namespace Lib.Midi.Messages
{
public class NoteMessage : MidiMessage
{
public NoteMessage(NoteEvent noteEvent, int rawMessage)
: base(noteEvent, rawMessage) =>
NoteNumber = noteEvent.NoteNumber;
public NoteMessage(NoteEvent noteEvent)
: base(noteEvent)
{
}
public int NoteNumber { get; }
private NoteEvent NoteEvent => (NoteEvent) _midiEvent;
public int NoteNumber => NoteEvent.NoteNumber;
}
}

@ -8,15 +8,13 @@ namespace Lib.Midi.Messages
{
public class NoteOnMessage : MidiMessage
{
public NoteOnMessage(NoteOnEvent noteOnEvent, int rawMessage)
: base(noteOnEvent, rawMessage) =>
NoteNumber = noteOnEvent.NoteNumber;
public NoteOnMessage()
public NoteOnMessage(NoteOnEvent noteOnEvent)
: base(noteOnEvent)
{
// NoteOnEvent noteOnEvent = new NoteOnEvent()
}
public int NoteNumber { get; }
private NoteOnEvent NoteOnEvent => (NoteOnEvent) _midiEvent;
public int NoteNumber => NoteOnEvent.NoteNumber;
}
}

@ -8,17 +8,19 @@ namespace Lib.Midi.Messages
{
public class PitchWheelChangeMessage : MidiMessage
{
public PitchWheelChangeMessage(PitchWheelChangeEvent pitchWheelChangeEvent, int rawMessage)
: base(pitchWheelChangeEvent, rawMessage) =>
Pitch = pitchWheelChangeEvent.Pitch;
public PitchWheelChangeMessage(PitchWheelChangeEvent pitchWheelChangeEvent)
: base(pitchWheelChangeEvent)
{
}
public PitchWheelChangeMessage(long absoluteTime, int channelNumber, int pitch)
: base(new PitchWheelChangeEvent(absoluteTime, channelNumber, pitch))
{
PitchWheelChangeEvent pitchWheelChangeEvent = new(absoluteTime, channelNumber, pitch);
ChannelNumber = channelNumber;
RawMessage = pitchWheelChangeEvent.GetAsShortMessage();
}
public int Pitch { get; }
private PitchWheelChangeEvent PitchWheelChangeEvent => (PitchWheelChangeEvent) _midiEvent;
public int Pitch => PitchWheelChangeEvent.Pitch;
}
}

@ -75,8 +75,8 @@ namespace Lib.Midi
}
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) => MessageReceived?.Invoke(this, _midiMessageFactory.Create(args.MidiEvent));
private void OnMidiInErrorReceived(object? sender, MidiInMessageEventArgs args) => ErrorReceived?.Invoke(this, _midiMessageFactory.Create(args.MidiEvent));
public event EventHandler<IMidiMessage>? MessageReceived;
public event EventHandler<IMidiMessage>? ErrorReceived;

Loading…
Cancel
Save