aboutsummaryrefslogtreecommitdiffstats
path: root/src/sequencer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sequencer.c')
-rw-r--r--src/sequencer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/sequencer.c b/src/sequencer.c
index 8addefd..632a777 100644
--- a/src/sequencer.c
+++ b/src/sequencer.c
@@ -755,6 +755,7 @@ handle_right_col_selection(void) {
755 755
756void 756void
757handle_pattern_chain(void) { 757handle_pattern_chain(void) {
758 static int previous_loc = 0;
758 if (key_tap(KEY_A)) { 759 if (key_tap(KEY_A)) {
759 input_handler = handle_pattern_selection; 760 input_handler = handle_pattern_selection;
760 } else if (key_tap(KEY_LEFT)) { 761 } else if (key_tap(KEY_LEFT)) {
@@ -781,10 +782,13 @@ handle_pattern_chain(void) {
781 } 782 }
782 } else if (key_tap(KEY_UP)) { 783 } else if (key_tap(KEY_UP)) {
783 if (param_selection_loc >= 0 && param_selection_loc <= 2) { 784 if (param_selection_loc >= 0 && param_selection_loc <= 2) {
785 previous_loc = param_selection_loc;
784 param_selection_loc = 16; 786 param_selection_loc = 16;
785 } else if (param_selection_loc >= 3 && param_selection_loc <= 4) { 787 } else if (param_selection_loc >= 3 && param_selection_loc <= 4) {
788 previous_loc = param_selection_loc;
786 param_selection_loc = 17; 789 param_selection_loc = 17;
787 } else if (param_selection_loc >= 5 && param_selection_loc <= 7) { 790 } else if (param_selection_loc >= 5 && param_selection_loc <= 7) {
791 previous_loc = param_selection_loc;
788 param_selection_loc = 18; 792 param_selection_loc = 18;
789 } else if (param_selection_loc >= 8 && param_selection_loc <= 15){ 793 } else if (param_selection_loc >= 8 && param_selection_loc <= 15){
790 param_selection_loc -= 8; 794 param_selection_loc -= 8;
@@ -793,11 +797,11 @@ handle_pattern_chain(void) {
793 if (param_selection_loc <= 7) { 797 if (param_selection_loc <= 7) {
794 param_selection_loc += 8; 798 param_selection_loc += 8;
795 } else if (param_selection_loc == 16){ 799 } else if (param_selection_loc == 16){
796 param_selection_loc = 1; 800 param_selection_loc = previous_loc;
797 } else if (param_selection_loc == 17){ 801 } else if (param_selection_loc == 17){
798 param_selection_loc = 3; 802 param_selection_loc = previous_loc;
799 } else if (param_selection_loc == 18){ 803 } else if (param_selection_loc == 18){
800 param_selection_loc = 5; 804 param_selection_loc = previous_loc;
801 } 805 }
802 } else if (key_tap(KEY_B)) { 806 } else if (key_tap(KEY_B)) {
803 switch (param_selection_loc) { 807 switch (param_selection_loc) {