/[svn]/linuxsampler/trunk/src/engines/common/InstrumentScriptVMFunctions.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/common/InstrumentScriptVMFunctions.h

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

revision 2596 by schoenebeck, Thu Jun 5 19:39:12 2014 UTC revision 2630 by schoenebeck, Fri Jun 13 15:01:06 2014 UTC
# Line 15  Line 15 
15    
16  namespace LinuxSampler {  namespace LinuxSampler {
17    
18        class EventGroup;
19      class InstrumentScriptVM;      class InstrumentScriptVM;
20    
21      class InstrumentScriptVMFunction_play_note : public VMEmptyResultFunction {      class InstrumentScriptVMFunction_play_note : public VMIntResultFunction {
22      public:      public:
23          InstrumentScriptVMFunction_play_note(InstrumentScriptVM* parent);          InstrumentScriptVMFunction_play_note(InstrumentScriptVM* parent);
24          int minRequiredArgs() const { return 1; }          int minRequiredArgs() const { return 1; }
# Line 29  namespace LinuxSampler { Line 30  namespace LinuxSampler {
30          InstrumentScriptVM* m_vm;          InstrumentScriptVM* m_vm;
31      };      };
32    
33        class InstrumentScriptVMFunction_set_controller : public VMIntResultFunction {
34        public:
35            InstrumentScriptVMFunction_set_controller(InstrumentScriptVM* parent);
36            int minRequiredArgs() const { return 2; }
37            int maxAllowedArgs() const { return 2; }
38            bool acceptsArgType(int iArg, ExprType_t type) const { return type == INT_EXPR;}
39            ExprType_t argType(int iArg) const { return INT_EXPR; }
40            VMFnResult* exec(VMFnArgs* args);
41        protected:
42            InstrumentScriptVM* m_vm;
43        };
44    
45        class InstrumentScriptVMFunction_ignore_event : public VMEmptyResultFunction {
46        public:
47            InstrumentScriptVMFunction_ignore_event(InstrumentScriptVM* parent);
48            int minRequiredArgs() const { return 1; }
49            int maxAllowedArgs() const { return 1; }
50            bool acceptsArgType(int iArg, ExprType_t type) const;
51            ExprType_t argType(int iArg) const { return INT_EXPR; }
52            VMFnResult* exec(VMFnArgs* args);
53        protected:
54            InstrumentScriptVM* m_vm;
55        };
56    
57        class InstrumentScriptVMFunction_ignore_controller : public VMEmptyResultFunction {
58        public:
59            InstrumentScriptVMFunction_ignore_controller(InstrumentScriptVM* parent);
60            int minRequiredArgs() const { return 0; }
61            int maxAllowedArgs() const { return 1; }
62            bool acceptsArgType(int iArg, ExprType_t type) const { return type == INT_EXPR;}
63            ExprType_t argType(int iArg) const { return INT_EXPR; }
64            VMFnResult* exec(VMFnArgs* args);
65        protected:
66            InstrumentScriptVM* m_vm;
67        };
68    
69        class InstrumentScriptVMFunction_note_off : public VMEmptyResultFunction {
70        public:
71            InstrumentScriptVMFunction_note_off(InstrumentScriptVM* parent);
72            int minRequiredArgs() const { return 1; }
73            int maxAllowedArgs() const { return 2; }
74            bool acceptsArgType(int iArg, ExprType_t type) const;
75            ExprType_t argType(int iArg) const { return INT_EXPR; }
76            VMFnResult* exec(VMFnArgs* args);
77        protected:
78            InstrumentScriptVM* m_vm;
79        };
80    
81        class InstrumentScriptVMFunction_set_event_mark : public VMEmptyResultFunction {
82        public:
83            InstrumentScriptVMFunction_set_event_mark(InstrumentScriptVM* parent);
84            int minRequiredArgs() const { return 2; }
85            int maxAllowedArgs() const { return 2; }
86            bool acceptsArgType(int iArg, ExprType_t type) const { return type == INT_EXPR;}
87            ExprType_t argType(int iArg) const { return INT_EXPR; }
88            VMFnResult* exec(VMFnArgs* args);
89        protected:
90            InstrumentScriptVM* m_vm;
91        };
92    
93        class InstrumentScriptVMFunction_delete_event_mark : public VMEmptyResultFunction {
94        public:
95            InstrumentScriptVMFunction_delete_event_mark(InstrumentScriptVM* parent);
96            int minRequiredArgs() const { return 2; }
97            int maxAllowedArgs() const { return 2; }
98            bool acceptsArgType(int iArg, ExprType_t type) const { return type == INT_EXPR;}
99            ExprType_t argType(int iArg) const { return INT_EXPR; }
100            VMFnResult* exec(VMFnArgs* args);
101        protected:
102            InstrumentScriptVM* m_vm;
103        };
104    
105        class InstrumentScriptVMFunction_by_marks : public VMFunction {
106        public:
107            InstrumentScriptVMFunction_by_marks(InstrumentScriptVM* parent);
108            int minRequiredArgs() const { return 1; }
109            int maxAllowedArgs() const { return 1; }
110            bool acceptsArgType(int iArg, ExprType_t type) const { return type == INT_EXPR;}
111            ExprType_t argType(int iArg) const { return INT_EXPR; }
112            ExprType_t returnType() { return INT_ARR_EXPR; }
113            VMFnResult* exec(VMFnArgs* args);
114        protected:
115            InstrumentScriptVM* m_vm;
116            class Result : public VMFnResult, public VMIntArrayExpr {
117            public:
118                StmtFlags_t flags;
119                EventGroup* eventGroup;
120    
121                int arraySize() const OVERRIDE;
122                int evalIntElement(uint i) OVERRIDE;
123                void assignIntElement(uint i, int value) OVERRIDE {} // ignore assignment
124                VMExpr* resultValue() OVERRIDE { return this; }
125                StmtFlags_t resultFlags() { return flags; }
126            } m_result;
127    
128            VMFnResult* errorResult();
129            VMFnResult* successResult(EventGroup* eventGroup);
130        };
131    
132  } // namespace LinuxSampler  } // namespace LinuxSampler
133    
134  #endif // LS_INSTRSCRIPTVMFUNCTIONS_H  #endif // LS_INSTRSCRIPTVMFUNCTIONS_H

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

  ViewVC Help
Powered by ViewVC