summaryrefslogtreecommitdiffhomepage
path: root/logic/state.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/state.hpp')
-rw-r--r--logic/state.hpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/logic/state.hpp b/logic/state.hpp
index f5892557..7fc06a5c 100644
--- a/logic/state.hpp
+++ b/logic/state.hpp
@@ -9,22 +9,31 @@
#pragma once
#include "options/options.hpp"
-using namespace options;
#include "api/plugin-support.hpp"
#include "main-settings.hpp"
#include "mappings.hpp"
#include "work.hpp"
-#include <vector>
+#include "export.hpp"
+
+#include <memory>
#include <QString>
-struct State
+struct OTR_LOGIC_EXPORT State
{
- State(const QString& library_path) :
- modules(library_path),
- pose(std::vector<axis_opts*>{&s.a_x, &s.a_y, &s.a_z, &s.a_yaw, &s.a_pitch, &s.a_roll})
- {}
+ using dylib_ptr = Modules::dylib_ptr;
+ using dylib_list = Modules::dylib_list;
+
+ explicit State(const QString& library_path);
+ static std::tuple<dylib_ptr, int> module_by_name(const QString& name, dylib_list& list);
+
+ dylib_ptr current_tracker();
+ dylib_ptr current_protocol();
+ dylib_ptr current_filter();
+
Modules modules;
main_settings s;
+ module_settings m;
Mappings pose;
- mem<Work> work;
+ std::shared_ptr<Work> work;
+ QString library_path;
};