// Author: Gockner, Simon // Created: 2021-04-09 // Copyright(c) 2021 SimonG. All Rights Reserved. using Lib.Midi.Messages.Interfaces; using NAudio.Midi; namespace Lib.Midi.Messages.Factories { public class MidiMessageFactory : IMidiMessageFactory { public IMidiMessage Create(MidiInMessageEventArgs midiInMessageEventArgs) { 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); return null; } } }