// 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 NAudio.Midi; namespace Lib.Audio { public class Device : IDevice { private readonly IDeviceButtonConfiguration _buttonConfiguration; private readonly MidiIn _midiIn; private readonly MidiOut _midiOut; public Device(IChannelFactory channelFactory) { _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)); var test = MidiIn.NumberOfDevices; _midiIn = new MidiIn(0); _midiOut = new MidiOut(0); _midiIn.MessageReceived += OnMidiInMessageReceived; _midiIn.ErrorReceived += OnMidiInErrorReceived; _midiIn.Start(); } public List Channels { get; } private void OnMidiInMessageReceived(object? sender, MidiInMessageEventArgs args) { int i = 0; } private void OnMidiInErrorReceived(object? sender, MidiInMessageEventArgs args) { int i = 0; } } }