diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-22 11:30:47 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-22 11:30:47 +0200 |
commit | 8fc5cc7f53ea3874bae5389f489814869d2abd04 (patch) | |
tree | 9d01ef11a0618a6377d07058c2cd704562827bb7 /src/sequencer.c | |
parent | c888455af3ea5b9e8d2087a57df104c14ffac09e (diff) | |
download | stepper-8fc5cc7f53ea3874bae5389f489814869d2abd04.tar.gz stepper-8fc5cc7f53ea3874bae5389f489814869d2abd04.zip |
Update right column UI and cursor management
Diffstat (limited to 'src/sequencer.c')
-rw-r--r-- | src/sequencer.c | 100 |
1 files changed, 64 insertions, 36 deletions
diff --git a/src/sequencer.c b/src/sequencer.c index b3b27c6..4e3802f 100644 --- a/src/sequencer.c +++ b/src/sequencer.c | |||
@@ -570,42 +570,64 @@ select_bank(int i) { | |||
570 | void | 570 | void |
571 | handle_right_col_selection(void) { | 571 | handle_right_col_selection(void) { |
572 | if (key_tap(KEY_LEFT)) { | 572 | if (key_tap(KEY_LEFT)) { |
573 | if (right_col_selection_loc == R_COL_STOP) { | 573 | switch (right_col_selection_loc) { |
574 | right_col_selection_loc = R_COL_PLAY; | 574 | case R_COL_STOP: |
575 | case R_COL_BANK_B: | ||
576 | case R_COL_BANK_D: | ||
577 | case R_COL_BANK_F: { right_col_selection_loc--; } break; | ||
578 | case R_COL_BANK_A: | ||
579 | case R_COL_BANK_C: | ||
580 | case R_COL_BANK_E: | ||
581 | case R_COL_SCALE: | ||
582 | case R_COL_BPM: | ||
583 | case R_COL_SETTINGS: | ||
584 | case R_COL_PLAY: { | ||
585 | input_handler = handle_trigger_selection; | ||
586 | redraw_params = true; | ||
587 | } break; | ||
588 | } | ||
589 | if (right_col_selection_loc == R_COL_PLAY || | ||
590 | right_col_selection_loc == R_COL_SETTINGS) { | ||
591 | trig_selection_loc = 15; | ||
575 | } else { | 592 | } else { |
576 | if (right_col_selection_loc == R_COL_BPM) { | 593 | trig_selection_loc = 7; |
577 | trig_selection_loc = 15; | ||
578 | } else { | ||
579 | trig_selection_loc = 7; | ||
580 | } | ||
581 | input_handler = handle_trigger_selection; | ||
582 | redraw_params = true; | ||
583 | } | 594 | } |
584 | } else if (key_tap(KEY_RIGHT)) { | 595 | } else if (key_tap(KEY_RIGHT)) { |
585 | if (right_col_selection_loc == R_COL_PLAY) { | 596 | switch (right_col_selection_loc) { |
586 | right_col_selection_loc = R_COL_STOP; | 597 | case R_COL_PLAY: |
587 | } else { | 598 | case R_COL_BANK_A: |
588 | input_handler = handle_pattern_selection; | 599 | case R_COL_BANK_C: |
589 | param_selection_loc = 0; | 600 | case R_COL_BANK_E: { right_col_selection_loc++; } break; |
590 | redraw_trigs = true; | 601 | case R_COL_BANK_B: |
602 | case R_COL_BANK_D: | ||
603 | case R_COL_BANK_F: | ||
604 | case R_COL_SCALE: | ||
605 | case R_COL_BPM: | ||
606 | case R_COL_SETTINGS: | ||
607 | case R_COL_STOP: { input_handler = handle_pattern_selection; } break; | ||
591 | } | 608 | } |
592 | } else if (key_tap(KEY_UP)) { | 609 | } else if (key_tap(KEY_UP)) { |
593 | switch (right_col_selection_loc) { | 610 | switch (right_col_selection_loc) { |
594 | case R_COL_PLAY: | 611 | case R_COL_BANK_A: { right_col_selection_loc = R_COL_PLAY; } break; |
595 | case R_COL_STOP: { right_col_selection_loc = R_COL_SETTINGS; } break; | 612 | case R_COL_BANK_B: { right_col_selection_loc = R_COL_STOP; } break; |
596 | case R_COL_SETTINGS: { right_col_selection_loc = R_COL_BANK_D; } break; | 613 | case R_COL_BANK_C: |
597 | case R_COL_BPM: { right_col_selection_loc = R_COL_PLAY; } break; | 614 | case R_COL_BANK_D: |
598 | case R_COL_BANK_A: { right_col_selection_loc = R_COL_BPM; } break; | 615 | case R_COL_BANK_E: |
599 | default: { right_col_selection_loc++; } break; | 616 | case R_COL_BANK_F: |
617 | case R_COL_STOP: | ||
618 | case R_COL_SCALE: { right_col_selection_loc -= 2; } break; | ||
619 | default: { right_col_selection_loc--; } break; | ||
600 | } | 620 | } |
601 | } else if (key_tap(KEY_DOWN)) { | 621 | } else if (key_tap(KEY_DOWN)) { |
602 | switch (right_col_selection_loc) { | 622 | switch (right_col_selection_loc) { |
603 | case R_COL_PLAY: | 623 | case R_COL_BANK_A: |
604 | case R_COL_STOP: { right_col_selection_loc = R_COL_BPM; } break; | 624 | case R_COL_BANK_B: |
605 | case R_COL_BPM: { right_col_selection_loc = R_COL_BANK_A; } break; | 625 | case R_COL_BANK_C: |
606 | case R_COL_BANK_D: { right_col_selection_loc = R_COL_SETTINGS; } break; | 626 | case R_COL_BANK_D: |
607 | case R_COL_SETTINGS: { right_col_selection_loc = R_COL_PLAY; } break; | 627 | case R_COL_BANK_E: { right_col_selection_loc += 2; } break; |
608 | default: { right_col_selection_loc--; } break; | 628 | case R_COL_PLAY: { right_col_selection_loc = R_COL_BANK_A; } break; |
629 | case R_COL_STOP: { right_col_selection_loc = R_COL_BANK_B; } break; | ||
630 | default: { right_col_selection_loc++; } break; | ||
609 | } | 631 | } |
610 | } else if (key_tap(KEY_L)) { | 632 | } else if (key_tap(KEY_L)) { |
611 | switch (right_col_selection_loc) { | 633 | switch (right_col_selection_loc) { |
@@ -624,6 +646,7 @@ handle_right_col_selection(void) { | |||
624 | } | 646 | } |
625 | redraw_bpm = true; | 647 | redraw_bpm = true; |
626 | } break; | 648 | } break; |
649 | // TODO: Scale. | ||
627 | } | 650 | } |
628 | } else if (key_tap(KEY_R)) { | 651 | } else if (key_tap(KEY_R)) { |
629 | switch (right_col_selection_loc) { | 652 | switch (right_col_selection_loc) { |
@@ -642,16 +665,20 @@ handle_right_col_selection(void) { | |||
642 | } | 665 | } |
643 | redraw_bpm = true; | 666 | redraw_bpm = true; |
644 | } break; | 667 | } break; |
668 | // TODO: Scale. | ||
645 | } | 669 | } |
646 | } else if (key_tap(KEY_B)) { | 670 | } else if (key_tap(KEY_B)) { |
647 | switch (right_col_selection_loc) { | 671 | switch (right_col_selection_loc) { |
648 | case R_COL_SETTINGS: { next_scene = SCENE_SETTINGS; } break; | 672 | case R_COL_SETTINGS: { next_scene = SCENE_SETTINGS; } break; |
673 | // case R_COL_SCALE: { stop_playing(); } break; // TODO: Should scale be toggleable? | ||
649 | case R_COL_STOP: { stop_playing(); } break; | 674 | case R_COL_STOP: { stop_playing(); } break; |
650 | case R_COL_PLAY: { pause_playing(); } break; | 675 | case R_COL_PLAY: { pause_playing(); } break; |
651 | case R_COL_BANK_A: { select_bank(0); } break; | 676 | case R_COL_BANK_A: { select_bank(0); } break; |
652 | case R_COL_BANK_B: { select_bank(1); } break; | 677 | case R_COL_BANK_B: { select_bank(1); } break; |
653 | case R_COL_BANK_C: { select_bank(2); } break; | 678 | case R_COL_BANK_C: { select_bank(2); } break; |
654 | case R_COL_BANK_D: { select_bank(3); } break; | 679 | case R_COL_BANK_D: { select_bank(3); } break; |
680 | case R_COL_BANK_E: { select_bank(4); } break; | ||
681 | case R_COL_BANK_F: { select_bank(5); } break; | ||
655 | } | 682 | } |
656 | } | 683 | } |
657 | } | 684 | } |
@@ -759,13 +786,14 @@ handle_pattern_selection(void) { | |||
759 | input_handler = handle_right_col_selection; | 786 | input_handler = handle_right_col_selection; |
760 | right_col_selection_loc = R_COL_BPM; | 787 | right_col_selection_loc = R_COL_BPM; |
761 | switch (pattern_selection_loc) { | 788 | switch (pattern_selection_loc) { |
762 | case 0: { right_col_selection_loc = R_COL_BANK_A; } break; | 789 | case 0: { right_col_selection_loc = R_COL_BANK_B; } break; |
763 | case 1: { right_col_selection_loc = R_COL_BANK_B; } break; | 790 | case 1: { right_col_selection_loc = R_COL_BANK_D; } break; |
764 | case 2: { right_col_selection_loc = R_COL_BANK_C; } break; | 791 | case 2: { right_col_selection_loc = R_COL_BANK_F; } break; |
765 | case 3: { right_col_selection_loc = R_COL_BANK_D; } break; | 792 | case 3: { right_col_selection_loc = R_COL_SCALE; } break; |
766 | case 4: { right_col_selection_loc = R_COL_PLAY; } break; | 793 | case 4: { right_col_selection_loc = R_COL_SCALE; } break; |
767 | case 5: { right_col_selection_loc = R_COL_STOP; } break; | 794 | case 5: { right_col_selection_loc = R_COL_BPM; } break; |
768 | default: { right_col_selection_loc = R_COL_BPM; } break; | 795 | case 6: { right_col_selection_loc = R_COL_SETTINGS; } break; |
796 | case 7: { right_col_selection_loc = R_COL_STOP; } break; | ||
769 | } | 797 | } |
770 | } | 798 | } |
771 | if (key_tap(KEY_R)) { | 799 | if (key_tap(KEY_R)) { |
@@ -1233,9 +1261,9 @@ handle_trigger_selection(void) { | |||
1233 | trig_selection_loc = MIN(trig_selection_loc + 1, 15); | 1261 | trig_selection_loc = MIN(trig_selection_loc + 1, 15); |
1234 | } else if (trig_selection_loc == 7) { | 1262 | } else if (trig_selection_loc == 7) { |
1235 | input_handler = handle_right_col_selection; | 1263 | input_handler = handle_right_col_selection; |
1236 | right_col_selection_loc = R_COL_PLAY; | ||
1237 | } else if (trig_selection_loc == 15) { | ||
1238 | right_col_selection_loc = R_COL_BPM; | 1264 | right_col_selection_loc = R_COL_BPM; |
1265 | } else if (trig_selection_loc == 15) { | ||
1266 | right_col_selection_loc = R_COL_PLAY; | ||
1239 | input_handler = handle_right_col_selection; | 1267 | input_handler = handle_right_col_selection; |
1240 | } | 1268 | } |
1241 | redraw_params = true; | 1269 | redraw_params = true; |