1 |
/* |
/* |
2 |
* Copyright (c) 2014-2017 Christian Schoenebeck |
* Copyright (c) 2014-2019 Christian Schoenebeck |
3 |
* |
* |
4 |
* http://www.linuxsampler.org |
* http://www.linuxsampler.org |
5 |
* |
* |
173 |
VMFunction* functionByName(const String& name) OVERRIDE; |
VMFunction* functionByName(const String& name) OVERRIDE; |
174 |
|
|
175 |
/** |
/** |
176 |
|
* Whether the passed built-in function is disabled and should thus be |
177 |
|
* ignored by the parser at the passed parser context (parser state |
178 |
|
* where the built-in function call occurs). |
179 |
|
* |
180 |
|
* @param fn - built-in function to be checked |
181 |
|
* @param ctx - parser context at the position where the built-in |
182 |
|
* function call is located within the script |
183 |
|
*/ |
184 |
|
bool isFunctionDisabled(VMFunction* fn, VMParserContext* ctx) OVERRIDE; |
185 |
|
|
186 |
|
/** |
187 |
* Returns all built-in integer script variables. This method returns a |
* Returns all built-in integer script variables. This method returns a |
188 |
* STL map, where the map's key is the variable name and the map's value |
* STL map, where the map's key is the variable name and the map's value |
189 |
* is the native pointer to the actual built-in variable. |
* is the native pointer to the actual built-in variable. |
191 |
* This method is re-implemented by deriving classes to add more use |
* This method is re-implemented by deriving classes to add more use |
192 |
* case specific built-in variables. |
* case specific built-in variables. |
193 |
*/ |
*/ |
194 |
std::map<String,VMIntRelPtr*> builtInIntVariables() OVERRIDE; |
std::map<String,VMIntPtr*> builtInIntVariables() OVERRIDE; |
195 |
|
|
196 |
/** |
/** |
197 |
* Returns all built-in (8 bit) integer array script variables. This |
* Returns all built-in (8 bit) integer array script variables. This |
227 |
* DECLARE_VMINT_READONLY() to define the variable for read-only |
* DECLARE_VMINT_READONLY() to define the variable for read-only |
228 |
* access by scripts. |
* access by scripts. |
229 |
*/ |
*/ |
230 |
std::map<String,int> builtInConstIntVariables() OVERRIDE; |
std::map<String,vmint> builtInConstIntVariables() OVERRIDE; |
231 |
|
|
232 |
|
/** |
233 |
|
* Returns all built-in constant real number (floating point) script |
234 |
|
* variables, which are constant and their final data is already |
235 |
|
* available at parser time and won't change during runtime. Providing |
236 |
|
* your built-in constants this way may lead to performance benefits |
237 |
|
* compared to using other ways of providing built-in variables, because |
238 |
|
* the script parser can perform optimizations when the script is |
239 |
|
* refering to such constants. |
240 |
|
* |
241 |
|
* This type of built-in variable can only be read, but not be altered |
242 |
|
* by scripts. This method returns a STL map, where the map's key is |
243 |
|
* the variable name and the map's value is the final constant data. |
244 |
|
* |
245 |
|
* This method is re-implemented by deriving classes to add more use |
246 |
|
* case specific built-in constant real numbers. |
247 |
|
*/ |
248 |
|
std::map<String,vmfloat> builtInConstRealVariables() OVERRIDE; |
249 |
|
|
250 |
/** |
/** |
251 |
* Returns all built-in dynamic variables. This method returns a STL |
* Returns all built-in dynamic variables. This method returns a STL |
285 |
*/ |
*/ |
286 |
bool isAutoSuspendEnabled() const; |
bool isAutoSuspendEnabled() const; |
287 |
|
|
288 |
|
/** |
289 |
|
* By default (i.e. in production use) the built-in exit() function |
290 |
|
* prohibits any arguments to be passed to its function by scripts. So |
291 |
|
* by default, scripts trying to pass any arguments to the built-in |
292 |
|
* exit() function will yield in a parser error. |
293 |
|
* |
294 |
|
* By calling this method the built-in exit() function will optionally |
295 |
|
* accept one argument to be passed to its function call by scripts. The |
296 |
|
* value of that function argument will become available by calling |
297 |
|
* VMExecContext::exitResult() after execution of the script. |
298 |
|
* |
299 |
|
* @see VMExecContext::exitResult() |
300 |
|
*/ |
301 |
|
void setExitResultEnabled(bool b = true); |
302 |
|
|
303 |
|
/** |
304 |
|
* Returns @c true if the built-in exit() function optionally accepts |
305 |
|
* a function argument by scripts. |
306 |
|
* |
307 |
|
* @see setExitResultEnabled() |
308 |
|
*/ |
309 |
|
bool isExitResultEnabled() const; |
310 |
|
|
311 |
VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
312 |
VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
313 |
VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
316 |
VMEventHandler* m_eventHandler; |
VMEventHandler* m_eventHandler; |
317 |
ParserContext* m_parserContext; |
ParserContext* m_parserContext; |
318 |
bool m_autoSuspend; |
bool m_autoSuspend; |
319 |
|
bool m_acceptExitRes; |
320 |
class CoreVMFunction_message* m_fnMessage; |
class CoreVMFunction_message* m_fnMessage; |
321 |
class CoreVMFunction_exit* m_fnExit; |
class CoreVMFunction_exit* m_fnExit; |
322 |
class CoreVMFunction_wait* m_fnWait; |
class CoreVMFunction_wait* m_fnWait; |
333 |
class CoreVMFunction_array_equal* m_fnArrayEqual; |
class CoreVMFunction_array_equal* m_fnArrayEqual; |
334 |
class CoreVMFunction_search* m_fnSearch; |
class CoreVMFunction_search* m_fnSearch; |
335 |
class CoreVMFunction_sort* m_fnSort; |
class CoreVMFunction_sort* m_fnSort; |
336 |
|
class CoreVMFunction_int_to_real* m_fnIntToReal; |
337 |
|
class CoreVMFunction_real_to_int* m_fnRealToInt; |
338 |
|
class CoreVMFunction_round* m_fnRound; |
339 |
|
class CoreVMFunction_ceil* m_fnCeil; |
340 |
|
class CoreVMFunction_floor* m_fnFloor; |
341 |
|
class CoreVMFunction_sqrt* m_fnSqrt; |
342 |
|
class CoreVMFunction_log* m_fnLog; |
343 |
|
class CoreVMFunction_log2* m_fnLog2; |
344 |
|
class CoreVMFunction_log10* m_fnLog10; |
345 |
|
class CoreVMFunction_exp* m_fnExp; |
346 |
|
class CoreVMFunction_pow* m_fnPow; |
347 |
|
class CoreVMFunction_sin* m_fnSin; |
348 |
|
class CoreVMFunction_cos* m_fnCos; |
349 |
|
class CoreVMFunction_tan* m_fnTan; |
350 |
|
class CoreVMFunction_asin* m_fnAsin; |
351 |
|
class CoreVMFunction_acos* m_fnAcos; |
352 |
|
class CoreVMFunction_atan* m_fnAtan; |
353 |
class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer; |
class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer; |
354 |
class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer; |
class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer; |
355 |
}; |
}; |