diff --git a/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs b/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs index 344ab33..405c02c 100644 --- a/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs +++ b/Lib.Audio/Controls/Buttons/Factories/ButtonFactory.cs @@ -15,6 +15,8 @@ namespace Lib.Audio.Controls.Buttons.Factories return new SelectButton(xmlButton.NoteNumber, channelNumber); else if (xmlButton.ButtonType == "Mute") return new MuteButton(xmlButton.NoteNumber, channelNumber); + else if (xmlButton.ButtonType == "Record") + return new RecordButton(xmlButton.NoteNumber, channelNumber); return new Button(xmlButton.NoteNumber, channelNumber); } diff --git a/Lib.Audio/Controls/Buttons/Interfaces/IRecordButton.cs b/Lib.Audio/Controls/Buttons/Interfaces/IRecordButton.cs new file mode 100644 index 0000000..153cd78 --- /dev/null +++ b/Lib.Audio/Controls/Buttons/Interfaces/IRecordButton.cs @@ -0,0 +1,13 @@ +// Author: Gockner, Simon +// Created: 2021-04-26 +// Copyright(c) 2021 SimonG. All Rights Reserved. + +using Lib.Midi.Messages.Interfaces; + +namespace Lib.Audio.Controls.Buttons.Interfaces +{ + public interface IRecordButton : IButton + { + IMidiMessage? Record(); + } +} \ No newline at end of file diff --git a/Lib.Audio/Controls/Buttons/RecordButton.cs b/Lib.Audio/Controls/Buttons/RecordButton.cs new file mode 100644 index 0000000..9ba1510 --- /dev/null +++ b/Lib.Audio/Controls/Buttons/RecordButton.cs @@ -0,0 +1,22 @@ +// Author: Gockner, Simon +// Created: 2021-04-26 +// Copyright(c) 2021 SimonG. All Rights Reserved. + +using Lib.Audio.Controls.Buttons.Interfaces; +using Lib.Audio.Interfaces; +using Lib.Midi.Messages.Interfaces; + +namespace Lib.Audio.Controls.Buttons +{ + public class RecordButton : Button, IRecordButton + { + public RecordButton(int noteNumber, int channelNumber) + : base(noteNumber, channelNumber) + { + + } + + public override IMidiMessage? Handle(IControllable? controllable, Velocity velocity) => null; //for now don't do anything when pressed + public IMidiMessage? Record() => base.Handle(null, Velocity.On); + } +} \ No newline at end of file