Fix parameter loading for three main possible inputs
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user