Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
MIDI_Outputs
ProgramChanger.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
Control_Surface/Control_Surface_Class.hpp
>
4
#include <
Def/Def.hpp
>
5
#include <
Selectors/Selectable.hpp
>
6
7
BEGIN_CS_NAMESPACE
8
9
template
<setting_t N>
10
class
ProgramChanger
:
public
Selectable
<N> {
11
public
:
12
ProgramChanger
(
const
Array<uint8_t, N>
&
programs
,
13
MIDIChannelCable
channelCN
)
14
:
programs
(
programs
),
channelCN
(
channelCN
) {}
15
16
void
select
(
setting_t
setting)
override
{
17
setting = this->
validateSetting
(setting);
18
Control_Surface
.sendProgramChange(
channelCN
,
programs
[setting]);
19
}
20
21
private
:
22
Array<uint8_t, N>
programs
;
23
MIDIChannelCable
channelCN
;
24
};
25
26
END_CS_NAMESPACE
Control_Surface
Control_Surface_ & Control_Surface
A predefined instance of the Control Surface to use in the Arduino sketches.
Definition
Control_Surface_Class.cpp:338
Control_Surface_Class.hpp
Def.hpp
setting_t
uint8_t setting_t
The type used for Selectors.
Definition
Def.hpp:53
Selectable.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
MIDIChannelCable
A class for saving a MIDI channel and cable number.
Definition
MIDIAddress.hpp:24
ProgramChanger::ProgramChanger
ProgramChanger(const Array< uint8_t, N > &programs, MIDIChannelCable channelCN)
Definition
ProgramChanger.hpp:12
ProgramChanger::select
void select(setting_t setting) override
Definition
ProgramChanger.hpp:16
ProgramChanger::channelCN
MIDIChannelCable channelCN
Definition
ProgramChanger.hpp:23
ProgramChanger::programs
Array< uint8_t, N > programs
Definition
ProgramChanger.hpp:22
Selectable::Selectable
Selectable(setting_t initialSelection=0)
Definition
Selectable.hpp:13
Selectable::validateSetting
static setting_t validateSetting(setting_t setting)
Definition
Selectable.hpp:19
AH::Array
An array wrapper for easy copying, comparing, and iterating.
Definition
Array.hpp:32
Generated by
1.17.0