GVARS at 4096 instead of 512 (Companion conversions)
This commit is contained in:
@@ -730,32 +730,36 @@ void concatGvarParam(int & gvar, const int _gvar, const unsigned int _gvarParam,
|
||||
}
|
||||
}
|
||||
|
||||
void exportGvarParam(const int gvar, int & _gvar)
|
||||
void exportGvarParam(const int gvar, int & _gvar, int version)
|
||||
{
|
||||
int GV1 = (version >= 216 ? 4096 : 512);
|
||||
|
||||
if (gvar < -10000) {
|
||||
_gvar = 512 + gvar + 10000;
|
||||
_gvar = GV1 + gvar + 10000;
|
||||
}
|
||||
else if (gvar > 10000) {
|
||||
_gvar = 512 + gvar - 10001;
|
||||
_gvar = GV1 + gvar - 10001;
|
||||
}
|
||||
else {
|
||||
_gvar = gvar;
|
||||
}
|
||||
}
|
||||
|
||||
void importGvarParam(int & gvar, const int _gvar)
|
||||
void importGvarParam(int & gvar, const int _gvar, int version)
|
||||
{
|
||||
if (_gvar >= 512) {
|
||||
gvar = 10001 + _gvar - 512;
|
||||
int GV1 = (version >= 216 ? 4096 : 512);
|
||||
|
||||
if (_gvar >= GV1) {
|
||||
gvar = 10001 + _gvar - GV1;
|
||||
}
|
||||
else if (_gvar >= 512-5) {
|
||||
gvar = -10000 + _gvar - 512;
|
||||
else if (_gvar >= GV1-9) {
|
||||
gvar = -10000 + _gvar - GV1;
|
||||
}
|
||||
else if (_gvar < -512) {
|
||||
gvar = -10000 + _gvar + 513;
|
||||
else if (_gvar < -GV1) {
|
||||
gvar = -10000 + _gvar + GV1 + 1;
|
||||
}
|
||||
else if (_gvar < -512+5) {
|
||||
gvar = 10000 + _gvar + 513;
|
||||
else if (_gvar < -GV1+9) {
|
||||
gvar = 10000 + _gvar + GV1 + 1;
|
||||
}
|
||||
else {
|
||||
gvar = _gvar;
|
||||
@@ -898,9 +902,9 @@ class MixField: public TransformedField {
|
||||
}
|
||||
|
||||
if (IS_ARM(board)) {
|
||||
exportGvarParam(mix.weight, _weight);
|
||||
exportGvarParam(mix.weight, _weight, version);
|
||||
if (version >= 214)
|
||||
exportGvarParam(mix.sOffset, _offset);
|
||||
exportGvarParam(mix.sOffset, _offset, version);
|
||||
else
|
||||
splitGvarParam(mix.sOffset, _offset, _offsetMode, board, version);
|
||||
}
|
||||
@@ -933,9 +937,9 @@ class MixField: public TransformedField {
|
||||
}
|
||||
|
||||
if (IS_ARM(board)) {
|
||||
importGvarParam(mix.weight, _weight);
|
||||
importGvarParam(mix.weight, _weight, version);
|
||||
if (version >= 214)
|
||||
importGvarParam(mix.sOffset, _offset);
|
||||
importGvarParam(mix.sOffset, _offset, version);
|
||||
else
|
||||
concatGvarParam(mix.sOffset, _offset, _offsetMode, board, version);
|
||||
}
|
||||
|
||||
@@ -384,6 +384,16 @@ int ConvertSwitch_215_to_216(int swtch)
|
||||
}
|
||||
#endif
|
||||
|
||||
int16_t ConvertGVAR_215_to_216(int16_t var)
|
||||
{
|
||||
if (var <= -508)
|
||||
return var + 512 - 4096;
|
||||
else if (var >= 507)
|
||||
return var - 512 + 4096;
|
||||
else
|
||||
return var;
|
||||
}
|
||||
|
||||
void ConvertModel_215_to_216(ModelData &model)
|
||||
{
|
||||
// Virtual inputs added instead of Expo/DR
|
||||
@@ -440,7 +450,7 @@ void ConvertModel_215_to_216(ModelData &model)
|
||||
mix.destCh = oldModel.mixData[i].destCh;
|
||||
mix.phases = oldModel.mixData[i].phases;
|
||||
mix.mltpx = oldModel.mixData[i].mltpx;
|
||||
mix.weight = oldModel.mixData[i].weight;
|
||||
mix.weight = ConvertGVAR_215_to_216(oldModel.mixData[i].weight);
|
||||
mix.swtch = ConvertSwitch_215_to_216(oldModel.mixData[i].swtch);
|
||||
if (oldModel.mixData[i].curveMode==0/*differential*/) {
|
||||
mix.curve.type = CURVE_REF_DIFF;
|
||||
@@ -462,17 +472,14 @@ void ConvertModel_215_to_216(ModelData &model)
|
||||
mix.srcRaw = oldModel.mixData[i].srcRaw;
|
||||
if (mix.srcRaw > 4 || oldModel.mixData[i].noExpo)
|
||||
mix.srcRaw = ConvertSource_215_to_216(mix.srcRaw);
|
||||
mix.offset = oldModel.mixData[i].offset;
|
||||
mix.offset = ConvertGVAR_215_to_216(oldModel.mixData[i].offset);
|
||||
memcpy(mix.name, oldModel.mixData[i].name, LEN_EXPOMIX_NAME);
|
||||
#else
|
||||
memcpy(&mix, &oldModel.mixData[i], sizeof(mix));
|
||||
#endif
|
||||
if (mix.weight <= -508)
|
||||
mix.weight = mix.weight + 512 - 4096;
|
||||
else if (mix.weight >= 507)
|
||||
mix.weight = mix.weight - 512 + 4096;
|
||||
else
|
||||
if (!GV_IS_GV_VALUE(mix.weight, 500, 500) && !GV_IS_GV_VALUE(mix.offset, 500, 500)) {
|
||||
mix.offset = ((mix.offset * mix.weight) + 50) / 100;
|
||||
}
|
||||
}
|
||||
for (uint8_t i=0; i<32; i++) {
|
||||
g_model.limitData[i].min = 10 * oldModel.limitData[i].min;
|
||||
|
||||
Reference in New Issue
Block a user