aboutsummaryrefslogtreecommitdiffstats
path: root/src/clipboard.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-04-24 12:16:55 +0200
committerBad Diode <bd@badd10de.dev>2023-04-24 12:16:55 +0200
commitc7c789096ec6aa31ed98396fd066f1b39dfa8e01 (patch)
tree9e10889f253959f0ad5abcb69832d9fe4fbf1948 /src/clipboard.c
parent0fa40db0a578cc2dc3952fe108a332a1e3182452 (diff)
downloadstepper-c7c789096ec6aa31ed98396fd066f1b39dfa8e01.tar.gz
stepper-c7c789096ec6aa31ed98396fd066f1b39dfa8e01.zip
Fix copy-paste behaviour when copying channels
Diffstat (limited to 'src/clipboard.c')
-rw-r--r--src/clipboard.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/clipboard.c b/src/clipboard.c
index 7491d4b..d802645 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -175,11 +175,13 @@ clipboard_paste(void) {
175 case 0: { 175 case 0: {
176 for (size_t i = 0; i < 16; i++) { 176 for (size_t i = 0; i < 16; i++) {
177 pat_dst->ch1.notes[i] = pat_src->ch1.notes[i]; 177 pat_dst->ch1.notes[i] = pat_src->ch1.notes[i];
178 pat_dst->ch1.params[i] = pat_src->ch1.params[i];
178 } 179 }
179 } break; 180 } break;
180 case 1: { 181 case 1: {
181 for (size_t i = 0; i < 16; i++) { 182 for (size_t i = 0; i < 16; i++) {
182 pat_dst->ch2.notes[i] = pat_src->ch1.notes[i]; 183 pat_dst->ch2.notes[i] = pat_src->ch1.notes[i];
184 pat_dst->ch2.params[i] = pat_src->ch1.params[i];
183 } 185 }
184 } break; 186 } break;
185 case 2: { 187 case 2: {
@@ -199,11 +201,16 @@ clipboard_paste(void) {
199 case 0: { 201 case 0: {
200 for (size_t i = 0; i < 16; i++) { 202 for (size_t i = 0; i < 16; i++) {
201 pat_dst->ch1.notes[i] = pat_src->ch2.notes[i]; 203 pat_dst->ch1.notes[i] = pat_src->ch2.notes[i];
204 pat_dst->ch1.params[i].env_volume = pat_src->ch2.params[i].env_volume;
205 pat_dst->ch1.params[i].env_time = pat_src->ch2.params[i].env_time;
206 pat_dst->ch1.params[i].env_direction = pat_src->ch2.params[i].env_direction;
207 pat_dst->ch1.params[i].duty_cycle = pat_src->ch2.params[i].duty_cycle;
202 } 208 }
203 } break; 209 } break;
204 case 1: { 210 case 1: {
205 for (size_t i = 0; i < 16; i++) { 211 for (size_t i = 0; i < 16; i++) {
206 pat_dst->ch2.notes[i] = pat_src->ch2.notes[i]; 212 pat_dst->ch2.notes[i] = pat_src->ch2.notes[i];
213 pat_dst->ch2.params[i] = pat_src->ch2.params[i];
207 } 214 }
208 } break; 215 } break;
209 case 2: { 216 case 2: {
@@ -233,6 +240,7 @@ clipboard_paste(void) {
233 case 2: { 240 case 2: {
234 for (size_t i = 0; i < 16; i++) { 241 for (size_t i = 0; i < 16; i++) {
235 pat_dst->ch3.notes[i] = pat_src->ch3.notes[i]; 242 pat_dst->ch3.notes[i] = pat_src->ch3.notes[i];
243 pat_dst->ch3.params[i] = pat_src->ch3.params[i];
236 } 244 }
237 } break; 245 } break;
238 case 3: { 246 case 3: {
@@ -262,6 +270,7 @@ clipboard_paste(void) {
262 case 3: { 270 case 3: {
263 for (size_t i = 0; i < 16; i++) { 271 for (size_t i = 0; i < 16; i++) {
264 pat_dst->ch4.notes[i] = pat_src->ch4.notes[i]; 272 pat_dst->ch4.notes[i] = pat_src->ch4.notes[i];
273 pat_dst->ch4.params[i] = pat_src->ch4.params[i];
265 } 274 }
266 } break; 275 } break;
267 } 276 }