[color] fix mix/input copy/paste

This commit is contained in:
Raphael Coeffic
2021-07-19 12:36:11 +02:00
parent 6eef71ddce
commit 69283a7d5c
2 changed files with 25 additions and 28 deletions
+12 -13
View File
@@ -56,20 +56,19 @@ void copyExpo(uint8_t source, uint8_t dest, int8_t input)
pauseMixerCalculations();
ExpoData sourceExpo;
memcpy(&sourceExpo, expoAddress(source), sizeof(ExpoData));
ExpoData * expo = expoAddress(dest);
if(input == PASTE_AFTER) {
memmove(expo+2, expo+1, (MAX_EXPOS-(source+1))*sizeof(ExpoData));
memcpy(expo+1, &sourceExpo, sizeof(ExpoData));
(expo+1)->chn = (expo)->chn;
}
else if(input == PASTE_BEFORE) {
memmove(expo+1, expo, (MAX_EXPOS-(source+1))*sizeof(ExpoData));
ExpoData *expo = expoAddress(dest);
size_t trailingExpos = MAX_EXPOS - (dest + 1);
if (input == PASTE_AFTER) {
trailingExpos--;
memmove(expo + 2, expo + 1, trailingExpos * sizeof(ExpoData));
memcpy(expo + 1, &sourceExpo, sizeof(ExpoData));
(expo + 1)->chn = (expo)->chn;
} else if (input == PASTE_BEFORE) {
memmove(expo + 1, expo, trailingExpos * sizeof(ExpoData));
memcpy(expo, &sourceExpo, sizeof(ExpoData));
expo->chn = (expo+1)->chn;
}
else {
memmove(expo+1, expo, (MAX_EXPOS-(source+1))*sizeof(ExpoData));
expo->chn = (expo + 1)->chn;
} else {
memmove(expo + 1, expo, trailingExpos * sizeof(ExpoData));
memcpy(expo, &sourceExpo, sizeof(ExpoData));
expo->chn = input;
}
+13 -15
View File
@@ -531,24 +531,22 @@ void copyMix(uint8_t source, uint8_t dest, int8_t ch)
pauseMixerCalculations();
MixData sourceMix;
memcpy(&sourceMix, mixAddress(source), sizeof(MixData));
MixData * mix = mixAddress(dest);
if(ch == PASTE_AFTER) {
memmove(mix+2, mix+1, (MAX_MIXERS-(source+1))*sizeof(MixData));
memcpy(mix+1, &sourceMix, sizeof(MixData));
(mix+1)->destCh = (mix)->destCh;
}
else if(ch == PASTE_BEFORE) {
memmove(mix+1, mix, (MAX_MIXERS-(source+1))*sizeof(MixData));
MixData *mix = mixAddress(dest);
size_t trailingMixes = MAX_MIXERS - (dest + 1);
if (ch == PASTE_AFTER) {
trailingMixes--;
memmove(mix + 2, mix + 1, trailingMixes * sizeof(MixData));
memcpy(mix + 1, &sourceMix, sizeof(MixData));
(mix + 1)->destCh = (mix)->destCh;
} else if (ch == PASTE_BEFORE) {
memmove(mix + 1, mix, trailingMixes * sizeof(MixData));
memcpy(mix, &sourceMix, sizeof(MixData));
mix->destCh = (mix+1)->destCh;
}
else {
memmove(mix+1, mix, (MAX_MIXERS-(source+1))*sizeof(MixData));
mix->destCh = (mix + 1)->destCh;
} else {
memmove(mix + 1, mix, trailingMixes * sizeof(MixData));
memcpy(mix, &sourceMix, sizeof(MixData));
mix->destCh = ch;
mix->destCh = ch;
}
//memmove(mix + 1, mix, (MAX_MIXERS - (dest + 1)) * sizeof(MixData));
resumeMixerCalculations();
storageDirty(EE_MODEL);
}