// Author: Gockner, Simon // Created: 2021-04-07 // Copyright(c) 2021 SimonG. All Rights Reserved. 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(IMidiCommunicationFactory midiCommunicationFactory, IChannelFactory channelFactory) { _midiCommunication = midiCommunicationFactory.Create(); _buttonConfiguration = new DeviceButtonConfiguration {HasMuteButton = true, NumberOfButtons = 4}; //FixMe: remove hard coded config Channels = new List(); 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 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; } } }