3#include "definitions_cxx.hpp"
9constexpr uint8_t fromCartesian(Cartesian c) {
10 return 9 * (c.y + kDisplayHeight * 2) + c.x;
13constexpr uint8_t fromXY(int32_t x, int32_t y) {
14 return 9 * (y + kDisplayHeight * 2) + x;
17using Button = uint8_t;
20static constexpr uint8_t ZmodButtonX[8] = {1, 1, 1, 1, 2, 2, 2, 2};
21static constexpr uint8_t ZmodButtonY[8] = {0, 1, 2, 3, 0, 1, 2, 3};
24enum KnownButtons : Button {
25 AFFECT_ENTIRE = fromCartesian(affectEntireButtonCoord),
26 SESSION_VIEW = fromCartesian(sessionViewButtonCoord),
27 CLIP_VIEW = fromCartesian(clipViewButtonCoord),
28 SYNTH = fromCartesian(synthButtonCoord),
29 KIT = fromCartesian(kitButtonCoord),
30 MIDI = fromCartesian(midiButtonCoord),
31 CV = fromCartesian(cvButtonCoord),
32 KEYBOARD = fromCartesian(keyboardButtonCoord),
33 SCALE_MODE = fromCartesian(scaleModeButtonCoord),
34 CROSS_SCREEN_EDIT = fromCartesian(crossScreenEditButtonCoord),
35 BACK = fromCartesian(backButtonCoord),
36 LOAD = fromCartesian(loadButtonCoord),
37 SAVE = fromCartesian(saveButtonCoord),
38 LEARN = fromCartesian(learnButtonCoord),
39 TAP_TEMPO = fromCartesian(tapTempoButtonCoord),
40 SYNC_SCALING = fromCartesian(syncScalingButtonCoord),
41 TRIPLETS = fromCartesian(tripletsButtonCoord),
42 PLAY = fromCartesian(playButtonCoord),
43 RECORD = fromCartesian(recordButtonCoord),
44 SHIFT = fromCartesian(shiftButtonCoord),
46 MOD7 = fromXY(ZmodButtonX[6], ZmodButtonY[6]),
48 X_ENC = fromCartesian(xEncButtonCoord),
49 Y_ENC = fromCartesian(yEncButtonCoord),
50 MOD_ENCODER_0 = fromCartesian(modEncoder0ButtonCoord),
51 MOD_ENCODER_1 = fromCartesian(modEncoder1ButtonCoord),
52 SELECT_ENC = fromCartesian(selectEncButtonCoord),
53 TEMPO_ENC = fromCartesian(tempoEncButtonCoord),
57constexpr uint8_t fromChar(uint8_t c) {
58 return static_cast<uint8_t
>(c);
61Cartesian toXY(Button b);
63using Button = button::Button;