summaryrefslogtreecommitdiffstats
path: root/src/server/Event.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-09-18 21:29:30 -0400
committerDavid Robillard <d@drobilla.net>2016-09-29 16:04:19 -0400
commita7f83c70733288ee9efee5c08330fbdf638446db (patch)
tree33c1d507d39a2a642f20498a52eb0c5225cfde43 /src/server/Event.hpp
parentb40326d759a9b4b2db7eb930f9a32403d4a9227f (diff)
downloadingen-a7f83c70733288ee9efee5c08330fbdf638446db.tar.gz
ingen-a7f83c70733288ee9efee5c08330fbdf638446db.tar.bz2
ingen-a7f83c70733288ee9efee5c08330fbdf638446db.zip
Atomic bundle execution
Diffstat (limited to 'src/server/Event.hpp')
-rw-r--r--src/server/Event.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/Event.hpp b/src/server/Event.hpp
index 11bffeb3..8ed25c0f 100644
--- a/src/server/Event.hpp
+++ b/src/server/Event.hpp
@@ -56,6 +56,9 @@ public:
/** Event mode to distinguish normal events from undo events. */
enum class Mode { NORMAL, UNDO, REDO };
+ /** Execution mode for events that block and unblock preprocessing. */
+ enum class Execution { NORMAL, BLOCK, UNBLOCK };
+
/** Pre-process event before execution (non-realtime). */
virtual bool pre_process() = 0;
@@ -86,6 +89,9 @@ public:
/** Return the status (success or error code) of this event. */
Status status() const { return _status; }
+ /** Return the blocking behaviour of this event (after pre_process()) */
+ virtual Execution get_execution() const { return Execution::NORMAL; }
+
/** Return undo mode of this event. */
Mode get_mode() const { return _mode; }