diff --git a/Lib.Audio/Controls/Buttons/Button.cs b/Lib.Audio/Controls/Buttons/Button.cs index 3077316..dd6dbeb 100644 --- a/Lib.Audio/Controls/Buttons/Button.cs +++ b/Lib.Audio/Controls/Buttons/Button.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) diff --git a/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs b/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs index 405c02c..db1e8f1 100644 --- a/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs +++ b/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs @@ -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); } } } \ No newline at end of file diff --git a/Lib.Audio/Controls/Buttons/Interfaces/IButton.cs b/Lib.Audio/Controls/Buttons/Interfaces/IButton.cs index 23a98c0..e92153d 100644 --- a/Lib.Audio/Controls/Buttons/Interfaces/IButton.cs +++ b/Lib.Audio/Controls/Buttons/Interfaces/IButton.cs @@ -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); diff --git a/Lib.Audio/Controls/Buttons/MuteButton.cs b/Lib.Audio/Controls/Buttons/MuteButton.cs index f5162bd..2a6dd6e 100644 --- a/Lib.Audio/Controls/Buttons/MuteButton.cs +++ b/Lib.Audio/Controls/Buttons/MuteButton.cs @@ -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) diff --git a/Lib.Audio/Controls/Buttons/RecordButton.cs b/Lib.Audio/Controls/Buttons/RecordButton.cs index fbe2381..692c423 100644 --- a/Lib.Audio/Controls/Buttons/RecordButton.cs +++ b/Lib.Audio/Controls/Buttons/RecordButton.cs @@ -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) { } diff --git a/Lib.Audio/Controls/Buttons/SelectButton.cs b/Lib.Audio/Controls/Buttons/SelectButton.cs index 4c3c047..4f4ee1e 100644 --- a/Lib.Audio/Controls/Buttons/SelectButton.cs +++ b/Lib.Audio/Controls/Buttons/SelectButton.cs @@ -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) { }