Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Banks
BankConfig.hpp
Go to the documentation of this file.
1
/* ✔ */
2
3
#pragma once
4
5
#include <
Def/Def.hpp
>
6
7
BEGIN_CS_NAMESPACE
8
12
enum
BankType
{
17
ChangeAddress
= 0,
18
CHANGE_ADDRESS
CS_DEPREC
(
"Use ChangeAddress instead"
) =
ChangeAddress
,
22
ChangeChannel
= 1,
23
CHANGE_CHANNEL
CS_DEPREC
(
"Use ChangeChannel instead"
) =
ChangeChannel
,
27
ChangeCable
= 2,
28
CHANGE_CABLENB
CS_DEPREC
(
"Use ChangeCable instead"
) =
ChangeCable
,
29
};
30
31
template
<setting_t NumBanks>
32
class
Bank
;
33
class
OutputBank
;
34
35
template
<BankType DefaultBankType>
36
struct
OutputBankConfig
;
37
42
template
<setting_t N>
43
class
BaseBankConfig
{
44
protected
:
45
BaseBankConfig
(
Bank<N>
&
bank
,
BankType
type
) :
bank
(
bank
),
type
(
type
) {}
46
47
public
:
48
Bank<N>
&
bank
;
49
const
BankType
type
;
50
};
51
53
template
<setting_t N, BankType DefaultBankType = BankType::ChangeAddress>
54
struct
BankConfig
:
BaseBankConfig
<N> {
55
BankConfig
(
Bank<N>
&
bank
,
BankType
type
= DefaultBankType)
56
:
BaseBankConfig
<N>(
bank
,
type
) {}
57
};
58
63
class
BaseOutputBankConfig
{
64
protected
:
65
BaseOutputBankConfig
(
OutputBank
&
bank
,
BankType
type
)
66
:
bank
(
bank
),
type
(
type
) {}
67
68
public
:
69
template
<setting_t N>
70
BaseOutputBankConfig
(
BaseBankConfig<N>
config)
71
:
bank
(config.
bank
),
type
(config.
type
) {}
72
73
OutputBank
&
bank
;
74
const
BankType
type
;
75
};
76
78
template
<BankType DefaultBankType = BankType::ChangeAddress>
79
struct
OutputBankConfig
:
BaseOutputBankConfig
{
80
OutputBankConfig
(
OutputBank
&
bank
,
BankType
type
= DefaultBankType)
81
:
BaseOutputBankConfig
(
bank
,
type
) {}
82
};
83
84
END_CS_NAMESPACE
BankType
BankType
An enumeration of the different bank types.
Definition
BankConfig.hpp:12
ChangeAddress
@ ChangeAddress
Change the offset of the address (i.e.
Definition
BankConfig.hpp:17
CHANGE_CHANNEL
@ CHANGE_CHANNEL
Definition
BankConfig.hpp:23
CHANGE_CABLENB
@ CHANGE_CABLENB
Definition
BankConfig.hpp:28
CHANGE_ADDRESS
@ CHANGE_ADDRESS
Definition
BankConfig.hpp:18
ChangeCable
@ ChangeCable
Change the offset of the cable number of the element.
Definition
BankConfig.hpp:27
ChangeChannel
@ ChangeChannel
Change the offset of the channel number of the element.
Definition
BankConfig.hpp:22
Def.hpp
CS_DEPREC
#define CS_DEPREC(...)
Definition
Settings/NamespaceSettings.hpp:30
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
Bank
A class that groups Bankable MIDI Output Elements and Bankable MIDI Input Elements,...
Definition
Bank.hpp:94
BaseBankConfig
A struct for selecting the bank of BankableMIDIInputs and the bank type.
Definition
BankConfig.hpp:43
BaseBankConfig::BaseBankConfig
BaseBankConfig(Bank< N > &bank, BankType type)
Definition
BankConfig.hpp:45
BaseBankConfig::type
const BankType type
Definition
BankConfig.hpp:49
BaseBankConfig::bank
Bank< N > & bank
Definition
BankConfig.hpp:48
BaseOutputBankConfig::bank
OutputBank & bank
Definition
BankConfig.hpp:73
BaseOutputBankConfig::BaseOutputBankConfig
BaseOutputBankConfig(BaseBankConfig< N > config)
Definition
BankConfig.hpp:70
BaseOutputBankConfig::BaseOutputBankConfig
BaseOutputBankConfig(OutputBank &bank, BankType type)
Definition
BankConfig.hpp:65
BaseOutputBankConfig::type
const BankType type
Definition
BankConfig.hpp:74
OutputBank
A class for changing the address of BankableMIDIOutputs.
Definition
Bank.hpp:16
BankConfig::BankConfig
BankConfig(Bank< N > &bank, BankType type=DefaultBankType)
Definition
BankConfig.hpp:55
OutputBankConfig
Definition
BankConfig.hpp:79
OutputBankConfig::OutputBankConfig
OutputBankConfig(OutputBank &bank, BankType type=DefaultBankType)
Definition
BankConfig.hpp:80
Generated by
1.17.0