--- linuxsampler/trunk/src/scriptvm/common.h 2017/07/15 16:24:59 3311 +++ linuxsampler/trunk/src/scriptvm/common.h 2019/08/01 10:22:56 3551 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017 Christian Schoenebeck + * Copyright (c) 2014-2019 Christian Schoenebeck * * http://www.linuxsampler.org * @@ -906,6 +906,30 @@ * then may run independently with its own polyphonic data for instance. */ virtual void forkTo(VMExecContext* ectx) const = 0; + + /** + * In case the script called the built-in exit() function and passed a + * value as argument to the exit() function, then this method returns + * the value that had been passed as argument to the exit() function. + * Otherwise if the exit() function has not been called by the script + * or no argument had been passed to the exit() function, then this + * method returns NULL instead. + * + * Currently this is only used for automated test cases against the + * script engine, which return some kind of value in the individual + * test case scripts to check their behaviour in automated way. There + * is no purpose for this mechanism in production use. Accordingly this + * exit result value is @b always completely ignored by the sampler + * engines. + * + * Officially the built-in exit() function does not expect any arguments + * to be passed to its function call, and by default this feature is + * hence disabled and will yield in a parser error unless + * ScriptVM::setExitResultEnabled() was explicitly set. + * + * @see ScriptVM::setExitResultEnabled() + */ + virtual VMExpr* exitResult() = 0; }; /** @brief Script callback for a certain event.