345 |
printf("ConstIntVariable val=%d\n", value); |
printf("ConstIntVariable val=%d\n", value); |
346 |
} |
} |
347 |
|
|
348 |
|
BuiltInIntVariable::BuiltInIntVariable(const String& name, VMIntRelPtr* ptr) |
349 |
|
: IntVariable(NULL,false,false), name(name), ptr(ptr) |
350 |
|
{ |
351 |
|
} |
352 |
|
|
353 |
|
void BuiltInIntVariable::assign(Expression* expr) { |
354 |
|
IntExpr* valueExpr = dynamic_cast<IntExpr*>(expr); |
355 |
|
if (!valueExpr) return; |
356 |
|
ptr->assign(valueExpr->evalInt()); |
357 |
|
} |
358 |
|
|
359 |
|
int BuiltInIntVariable::evalInt() { |
360 |
|
return ptr->evalInt(); |
361 |
|
} |
362 |
|
|
363 |
|
void BuiltInIntVariable::dump(int level) { |
364 |
|
printIndents(level); |
365 |
|
printf("Built-in IntVar '%s'\n", name.c_str()); |
366 |
|
} |
367 |
|
|
368 |
PolyphonicIntVariable::PolyphonicIntVariable(ParserContext* ctx) |
PolyphonicIntVariable::PolyphonicIntVariable(ParserContext* ctx) |
369 |
: IntVariable(ctx,true,false) |
: IntVariable(ctx,true,false) |
370 |
{ |
{ |
392 |
} |
} |
393 |
} |
} |
394 |
|
|
395 |
|
IntArrayVariable::IntArrayVariable(ParserContext* ctx, bool bConst) |
396 |
|
: Variable(ctx, 0, bConst) |
397 |
|
{ |
398 |
|
} |
399 |
|
|
400 |
int IntArrayVariable::evalIntElement(uint i) { |
int IntArrayVariable::evalIntElement(uint i) { |
401 |
if (i >= values.size()) return 0; |
if (i >= values.size()) return 0; |
402 |
return values[i]; |
return values[i]; |
421 |
printf(")\n"); |
printf(")\n"); |
422 |
} |
} |
423 |
|
|
424 |
|
BuiltInIntArrayVariable::BuiltInIntArrayVariable(const String& name, VMInt8Array* array) |
425 |
|
: IntArrayVariable(NULL, false), name(name), array(array) |
426 |
|
{ |
427 |
|
} |
428 |
|
|
429 |
|
int BuiltInIntArrayVariable::evalIntElement(uint i) { |
430 |
|
return i >= array->size ? 0 : array->data[i]; |
431 |
|
} |
432 |
|
|
433 |
|
void BuiltInIntArrayVariable::assignIntElement(uint i, int value) { |
434 |
|
if (i >= array->size) return; |
435 |
|
array->data[i] = value; |
436 |
|
} |
437 |
|
|
438 |
|
void BuiltInIntArrayVariable::dump(int level) { |
439 |
|
printIndents(level); |
440 |
|
printf("Built-In Int Array Variable '%s'\n", name.c_str()); |
441 |
|
} |
442 |
|
|
443 |
IntArrayElement::IntArrayElement(IntArrayVariableRef array, IntExprRef arrayIndex) |
IntArrayElement::IntArrayElement(IntArrayVariableRef array, IntExprRef arrayIndex) |
444 |
: IntVariable(NULL, false, false, 0), array(array), index(arrayIndex) |
: IntVariable(NULL, false, false, 0), array(array), index(arrayIndex) |
445 |
{ |
{ |
845 |
return handlers->eventHandlerByName(name); |
return handlers->eventHandlerByName(name); |
846 |
} |
} |
847 |
|
|
848 |
|
void ParserContext::registerBuiltInConstIntVariables(const std::map<String,int>& vars) { |
849 |
|
for (std::map<String,int>::const_iterator it = vars.begin(); |
850 |
|
it != vars.end(); ++it) |
851 |
|
{ |
852 |
|
ConstIntVariableRef ref = new ConstIntVariable(it->second); |
853 |
|
vartable[it->first] = ref; |
854 |
|
} |
855 |
|
} |
856 |
|
|
857 |
|
void ParserContext::registerBuiltInIntVariables(const std::map<String,VMIntRelPtr*>& vars) { |
858 |
|
for (std::map<String,VMIntRelPtr*>::const_iterator it = vars.begin(); |
859 |
|
it != vars.end(); ++it) |
860 |
|
{ |
861 |
|
BuiltInIntVariableRef ref = new BuiltInIntVariable(it->first, it->second); |
862 |
|
vartable[it->first] = ref; |
863 |
|
} |
864 |
|
} |
865 |
|
|
866 |
|
void ParserContext::registerBuiltInIntArrayVariables(const std::map<String,VMInt8Array*>& vars) { |
867 |
|
for (std::map<String,VMInt8Array*>::const_iterator it = vars.begin(); |
868 |
|
it != vars.end(); ++it) |
869 |
|
{ |
870 |
|
BuiltInIntArrayVariableRef ref = new BuiltInIntArrayVariable(it->first, it->second); |
871 |
|
vartable[it->first] = ref; |
872 |
|
} |
873 |
|
} |
874 |
|
|
875 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |