--- linuxsampler/trunk/src/scriptvm/CoreVMFunctions.cpp 2016/07/13 16:52:58 2944 +++ linuxsampler/trunk/src/scriptvm/CoreVMFunctions.cpp 2016/07/14 00:22:26 2945 @@ -142,4 +142,32 @@ return successResult( args->arg(0)->asIntArray()->arraySize() ); } +/////////////////////////////////////////////////////////////////////////// +// built-in script function: inc() + +VMFnResult* CoreVMFunction_inc::exec(VMFnArgs* args) { + VMExpr* arg = args->arg(0); + VMIntExpr* in = dynamic_cast(arg); + VMVariable* out = dynamic_cast(arg); + if (!in || !out) successResult(0); + int i = in->evalInt() + 1; + IntLiteral tmp(i); + out->assignExpr(&tmp); + return successResult(i); +} + +/////////////////////////////////////////////////////////////////////////// +// built-in script function: dec() + +VMFnResult* CoreVMFunction_dec::exec(VMFnArgs* args) { + VMExpr* arg = args->arg(0); + VMIntExpr* in = dynamic_cast(arg); + VMVariable* out = dynamic_cast(arg); + if (!in || !out) successResult(0); + int i = in->evalInt() - 1; + IntLiteral tmp(i); + out->assignExpr(&tmp); + return successResult(i); +} + } // namespace LinuxSampler