- use midiCommunication

master
Simon G 5 years ago
parent 35c19d6907
commit 48fc1965da
  1. 20
      Lib.Audio/Device.cs
  2. 2
      Lib.Audio/Interfaces/IDevice.cs

@ -5,22 +5,40 @@
using System.Collections.Generic;
using Lib.Audio.Factories;
using Lib.Audio.Interfaces;
using Lib.Midi.Factories;
using Lib.Midi.Interfaces;
namespace Lib.Audio
{
public class Device : IDevice
{
private readonly IMidiCommunication _midiCommunication;
private readonly IDeviceButtonConfiguration _buttonConfiguration;
public Device(IChannelFactory channelFactory)
public Device(IMidiCommunicationFactory midiCommunicationFactory, IChannelFactory channelFactory)
{
_midiCommunication = midiCommunicationFactory.Create();
_buttonConfiguration = new DeviceButtonConfiguration {HasMuteButton = true, NumberOfButtons = 4}; //FixMe: remove hard coded config
Channels = new List<IChannel>();
for (uint i = 0; i < 8; i++) //FixMe: remove hard coded config
Channels.Add(channelFactory.Create(i, _buttonConfiguration));
_midiCommunication.MessageReceived += OnMidiCommunicationMessageReceived;
_midiCommunication.ErrorReceived += OnMidiCommunicationErrorReceived;
}
public List<IChannel> Channels { get; }
public void StartCommunication() => _midiCommunication.Open();
private void OnMidiCommunicationMessageReceived(object? sender, IMidiMessage message)
{
int i = 0;
}
private void OnMidiCommunicationErrorReceived(object? sender, IMidiMessage message)
{
int i = 0;
}
}
}

@ -9,5 +9,7 @@ namespace Lib.Audio.Interfaces
public interface IDevice
{
List<IChannel> Channels { get; }
void StartCommunication();
}
}
Loading…
Cancel
Save