644 |
struct VMInt8Array { |
struct VMInt8Array { |
645 |
int8_t* data; |
int8_t* data; |
646 |
int size; |
int size; |
647 |
|
bool readonly; ///< Whether the array data may be modified or just be read. |
648 |
|
|
649 |
VMInt8Array() : data(NULL), size(0) {} |
VMInt8Array() : data(NULL), size(0), readonly(false) {} |
650 |
}; |
}; |
651 |
|
|
652 |
/** @brief Virtual machine script variable. |
/** @brief Virtual machine script variable. |
851 |
* @see ScriptVM::exec() |
* @see ScriptVM::exec() |
852 |
*/ |
*/ |
853 |
virtual int suspensionTimeMicroseconds() const = 0; |
virtual int suspensionTimeMicroseconds() const = 0; |
854 |
|
|
855 |
|
/** |
856 |
|
* Causes all polyphonic variables to be reset to zero values. A |
857 |
|
* polyphonic variable is expected to be zero when entering a new event |
858 |
|
* handler instance. As an exception the values of polyphonic variables |
859 |
|
* shall only be preserved from an note event handler instance to its |
860 |
|
* correspending specific release handler instance. So in the latter |
861 |
|
* case the script author may pass custom data from the note handler to |
862 |
|
* the release handler, but only for the same specific note! |
863 |
|
*/ |
864 |
|
virtual void resetPolyphonicData() = 0; |
865 |
|
|
866 |
|
/** |
867 |
|
* Returns amount of virtual machine instructions which have been |
868 |
|
* performed the last time when this execution context was executing a |
869 |
|
* script. So in case you need the overall amount of instructions |
870 |
|
* instead, then you need to add them by yourself after each |
871 |
|
* ScriptVM::exec() call. |
872 |
|
*/ |
873 |
|
virtual size_t instructionsPerformed() const = 0; |
874 |
|
|
875 |
|
/** |
876 |
|
* Sends a signal to this script execution instance to abort its script |
877 |
|
* execution as soon as possible. This method is called i.e. when one |
878 |
|
* script execution instance intends to stop another script execution |
879 |
|
* instance. |
880 |
|
*/ |
881 |
|
virtual void signalAbort() = 0; |
882 |
}; |
}; |
883 |
|
|
884 |
/** @brief Script callback for a certain event. |
/** @brief Script callback for a certain event. |