GVARS at 4096 instead of 512 (Companion conversions)

This commit is contained in:
bsongis
2014-03-26 10:01:55 +01:00
parent e0b0bbb517
commit 5e32b1f9ba
2 changed files with 34 additions and 23 deletions
+20 -16
View File
@@ -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);
}
+14 -7
View File
@@ -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;