/[svn]/linuxsampler/trunk/src/scriptvm/ScriptVM.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/scriptvm/ScriptVM.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2965 by schoenebeck, Mon Jul 18 09:42:28 2016 UTC revision 3076 by schoenebeck, Thu Jan 5 18:00:52 2017 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (c) 2014-2016 Christian Schoenebeck   * Copyright (c) 2014-2017 Christian Schoenebeck
3   *   *
4   * http://www.linuxsampler.org   * http://www.linuxsampler.org
5   *   *
# Line 230  namespace LinuxSampler { Line 230  namespace LinuxSampler {
230           */           */
231          std::map<String,VMDynVar*> builtInDynamicVariables() OVERRIDE;          std::map<String,VMDynVar*> builtInDynamicVariables() OVERRIDE;
232    
233            /**
234             * Enables or disables automatic suspension of scripts by the VM.
235             * If automatic suspension is enabled then scripts are monitored
236             * regarding their execution time and in case they are execution
237             * for too long, then they are automatically suspended by the VM for
238             * a certain amount of time in order to avoid any RT instablity
239             * issues caused by bugs in the script, i.e. endless while() loops
240             * or very large scripts.
241             *
242             * Automatic suspension is enabled by default due to the aimed
243             * real-time context of this virtual machine.
244             *
245             * @param b - true: enable auto suspension [default],
246             *            false: disable auto suspension
247             */
248            void setAutoSuspendEnabled(bool b = true);
249    
250            /**
251             * Returns true in case automatic suspension of scripts by the VM is
252             * enabled. See setAutoSuspendEnabled() for details.
253             *
254             * Automatic suspension is enabled by default due to the aimed
255             * real-time context of this virtual machine.
256             */
257            bool isAutoSuspendEnabled() const;
258    
259          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)
260          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)
261          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)
# Line 237  namespace LinuxSampler { Line 263  namespace LinuxSampler {
263      protected:      protected:
264          VMEventHandler* m_eventHandler;          VMEventHandler* m_eventHandler;
265          ParserContext* m_parserContext;          ParserContext* m_parserContext;
266            bool m_autoSuspend;
267          class CoreVMFunction_message* m_fnMessage;          class CoreVMFunction_message* m_fnMessage;
268          class CoreVMFunction_exit* m_fnExit;          class CoreVMFunction_exit* m_fnExit;
269          class CoreVMFunction_wait* m_fnWait;          class CoreVMFunction_wait* m_fnWait;
# Line 245  namespace LinuxSampler { Line 272  namespace LinuxSampler {
272          class CoreVMFunction_num_elements* m_fnNumElements;          class CoreVMFunction_num_elements* m_fnNumElements;
273          class CoreVMFunction_inc* m_fnInc;          class CoreVMFunction_inc* m_fnInc;
274          class CoreVMFunction_dec* m_fnDec;          class CoreVMFunction_dec* m_fnDec;
275            class CoreVMFunction_in_range* m_fnInRange;
276          class CoreVMFunction_sh_left* m_fnShLeft;          class CoreVMFunction_sh_left* m_fnShLeft;
277          class CoreVMFunction_sh_right* m_fnShRight;          class CoreVMFunction_sh_right* m_fnShRight;
278            class CoreVMFunction_min* m_fnMin;
279            class CoreVMFunction_max* m_fnMax;
280          class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer;          class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer;
281          class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer;          class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer;
282      };      };

Legend:
Removed from v.2965  
changed lines
  Added in v.3076

  ViewVC Help
Powered by ViewVC