- move messages and add new ones

master
Simon G 5 years ago
parent d2171275e3
commit 2e8984bb34
  1. 1
      Lib.Midi/Interfaces/IMidiCommunication.cs
  2. 16
      Lib.Midi/Messages/ControlChangeMessage.cs
  3. 4
      Lib.Midi/Messages/Factories/IMidiMessageFactory.cs
  4. 54
      Lib.Midi/Messages/Factories/MidiMessageFactory.cs
  5. 3
      Lib.Midi/Messages/Interfaces/IMidiMessage.cs
  6. 26
      Lib.Midi/Messages/MidiMessage.cs
  7. 17
      Lib.Midi/Messages/NoteOnMessage.cs
  8. 24
      Lib.Midi/Messages/PitchWheelChangeMessage.cs
  9. 3
      Lib.Midi/MidiCommunication.cs
  10. 19
      Lib.Midi/MidiMessage.cs
  11. 4
      Mystify/Installers/MidiInstaller.cs

@ -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.Messages.Interfaces;
namespace Lib.Midi.Interfaces namespace Lib.Midi.Interfaces
{ {

@ -0,0 +1,16 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using NAudio.Midi;
namespace Lib.Midi.Messages
{
public class ControlChangeMessage : MidiMessage
{
public ControlChangeMessage(long absolutTime, int channelNumber, int value)
{
ControlChangeEvent controlChangeEvent = new(absolutTime, channelNumber, (MidiController) 16, value);
}
}
}

@ -2,10 +2,10 @@
// Created: 2021-04-09 // Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved. // Copyright(c) 2021 SimonG. All Rights Reserved.
using Lib.Midi.Interfaces; using Lib.Midi.Messages.Interfaces;
using NAudio.Midi; using NAudio.Midi;
namespace Lib.Midi.Factories namespace Lib.Midi.Messages.Factories
{ {
public interface IMidiMessageFactory public interface IMidiMessageFactory
{ {

@ -0,0 +1,54 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using System;
using Lib.Midi.Messages.Interfaces;
using NAudio.Midi;
namespace Lib.Midi.Messages.Factories
{
public class MidiMessageFactory : IMidiMessageFactory
{
public IMidiMessage Create(MidiInMessageEventArgs midiInMessageEventArgs)
{
switch (midiInMessageEventArgs.MidiEvent.CommandCode)
{
case MidiCommandCode.NoteOff:
break;
case MidiCommandCode.NoteOn:
break;
case MidiCommandCode.KeyAfterTouch:
break;
case MidiCommandCode.ControlChange:
break;
case MidiCommandCode.PatchChange:
break;
case MidiCommandCode.ChannelAfterTouch:
break;
case MidiCommandCode.PitchWheelChange:
return new PitchWheelChangeMessage(midiInMessageEventArgs);
case MidiCommandCode.Sysex:
break;
case MidiCommandCode.Eox:
break;
case MidiCommandCode.TimingClock:
break;
case MidiCommandCode.StartSequence:
break;
case MidiCommandCode.ContinueSequence:
break;
case MidiCommandCode.StopSequence:
break;
case MidiCommandCode.AutoSensing:
break;
case MidiCommandCode.MetaEvent:
break;
default:
throw new ArgumentOutOfRangeException();
}
return null;
}
}
}

@ -2,10 +2,11 @@
// Created: 2021-04-09 // Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved. // Copyright(c) 2021 SimonG. All Rights Reserved.
namespace Lib.Midi.Interfaces namespace Lib.Midi.Messages.Interfaces
{ {
public interface IMidiMessage public interface IMidiMessage
{ {
int ChannelNumber { get; }
int RawMessage { get; } int RawMessage { get; }
} }
} }

@ -0,0 +1,26 @@
// 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
{
public abstract class MidiMessage : IMidiMessage
{
protected MidiMessage(MidiInMessageEventArgs midiInMessageEventArgs)
{
ChannelNumber = midiInMessageEventArgs.MidiEvent.Channel;
RawMessage = midiInMessageEventArgs.RawMessage;
}
protected MidiMessage()
{
}
public int ChannelNumber { get; protected init; }
public int RawMessage { get; protected init; }
}
}

@ -0,0 +1,17 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using NAudio.Midi;
namespace Lib.Midi.Messages
{
public class NoteOnMessage : MidiMessage
{
public NoteOnMessage(MidiInMessageEventArgs midiInMessageEventArgs)
: base(midiInMessageEventArgs)
{
}
}
}

@ -0,0 +1,24 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using NAudio.Midi;
namespace Lib.Midi.Messages
{
public class PitchWheelChangeMessage : MidiMessage
{
public PitchWheelChangeMessage(MidiInMessageEventArgs midiInMessageEventArgs)
: base(midiInMessageEventArgs)
{
}
public PitchWheelChangeMessage(long absoluteTime, int channelNumber, int pitch)
{
PitchWheelChangeEvent pitchWheelChangeEvent = new(absoluteTime, channelNumber, pitch);
ChannelNumber = channelNumber;
RawMessage = pitchWheelChangeEvent.GetAsShortMessage();
}
}
}

@ -3,8 +3,9 @@
// 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 Lib.Midi.Messages.Factories;
using Lib.Midi.Messages.Interfaces;
using NAudio.Midi; using NAudio.Midi;
namespace Lib.Midi namespace Lib.Midi

@ -1,19 +0,0 @@
// Author: Gockner, Simon
// Created: 2021-04-09
// Copyright(c) 2021 SimonG. All Rights Reserved.
using Lib.Midi.Interfaces;
using NAudio.Midi;
namespace Lib.Midi
{
public class MidiMessage : IMidiMessage
{
public MidiMessage(MidiInMessageEventArgs midiInMessageEventArgs)
{
}
public int RawMessage { get; }
}
}

@ -5,6 +5,7 @@
using Lib.Midi; using Lib.Midi;
using Lib.Midi.Factories; using Lib.Midi.Factories;
using Lib.Midi.Interfaces; using Lib.Midi.Interfaces;
using Lib.Midi.Messages.Factories;
using LightweightIocContainer.Interfaces; using LightweightIocContainer.Interfaces;
using LightweightIocContainer.Interfaces.Installers; using LightweightIocContainer.Interfaces.Installers;
@ -15,11 +16,10 @@ namespace Mystify.Installers
public void Install(IIocContainer container) public void Install(IIocContainer container)
{ {
container.Register<IMidiCommunication, MidiCommunication>(); container.Register<IMidiCommunication, MidiCommunication>();
container.Register<IMidiMessage, MidiMessage>();
//factories //factories
container.RegisterFactory<IMidiCommunicationFactory>(); container.RegisterFactory<IMidiCommunicationFactory>();
container.RegisterFactory<IMidiMessageFactory>(); container.Register<IMidiMessageFactory, MidiMessageFactory>();
} }
} }
} }
Loading…
Cancel
Save