summaryrefslogtreecommitdiffhomepage
path: root/logic/selected-libraries.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/selected-libraries.hpp')
-rw-r--r--logic/selected-libraries.hpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/logic/selected-libraries.hpp b/logic/selected-libraries.hpp
index 65e9733e..041c77e5 100644
--- a/logic/selected-libraries.hpp
+++ b/logic/selected-libraries.hpp
@@ -9,11 +9,29 @@
#pragma once
#include "api/plugin-support.hpp"
+#include "export.hpp"
+
+#include <array>
+#include <functional>
+
#include <QFrame>
-#include "export.hpp"
+// XXX todo remove camel case in identifier
+
+struct runtime_event_handler
+{
+ using ext_event_ordinal = IExtension::event_ordinal;
+ using ext = std::shared_ptr<IExtension>;
+
+ enum : unsigned { ext_max_events = 64 };
+ using ext_list = std::array<ext, ext_max_events>;
+
+ std::array<ext_list, ext_event_ordinal::event_count> extension_events;
+
+ void run_events(ext_event_ordinal k, Pose& pose);
+};
-struct OTR_LOGIC_EXPORT SelectedLibraries
+struct OTR_LOGIC_EXPORT SelectedLibraries : runtime_event_handler
{
using dylibptr = std::shared_ptr<dylib>;