- pass controller to buttons

master
Simon G 5 years ago
parent 41c2c0cfe2
commit 67750a3271
  1. 4
      Lib.Audio/Controls/Buttons/Button.cs
  2. 8
      Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs
  3. 1
      Lib.Audio/Controls/Buttons/Interfaces/IButton.cs
  4. 6
      Lib.Audio/Controls/Buttons/MuteButton.cs
  5. 4
      Lib.Audio/Controls/Buttons/RecordButton.cs
  6. 4
      Lib.Audio/Controls/Buttons/SelectButton.cs

@ -13,13 +13,15 @@ namespace Lib.Audio.Controls.Buttons
{
private readonly int _channelNumber;
public Button(int noteNumber, int channelNumber)
public Button(int noteNumber, byte controller, int channelNumber)
{
NoteNumber = noteNumber;
Controller = controller;
_channelNumber = channelNumber;
}
public int NoteNumber { get; }
public byte Controller { get; }
protected bool IsActive { get; private set; }
public virtual IMidiMessage? HandlePressed(IControllable? controllable, Velocity velocity)

@ -12,13 +12,13 @@ namespace Lib.Audio.Controls.Buttons.Factories
public IButton Create(XmlButton xmlButton, int channelNumber)
{
if (xmlButton.ButtonType == "Select")
return new SelectButton(xmlButton.NoteNumber, channelNumber);
return new SelectButton(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
else if (xmlButton.ButtonType == "Mute")
return new MuteButton(xmlButton.NoteNumber, channelNumber);
return new MuteButton(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
else if (xmlButton.ButtonType == "Record")
return new RecordButton(xmlButton.NoteNumber, channelNumber);
return new RecordButton(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
return new Button(xmlButton.NoteNumber, channelNumber);
return new Button(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
}
}
}

@ -10,6 +10,7 @@ namespace Lib.Audio.Controls.Buttons.Interfaces
public interface IButton
{
int NoteNumber { get; }
byte Controller { get; }
IMidiMessage? HandlePressed(IControllable? controllable, Velocity velocity);
IMidiMessage ToggleLed(LedState ledState);

@ -9,12 +9,12 @@ namespace Lib.Audio.Controls.Buttons
{
public class MuteButton : Button, IMuteButton
{
public MuteButton(int noteNumber, int channelNumber)
: base(noteNumber, channelNumber)
public MuteButton(int noteNumber, byte controller, int channelNumber)
: base(noteNumber, controller, channelNumber)
{
}
protected override void Handle(IControllable? controllable)
{
if (IsActive)

@ -10,8 +10,8 @@ namespace Lib.Audio.Controls.Buttons
{
public class RecordButton : Button, IRecordButton
{
public RecordButton(int noteNumber, int channelNumber)
: base(noteNumber, channelNumber)
public RecordButton(int noteNumber, byte controller, int channelNumber)
: base(noteNumber, controller, channelNumber)
{
}

@ -10,8 +10,8 @@ namespace Lib.Audio.Controls.Buttons
{
public class SelectButton : Button, ISelectButton
{
public SelectButton(int noteNumber, int channelNumber)
: base(noteNumber, channelNumber)
public SelectButton(int noteNumber, byte controller, int channelNumber)
: base(noteNumber, controller, channelNumber)
{
}

Loading…
Cancel
Save