/[svn]/linuxsampler/trunk/src/engines/common/InstrumentScriptVM.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/common/InstrumentScriptVM.cpp

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

revision 2595 by schoenebeck, Thu Jun 5 12:14:53 2014 UTC revision 2596 by schoenebeck, Thu Jun 5 19:39:12 2014 UTC
# Line 19  namespace LinuxSampler { Line 19  namespace LinuxSampler {
19      // "invalid use of non-static data member 'LinuxSampler::AbstractEngineChannel::ControllerTable'"      // "invalid use of non-static data member 'LinuxSampler::AbstractEngineChannel::ControllerTable'"
20      #define _MEMBER_SIZEOF(T_Class, Member) sizeof(((T_Class*)NULL)->Member)      #define _MEMBER_SIZEOF(T_Class, Member) sizeof(((T_Class*)NULL)->Member)
21    
22      InstrumentScriptVM::InstrumentScriptVM() : m_event(NULL) {      InstrumentScriptVM::InstrumentScriptVM() :
23            m_event(NULL), m_fnPlayNote(this)
24        {
25          m_CC.size = _MEMBER_SIZEOF(AbstractEngineChannel, ControllerTable);          m_CC.size = _MEMBER_SIZEOF(AbstractEngineChannel, ControllerTable);
26          m_CC_NUM = DECLARE_VMINT(m_cause, class Event, Param.CC.Controller);          m_CC_NUM = DECLARE_VMINT(m_cause, class Event, Param.CC.Controller);
27          m_EVENT_NOTE = DECLARE_VMINT(m_cause, class Event, Param.Note.Key);          m_EVENT_NOTE = DECLARE_VMINT(m_cause, class Event, Param.Note.Key);
# Line 57  namespace LinuxSampler { Line 59  namespace LinuxSampler {
59    
60          // run the script handler(s)          // run the script handler(s)
61          VMExecStatus_t res = VM_EXEC_NOT_RUNNING;          VMExecStatus_t res = VM_EXEC_NOT_RUNNING;
62          while (event->handlers[event->currentHandler]) {          for ( ; event->handlers[event->currentHandler]; event->currentHandler++) {
63              res = ScriptVM::exec(              res = ScriptVM::exec(
64                  parserCtx, event->execCtx, event->handlers[event->currentHandler++]                  parserCtx, event->execCtx, event->handlers[event->currentHandler]
65              );              );
66              event->executionSlices++;              event->executionSlices++;
67              if (res & VM_EXEC_SUSPENDED || res & VM_EXEC_ERROR) return res;              if (res & VM_EXEC_SUSPENDED || res & VM_EXEC_ERROR) return res;
# Line 103  namespace LinuxSampler { Line 105  namespace LinuxSampler {
105          return m;          return m;
106      }      }
107    
108        VMFunction* InstrumentScriptVM::functionByName(const String& name) {
109            // built-in script functions of this class
110            if (name == "play_note") return &m_fnPlayNote;
111    
112            // built-in script functions of derived VM class
113            return ScriptVM::functionByName(name);
114        }
115    
116  } // namespace LinuxSampler  } // namespace LinuxSampler

Legend:
Removed from v.2595  
changed lines
  Added in v.2596

  ViewVC Help
Powered by ViewVC