diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sequencer.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/sequencer.c b/src/sequencer.c index 7a7d528..ff5847d 100644 --- a/src/sequencer.c +++ b/src/sequencer.c | |||
@@ -469,6 +469,26 @@ static Pattern patterns[8] = { | |||
469 | {default_ch1, default_ch2, default_ch3, default_ch4, default_bpm, 0}, | 469 | {default_ch1, default_ch2, default_ch3, default_ch4, default_bpm, 0}, |
470 | }; | 470 | }; |
471 | 471 | ||
472 | typedef enum ClipboardType { | ||
473 | CLIP_EMPTY, | ||
474 | CLIP_TRIG, | ||
475 | CLIP_PARAM_CH1, | ||
476 | CLIP_PARAM_CH2, | ||
477 | CLIP_PARAM_CH3, | ||
478 | CLIP_PARAM_CH4, | ||
479 | CLIP_PATTERN, | ||
480 | CLIP_CHANNEL, | ||
481 | } ClipboardType; | ||
482 | |||
483 | typedef struct Clipboard { | ||
484 | ClipboardType type; | ||
485 | u8 src_pat; | ||
486 | u8 src_chan; | ||
487 | u8 src_trig; | ||
488 | } Clipboard; | ||
489 | |||
490 | static Clipboard clipboard = {CLIP_EMPTY, 0, 0, 0}; | ||
491 | |||
472 | void | 492 | void |
473 | save_bank(int i) { | 493 | save_bank(int i) { |
474 | sram_write(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns)); | 494 | sram_write(&patterns, sizeof(Metadata) + i * sizeof(patterns), sizeof(patterns)); |
@@ -2002,6 +2022,7 @@ pause_playing(void) { | |||
2002 | void | 2022 | void |
2003 | select_bank(int i) { | 2023 | select_bank(int i) { |
2004 | stop_playing(); | 2024 | stop_playing(); |
2025 | clipboard.type = CLIP_EMPTY; | ||
2005 | save_bank(current_bank); | 2026 | save_bank(current_bank); |
2006 | metadata.current_pattern = current_pattern; | 2027 | metadata.current_pattern = current_pattern; |
2007 | metadata.current_bank = i; | 2028 | metadata.current_bank = i; |
@@ -2602,26 +2623,6 @@ handle_trigger_selection(void) { | |||
2602 | } | 2623 | } |
2603 | } | 2624 | } |
2604 | 2625 | ||
2605 | typedef enum ClipboardType { | ||
2606 | CLIP_EMPTY, | ||
2607 | CLIP_TRIG, | ||
2608 | CLIP_PARAM_CH1, | ||
2609 | CLIP_PARAM_CH2, | ||
2610 | CLIP_PARAM_CH3, | ||
2611 | CLIP_PARAM_CH4, | ||
2612 | CLIP_PATTERN, | ||
2613 | CLIP_CHANNEL, | ||
2614 | } ClipboardType; | ||
2615 | |||
2616 | typedef struct Clipboard { | ||
2617 | ClipboardType type; | ||
2618 | u8 src_pat; | ||
2619 | u8 src_chan; | ||
2620 | u8 src_trig; | ||
2621 | } Clipboard; | ||
2622 | |||
2623 | static Clipboard clipboard = {CLIP_EMPTY, 0, 0, 0}; | ||
2624 | |||
2625 | void | 2626 | void |
2626 | clipboard_paste(void) { | 2627 | clipboard_paste(void) { |
2627 | Pattern *pat_dst = &patterns[pattern_selection_loc]; | 2628 | Pattern *pat_dst = &patterns[pattern_selection_loc]; |