mirror of
https://github.com/AquaMorph/Droplets.git
synced 2025-04-29 17:35:33 +00:00
Sequencer page scrolling
This commit is contained in:
parent
c362062855
commit
3d45576bf2
@ -7,7 +7,7 @@ SequencerDroplet::SequencerDroplet(DaisyPatch* m_patch,
|
|||||||
m_state) {
|
m_state) {
|
||||||
SetDimensions();
|
SetDimensions();
|
||||||
SetControls();
|
SetControls();
|
||||||
AdjustSelected(-1);
|
SetInMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
SequencerDroplet::~SequencerDroplet() {}
|
SequencerDroplet::~SequencerDroplet() {}
|
||||||
@ -45,8 +45,7 @@ void SequencerDroplet::Process(AudioHandle::InputBuffer in,
|
|||||||
sequence_length = std::max(1.0f,control[chn].Process() /
|
sequence_length = std::max(1.0f,control[chn].Process() /
|
||||||
4.9f*MAX_SEQUENCE_LENGTH);
|
4.9f*MAX_SEQUENCE_LENGTH);
|
||||||
SetDimensions();
|
SetDimensions();
|
||||||
selected = 0;
|
SetInMenu();
|
||||||
AdjustSelected(-1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -71,7 +70,9 @@ void SequencerDroplet::Process(AudioHandle::InputBuffer in,
|
|||||||
|
|
||||||
void SequencerDroplet::Draw() {
|
void SequencerDroplet::Draw() {
|
||||||
int left_padding = 4+GetScreenMin();
|
int left_padding = 4+GetScreenMin();
|
||||||
|
int offset = step / (num_columns*NUM_ROWS);
|
||||||
|
offset *= num_columns*NUM_ROWS;
|
||||||
|
|
||||||
// Active Input
|
// Active Input
|
||||||
if (!InMenu()) {
|
if (!InMenu()) {
|
||||||
DrawSolidRect(Patch(),
|
DrawSolidRect(Patch(),
|
||||||
@ -82,12 +83,12 @@ void SequencerDroplet::Draw() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Notes
|
// Notes
|
||||||
for (int i = 0; i < num_columns*NUM_ROWS && i < sequence_length; i++) {
|
for (int i = 0; i < num_columns*NUM_ROWS && i+offset < sequence_length; i++) {
|
||||||
WriteString(Patch(),
|
WriteString(Patch(),
|
||||||
GetScreenWidth()/num_columns*(i%num_columns)+left_padding,
|
GetScreenWidth()/num_columns*(i%num_columns)+left_padding,
|
||||||
8+(std::floor(i/num_columns)*8),
|
8+(std::floor(i/num_columns)*8),
|
||||||
FloatToString(sequence[i], 2),
|
FloatToString(sequence[i+offset], 2),
|
||||||
i!=step);
|
i+offset!=step);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw info bar
|
// Draw info bar
|
||||||
@ -107,6 +108,7 @@ void SequencerDroplet::Draw() {
|
|||||||
|
|
||||||
void SequencerDroplet::UpdateStateCallback() {
|
void SequencerDroplet::UpdateStateCallback() {
|
||||||
SetDimensions();
|
SetDimensions();
|
||||||
|
SetInMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SequencerDroplet::SetControls() {
|
void SequencerDroplet::SetControls() {
|
||||||
@ -144,3 +146,8 @@ void SequencerDroplet::AdjustSelected(int adj) {
|
|||||||
bool SequencerDroplet::InMenu() {
|
bool SequencerDroplet::InMenu() {
|
||||||
return selected >= num_rows;
|
return selected >= num_rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SequencerDroplet::SetInMenu() {
|
||||||
|
selected = 0;
|
||||||
|
AdjustSelected(-1);
|
||||||
|
}
|
||||||
|
@ -55,6 +55,11 @@ private:
|
|||||||
* @return menu state
|
* @return menu state
|
||||||
*/
|
*/
|
||||||
bool InMenu();
|
bool InMenu();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set sequancer in the menu.
|
||||||
|
*/
|
||||||
|
void SetInMenu();
|
||||||
public:
|
public:
|
||||||
/*
|
/*
|
||||||
* Constructor for a droplet.
|
* Constructor for a droplet.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user