From 9b9bee242c704e37af3500cb4c478e5ef9b63283 Mon Sep 17 00:00:00 2001 From: Simon G Date: Wed, 12 May 2021 19:03:13 +0200 Subject: [PATCH] - add stopCommunication method - fix channel selection --- Lib.Audio/Device.cs | 7 +++++-- Lib.Audio/Interfaces/IDevice.cs | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib.Audio/Device.cs b/Lib.Audio/Device.cs index f288ea5..881ec67 100644 --- a/Lib.Audio/Device.cs +++ b/Lib.Audio/Device.cs @@ -36,13 +36,16 @@ namespace Lib.Audio public List Channels { get; } public void StartCommunication(bool useMidiView) => _midiCommunication.Open(useMidiView); + public void StopCommunication() => _midiCommunication.Close(); private List InitializeChannels(IControllableCollector controllableCollector) => _driver.Channels == null ? new List() : _driver.Channels.Select(c => _channelFactory.Create(c, controllableCollector, _midiCommunication)).ToList(); private void OnMidiCommunicationMessageReceived(object? sender, IMidiMessage message) { - Channels[message.ChannelNumber - 1].HandleMessage(message); - Channels[message.ChannelNumber - 1].SendAcknowledge(); + IChannel channel = Channels.First(c => c.ChannelNumber == message.ChannelNumber); + + channel.HandleMessage(message); + channel.SendAcknowledge(); } private void OnMidiCommunicationErrorReceived(object? sender, IMidiMessage message) => diff --git a/Lib.Audio/Interfaces/IDevice.cs b/Lib.Audio/Interfaces/IDevice.cs index f815414..50f67f7 100644 --- a/Lib.Audio/Interfaces/IDevice.cs +++ b/Lib.Audio/Interfaces/IDevice.cs @@ -13,5 +13,6 @@ namespace Lib.Audio.Interfaces List Channels { get; } void StartCommunication(bool useMidiView); + void StopCommunication(); } } \ No newline at end of file