From 183c43fe2d85be24e43f09e62c07911e82935b1d Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 24 Apr 2023 15:24:41 +0200 Subject: Add initial copy-paste of trig to ch --- src/clipboard.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/clipboard.c') diff --git a/src/clipboard.c b/src/clipboard.c index d802645..97e083f 100644 --- a/src/clipboard.c +++ b/src/clipboard.c @@ -279,6 +279,40 @@ clipboard_paste(void) { } draw_channels(); draw_triggers(); + } else if (input_handler == handle_channel_selection) { + if (clipboard.type == CLIP_TRIG || + clipboard.type == CLIP_PARAM_CH1 || + clipboard.type == CLIP_PARAM_CH2 || + clipboard.type == CLIP_PARAM_CH3 || + clipboard.type == CLIP_PARAM_CH4) { + if (clipboard.src_chan == channel_selection_loc) { + switch (channel_selection_loc) { + case 0: { + for (size_t i = 0; i < 17; i++) { + pat_dst->ch1.params[i] = pat_src->ch1.params[clipboard.src_trig]; + } + } break; + case 1: { + for (size_t i = 0; i < 17; i++) { + pat_dst->ch2.params[i] = pat_src->ch2.params[clipboard.src_trig]; + } + } break; + case 2: { + for (size_t i = 0; i < 17; i++) { + pat_dst->ch3.params[i] = pat_src->ch3.params[clipboard.src_trig]; + } + } break; + case 3: { + for (size_t i = 0; i < 17; i++) { + pat_dst->ch4.params[i] = pat_src->ch4.params[clipboard.src_trig]; + } + } break; + } + } + // TODO: copy params to position 16 (per-channel) if it matches the + // channel type. + // TODO: update all parameters in the rest of the triggers. + } } else if (input_handler == handle_pattern_selection && clipboard.type == CLIP_PATTERN) { // Copy an entire pattern. if (pattern_selection_loc != clipboard.src_pat) { -- cgit v1.2.1