-
Notifications
You must be signed in to change notification settings - Fork 1
/
PickStepView.h
43 lines (33 loc) · 1.25 KB
/
PickStepView.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "IView.h"
#include "Controls.h"
#include "Sequencer.h"
#include "Renderer.h"
extern Controls controls;
extern UIState uiState;
class PickStepView : public IView {
public:
void enable() override {
// Save current encoder value upon entering this state, because
// rotation in this step changes ui state.
lastEncoderPosition = controls.encoderPosition;
};
int16_t lastEncoderPosition = 0;
void loop() override {
if (controls.buttonCancel.wasReleased()) {
uiState.changeToSequence();
return;
}
if (controls.buttonAccept.wasReleased()) {
uiState.changeToStepOptions();
return;
}
uiState.currentlySelectedStep = controls.linearRotationHelper(uiState.currentlySelectedStep, 0, sequencer.stepsAmount - 1);
};
void print() override {
byte page = sequencer.getPageOfStep(uiState.currentlySelectedStep);
renderSequencer(page);
renderHeader("PICK STEP");
byte stepOffset = SEQUENCER_STEPS_PER_PAGE * (page - 1);
printStepUnderline(uiState.currentlySelectedStep - stepOffset);
};
};