You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
// 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<IChannel>();
|
|
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<IChannel> Channels { get; }
|
|
|
|
private void OnMidiInMessageReceived(object? sender, MidiInMessageEventArgs args)
|
|
{
|
|
int i = 0;
|
|
}
|
|
|
|
private void OnMidiInErrorReceived(object? sender, MidiInMessageEventArgs args)
|
|
{
|
|
int i = 0;
|
|
}
|
|
}
|
|
} |