Skip to content

Commit

Permalink
Improve the coverage of int typeins (#57)
Browse files Browse the repository at this point in the history
Still not all the way there, but lots better
  • Loading branch information
baconpaul authored Apr 30, 2024
1 parent cc3e7c2 commit a2718fc
Show file tree
Hide file tree
Showing 14 changed files with 58 additions and 6 deletions.
36 changes: 30 additions & 6 deletions scripts/import.pl
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
my $param = $1;
my $formatter = $2;
my $ok = 0;
my $isSwitch = 0;

# Chris is insanely regular with his transformations here
# Easy case - just a float2string
Expand All @@ -138,11 +139,13 @@
$pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = value / (${scaling}); } return b; break; }\n"
}
# Scaled offsetfloat to string p * scale - off
elsif ($formatter =~ m/float2string\s*\(\s*\(?\s*\(\s*${param}\s*\*\s*([\d\.]+)\s*\)\s*-\s*([\d\.]+)\s*\)?\s*,[^;]+;\s*$/)
elsif ($formatter =~ m/float2string\s*\(\s*\(?\s*\(\s*${param}\s*\*\s*([\d\.]+)\s*\)\s*([\+-])\s*([\d\.]+)\s*\)?\s*,[^;]+;\s*$/)
{
my $scaling = $1;
my $offset = $2;
$pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = (value + ${offset}) / (${scaling}); } return b; break; }\n";
my $pm = $2;
my $offset = $3;
if ($pm =~ m/\+/) { $pm = "-";} else { $pm = "+" };
$pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = (value $pm ${offset}) / (${scaling}); } return b; break; }\n";
$ok = 1;
}
# Lazy - offset positive
Expand Down Expand Up @@ -213,12 +216,25 @@
elsif ($formatter =~ m/switch/)
{
# We know we can't do these
$isSwitch = 1;
$ok = 0;
}
elsif ($formatter =~ m/switch/)
elsif ($formatter =~ m/int2string\s*\((\(VstInt32\)|\(int\))?\s*(floor)?\((.*)\),/)
{
# We know we can't do these
$ok = 0;
my $body = $3;
$body =~ s/drive/$param/;

if ($body =~ m/^\s*${param}\s*\*\s*([\d\.]+)\s*$/)
{
my $scl = $1;
$pttv .= " case kParam${param}: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / ${scl}; } return b; break; }\n";
$ok = 1;
}
else
{
print " INT BODY: " . $f . "::" . $param . " / " . $body . "\n";
$ok = 0;
}
}
else
{
Expand All @@ -230,6 +246,14 @@
{
$ccpt .= " case kParam${param}: return true;\n"
}
elsif ($isSwitch)
{
# supress this warning
}
elsif ($formatter =~ m/int2string/)
{
print " INT UNDONE: " . $f . "::" . $param . " / " . $formatter . "\n";
}
else
{
print " UNINVERTED: " . $f . "::" . $param . " / " . $formatter . "\n";
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Balanced.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,14 @@ bool Balanced::getVendorString(char* text) {
}
bool Balanced::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 8; } return b; break; }

}
return false;
}
bool Balanced::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;

}
return false;
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,14 @@ bool Channel4::getVendorString(char* text) {
}
bool Channel4::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 100; } return b; break; }

}
return false;
}
bool Channel4::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;

}
return false;
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,15 @@ bool Channel5::getVendorString(char* text) {
}
bool Channel5::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 100; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool Channel5::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;
case kParamC: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel6.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,15 @@ bool Channel6::getVendorString(char* text) {
}
bool Channel6::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 100; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool Channel6::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;
case kParamC: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel7.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,13 +138,15 @@ bool Channel7::getVendorString(char* text) {
}
bool Channel7::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 200; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool Channel7::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;
case kParamC: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel8.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,13 +137,15 @@ bool Channel8::getVendorString(char* text) {
}
bool Channel8::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 200; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool Channel8::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;
case kParamC: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Channel9.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,13 +139,15 @@ bool Channel9::getVendorString(char* text) {
}
bool Channel9::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 200; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool Channel9::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamB: return true;
case kParamC: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/ClearCoat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,15 @@ bool ClearCoat::getVendorString(char* text) {
}
bool ClearCoat::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 16.999; } return b; break; }
case kParamB: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool ClearCoat::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;
case kParamB: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/CloudCoat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ bool CloudCoat::getVendorString(char* text) {
}
bool CloudCoat::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 16.999; } return b; break; }
case kParamB: { auto b = string2float(text, value); return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }

Expand All @@ -231,6 +232,7 @@ bool CloudCoat::parameterTextToValue(VstInt32 index, const char *text, float &va
}
bool CloudCoat::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;
case kParamB: return true;
case kParamC: return true;

Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/DitherFloat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,15 @@ bool DitherFloat::getVendorString(char* text) {
}
bool DitherFloat::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 32; } return b; break; }
case kParamB: { auto b = string2float(text, value); return b; break; }

}
return false;
}
bool DitherFloat::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;
case kParamB: return true;

}
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/Fracture2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ bool Fracture2::getVendorString(char* text) {
bool Fracture2::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); return b; break; }
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 8.0; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }
case kParamD: { auto b = string2float(text, value); return b; break; }
case kParamE: { auto b = string2float(text, value); return b; break; }
Expand All @@ -138,6 +139,7 @@ bool Fracture2::parameterTextToValue(VstInt32 index, const char *text, float &va
bool Fracture2::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;
case kParamB: return true;
case kParamC: return true;
case kParamD: return true;
case kParamE: return true;
Expand Down
2 changes: 2 additions & 0 deletions src/autogen_airwin/NodeDither.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,14 @@ bool NodeDither::getVendorString(char* text) {
}
bool NodeDither::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 100; } return b; break; }

}
return false;
}
bool NodeDither::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;

}
return false;
Expand Down
4 changes: 4 additions & 0 deletions src/autogen_airwin/SampleDelay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ bool SampleDelay::getVendorString(char* text) {
}
bool SampleDelay::parameterTextToValue(VstInt32 index, const char *text, float &value) {
switch(index) {
case kParamA: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 100.0; } return b; break; }
case kParamB: { auto b = string2float(text, value); if (b) { value = (value + 0.1) / 10.0; } return b; break; }
case kParamC: { auto b = string2float(text, value); return b; break; }
case kParamD: { auto b = string2float(text, value); if (b) { value = (value + 1.0) / (2.0); } return b; break; }

Expand All @@ -129,6 +131,8 @@ bool SampleDelay::parameterTextToValue(VstInt32 index, const char *text, float &
}
bool SampleDelay::canConvertParameterTextToValue(VstInt32 index) {
switch(index) {
case kParamA: return true;
case kParamB: return true;
case kParamC: return true;
case kParamD: return true;

Expand Down

0 comments on commit a2718fc

Please sign in to comment.