- add stopCommunication method

- fix channel selection
master
Simon G 5 years ago
parent edaf9de1fb
commit 9b9bee242c
  1. 7
      Lib.Audio/Device.cs
  2. 1
      Lib.Audio/Interfaces/IDevice.cs

@ -36,13 +36,16 @@ namespace Lib.Audio
public List<IChannel> Channels { get; } public List<IChannel> Channels { get; }
public void StartCommunication(bool useMidiView) => _midiCommunication.Open(useMidiView); public void StartCommunication(bool useMidiView) => _midiCommunication.Open(useMidiView);
public void StopCommunication() => _midiCommunication.Close();
private List<IChannel> InitializeChannels(IControllableCollector controllableCollector) => _driver.Channels == null ? new List<IChannel>() private List<IChannel> InitializeChannels(IControllableCollector controllableCollector) => _driver.Channels == null ? new List<IChannel>()
: _driver.Channels.Select(c => _channelFactory.Create(c, controllableCollector, _midiCommunication)).ToList(); : _driver.Channels.Select(c => _channelFactory.Create(c, controllableCollector, _midiCommunication)).ToList();
private void OnMidiCommunicationMessageReceived(object? sender, IMidiMessage message) private void OnMidiCommunicationMessageReceived(object? sender, IMidiMessage message)
{ {
Channels[message.ChannelNumber - 1].HandleMessage(message); IChannel channel = Channels.First(c => c.ChannelNumber == message.ChannelNumber);
Channels[message.ChannelNumber - 1].SendAcknowledge();
channel.HandleMessage(message);
channel.SendAcknowledge();
} }
private void OnMidiCommunicationErrorReceived(object? sender, IMidiMessage message) => private void OnMidiCommunicationErrorReceived(object? sender, IMidiMessage message) =>

@ -13,5 +13,6 @@ namespace Lib.Audio.Interfaces
List<IChannel> Channels { get; } List<IChannel> Channels { get; }
void StartCommunication(bool useMidiView); void StartCommunication(bool useMidiView);
void StopCommunication();
} }
} }
Loading…
Cancel
Save