Fix parameter loading for three main possible inputs

This commit is contained in:
Alex Harker
2019-11-27 07:29:07 +00:00
parent d83338155b
commit 018f50f013
2 changed files with 31 additions and 5 deletions
+30 -4
View File
@@ -21,20 +21,46 @@ FLParam : UGen {
*parseTag { arg tag, val;
if (tag.isKindOf(String))
if (tag.isKindOf(Symbol))
{
var args1 = tag.ascii;
var args2 = val;
var args1 = this.parseSymbol(tag);
var args2 = this.parseValue(val);
var newArgs = Array.newClear(args1.size + args2.size + 4);
newArgs[0] = 'init';
newArgs[1] = 0;
newArgs[1] = val.isKindOf(Symbol).if(1, 0);
this.copyArray(newArgs, args2, this.copyArray(newArgs, args1, 2));
^this.new1( *newArgs );
}
}
*parseSymbol { arg str;
^str.ascii;
}
*parseItem { arg a;
var args = Array.newClear(1);
args[0] = a;
^args;
}
*parseValue { arg a;
if (a.isKindOf(Symbol))
{
^this.parseSymbol(a);
}{
if (a.isKindOf(Array))
{
^a;
}{
^this.parseItem(a);
}
}
}
}
FLObject : UGen {
+1 -1
View File
@@ -76,7 +76,7 @@ void FLParam_Ctor(FrameLib_Param_UGen* unit)
size_t pos = FLParam_String(unit, unit->mTag, 1);
if (string)
FLParam_String(unit, unit->mTag, 1);
FLParam_String(unit, unit->mSymbol, pos);
else
FLParam_Vector(unit, unit->mVector, pos);