Deluge Firmware
1.3.0
Build date: 2026.08.29
Toggle main menu visibility
Loading...
Searching...
No Matches
chord.h
1
/*
2
* Copyright © 2016-2024 Synthstrom Audible Limited
3
*
4
* This file is part of The Synthstrom Audible Deluge Firmware.
5
*
6
* The Synthstrom Audible Deluge Firmware is free software: you can redistribute it and/or modify it under the
7
* terms of the GNU General Public License as published by the Free Software Foundation,
8
* either version 3 of the License, or (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
* See the GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along with this program.
15
* If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#pragma once
19
20
#include "gui/ui/keyboard/column_controls/control_column.h"
21
#include "util/lookuptables/lookuptables.h"
22
23
namespace
deluge::gui::ui::keyboard::controls {
24
25
enum
ChordModeChord {
26
NO_CHORD = 0,
27
FIFTH,
28
SUS2,
29
MINOR,
30
MAJOR,
31
SUS4,
32
MINOR7,
33
DOMINANT7,
34
MAJOR7,
35
CHORD_MODE_CHORD_MAX,
/* should be 9, 8 chord pads plus NO_CHORD */
36
};
37
38
class
ChordColumn :
public
ControlColumn
{
39
public
:
40
ChordColumn() =
default
;
41
42
void
renderColumn(
RGB
image[][kDisplayWidth + kSideBarWidth], int32_t column,
KeyboardLayout
* layout)
override
;
43
bool
handleVerticalEncoder(int8_t pad, int32_t offset)
override
;
44
void
handleLeavingColumn(
ModelStackWithTimelineCounter
* modelStackWithTimelineCounter,
45
KeyboardLayout
* layout)
override
;
46
void
handlePad(
ModelStackWithTimelineCounter
* modelStackWithTimelineCounter,
PressedPad
pad,
47
KeyboardLayout
* layout)
override
;
48
49
uint8_t chordSemitoneOffsets[MAX_CHORD_NOTES] = {0};
50
51
private
:
52
ChordModeChord activeChord = NO_CHORD;
53
ChordModeChord defaultChord = NO_CHORD;
54
55
void
setActiveChord(ChordModeChord chord);
56
};
57
58
}
// namespace deluge::gui::ui::keyboard::controls
ModelStackWithTimelineCounter
Definition
model_stack.h:129
RGB
This class represents the colour format most used by the Deluge globally.
Definition
rgb.h:14
deluge::gui::ui::keyboard::KeyboardLayout
Definition
layout.h:42
deluge::gui::ui::keyboard::controls::ControlColumn
Definition
control_column.h:32
deluge::gui::ui::keyboard::PressedPad
Definition
notes_state.h:31