| 122 | * used to manage state between opcode instances. |
| 123 | */ |
| 124 | template<typename T> T *QueryGlobalPointer(CSOUND *csound, const char *name, T*& pointer) |
| 125 | { |
| 126 | T **pointer_to_pointer = static_cast<T **>(csound->QueryGlobalVariableNoCheck(csound, name)); |
| 127 | if (pointer_to_pointer != 0) { |
| 128 | pointer = *pointer_to_pointer; |
| 129 | } else { |
| 130 | pointer = 0; |
| 131 | } |
| 132 | return pointer; |
| 133 | } |
| 134 | |
| 135 | template<typename T> |
| 136 | class OpcodeBase |