Cross Platform Application to allow control with a MIDI controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
941 B

// 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;
}
}
}