- 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. 4
      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; private readonly int _channelNumber;
public Button(int noteNumber, int channelNumber) public Button(int noteNumber, byte controller, int channelNumber)
{ {
NoteNumber = noteNumber; NoteNumber = noteNumber;
Controller = controller;
_channelNumber = channelNumber; _channelNumber = channelNumber;
} }
public int NoteNumber { get; } public int NoteNumber { get; }
public byte Controller { get; }
protected bool IsActive { get; private set; } protected bool IsActive { get; private set; }
public virtual IMidiMessage? HandlePressed(IControllable? controllable, Velocity velocity) 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) public IButton Create(XmlButton xmlButton, int channelNumber)
{ {
if (xmlButton.ButtonType == "Select") if (xmlButton.ButtonType == "Select")
return new SelectButton(xmlButton.NoteNumber, channelNumber); return new SelectButton(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
else if (xmlButton.ButtonType == "Mute") else if (xmlButton.ButtonType == "Mute")
return new MuteButton(xmlButton.NoteNumber, channelNumber); return new MuteButton(xmlButton.NoteNumber, xmlButton.Controller, channelNumber);
else if (xmlButton.ButtonType == "Record") 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 public interface IButton
{ {
int NoteNumber { get; } int NoteNumber { get; }
byte Controller { get; }
IMidiMessage? HandlePressed(IControllable? controllable, Velocity velocity); IMidiMessage? HandlePressed(IControllable? controllable, Velocity velocity);
IMidiMessage ToggleLed(LedState ledState); IMidiMessage ToggleLed(LedState ledState);

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

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

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

Loading…
Cancel
Save