summaryrefslogtreecommitdiffhomepage
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/lang/de_DE.ts11
-rw-r--r--api/lang/zh_CN.ts2
-rw-r--r--api/plugin-api.cpp25
-rw-r--r--api/plugin-api.hpp58
-rw-r--r--api/plugin-support.hpp8
5 files changed, 36 insertions, 68 deletions
diff --git a/api/lang/de_DE.ts b/api/lang/de_DE.ts
new file mode 100644
index 00000000..688fe72b
--- /dev/null
+++ b/api/lang/de_DE.ts
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+ <name>module_status_mixin</name>
+ <message>
+ <source>Unknown error</source>
+ <translation>Unbekannter Fehler</translation>
+ </message>
+</context>
+</TS>
diff --git a/api/lang/zh_CN.ts b/api/lang/zh_CN.ts
index d29cce1b..26bf67a5 100644
--- a/api/lang/zh_CN.ts
+++ b/api/lang/zh_CN.ts
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
-<TS version="2.1">
+<TS version="2.1" language="zh_CN">
<context>
<name>module_status_mixin</name>
<message>
diff --git a/api/plugin-api.cpp b/api/plugin-api.cpp
index 79f9b464..4d8d90e9 100644
--- a/api/plugin-api.cpp
+++ b/api/plugin-api.cpp
@@ -1,28 +1,28 @@
#include "plugin-api.hpp"
-
-#include <utility>
+#include <QCloseEvent>
+#include <QDebug>
namespace plugin_api::detail {
BaseDialog::BaseDialog() = default;
-void BaseDialog::closeEvent(QCloseEvent*)
+void BaseDialog::closeEvent(QCloseEvent* e)
{
if (isVisible())
- {
- hide();
emit closing();
- }
+ e->accept();
}
void BaseDialog::done(int)
{
if (isVisible())
- {
- hide();
close();
- }
}
+bool BaseDialog::embeddable() noexcept { return false; }
+void BaseDialog::save() {}
+void BaseDialog::reload() {}
+void BaseDialog::set_buttons_visible(bool) {}
+
} // ns plugin_api::detail
// these exist so that vtable is emitted in a single compilation unit, not all of them.
@@ -36,10 +36,14 @@ IFilter::IFilter() = default;
IFilter::~IFilter() = default;
IFilterDialog::IFilterDialog() = default;
IFilterDialog::~IFilterDialog() = default;
+void IFilterDialog::register_filter(IFilter*) {}
+void IFilterDialog::unregister_filter() {}
IProtocol::IProtocol() = default;
IProtocol::~IProtocol() = default;
IProtocolDialog::IProtocolDialog() = default;
IProtocolDialog::~IProtocolDialog() = default;
+void IProtocolDialog::register_protocol(IProtocol*){}
+void IProtocolDialog::unregister_protocol() {}
ITracker::ITracker() = default;
ITracker::~ITracker() = default;
bool ITracker::center() { return false; }
@@ -47,14 +51,11 @@ ITrackerDialog::ITrackerDialog() = default;
ITrackerDialog::~ITrackerDialog() = default;
void ITrackerDialog::register_tracker(ITracker*) {}
void ITrackerDialog::unregister_tracker() {}
-IExtension::~IExtension() = default;
-IExtensionDialog::~IExtensionDialog() = default;
bool module_status::is_ok() const
{
return error.isNull();
}
-
module_status_mixin::~module_status_mixin() = default;
module_status::module_status(const QString& error) : error(error) {}
module_status::module_status() = default;
diff --git a/api/plugin-api.hpp b/api/plugin-api.hpp
index 263ee475..2d77bdf4 100644
--- a/api/plugin-api.hpp
+++ b/api/plugin-api.hpp
@@ -42,6 +42,10 @@ protected:
BaseDialog();
public:
void closeEvent(QCloseEvent *) override;
+ virtual bool embeddable() noexcept;
+ virtual void set_buttons_visible(bool x); // XXX TODO remove it once all modules are converted
+ virtual void save(); // XXX HACK should be pure virtual
+ virtual void reload(); // XXX HACK should be pure virtual -sh 20211214
signals:
void closing();
private slots:
@@ -55,15 +59,18 @@ private slots:
#define OPENTRACK_DECLARE_PLUGIN_INTERNAL(ctor_class, ctor_ret_class, metadata_class, dialog_class, dialog_ret_class) \
extern "C" \
{ \
- OTR_PLUGIN_EXPORT ctor_ret_class* GetConstructor(void) \
+ OTR_PLUGIN_EXPORT ctor_ret_class* GetConstructor(void); \
+ ctor_ret_class* GetConstructor(void) \
{ \
return new ctor_class; \
} \
- OTR_PLUGIN_EXPORT Metadata_* GetMetadata(void) \
+ OTR_PLUGIN_EXPORT Metadata_* GetMetadata(void); \
+ Metadata_* GetMetadata(void) \
{ \
return new metadata_class; \
} \
- OTR_PLUGIN_EXPORT dialog_ret_class* GetDialog(void) \
+ OTR_PLUGIN_EXPORT dialog_ret_class* GetDialog(void); \
+ dialog_ret_class* GetDialog(void) \
{ \
return new dialog_class; \
} \
@@ -221,48 +228,3 @@ struct OTR_API_EXPORT ITrackerDialog : public plugin_api::detail::BaseDialog
#define OPENTRACK_DECLARE_TRACKER(tracker_class, dialog_class, metadata_class) \
OPENTRACK_DECLARE_PLUGIN_INTERNAL(tracker_class, ITracker, metadata_class, dialog_class, ITrackerDialog)
-struct OTR_API_EXPORT IExtension : module_status_mixin
-{
- enum event_mask : unsigned
- {
- none = 0u,
- on_raw = 1 << 0,
- on_before_filter = 1 << 1,
- on_before_mapping = 1 << 2,
- on_finished = 1 << 3,
- };
-
- enum event_ordinal : unsigned
- {
- ev_raw = 0,
- ev_before_filter = 1,
- ev_before_mapping = 2,
- ev_finished = 3,
-
- event_count = 4,
- };
-
- IExtension() = default;
- ~IExtension() override;
-
- virtual event_mask hook_types() = 0;
-
- virtual void process_raw(Pose&) {}
- virtual void process_before_filter(Pose&) {}
- virtual void process_before_mapping(Pose&) {}
- virtual void process_finished(Pose&) {}
-
- IExtension(const IExtension&) = delete;
- IExtension& operator=(const IExtension&) = delete;
-};
-
-struct OTR_API_EXPORT IExtensionDialog : public plugin_api::detail::BaseDialog
-{
- ~IExtensionDialog() override;
-
- virtual void register_extension(IExtension& ext) = 0;
- virtual void unregister_extension() = 0;
-};
-
-#define OPENTRACK_DECLARE_EXTENSION(ext_class, dialog_class, metadata_class) \
- OPENTRACK_DECLARE_PLUGIN_INTERNAL(ext_class, IExtension, metadata_class, dialog_class, IExtensionDialog)
diff --git a/api/plugin-support.hpp b/api/plugin-support.hpp
index 9c0a3ae0..4300da18 100644
--- a/api/plugin-support.hpp
+++ b/api/plugin-support.hpp
@@ -38,7 +38,6 @@ enum class dylib_type : unsigned
Filter = 0xdeadbabe,
Tracker = 0xcafebeef,
Protocol = 0xdeadf00d,
- Extension = 0xcafebabe,
Video = 0xbadf00d,
Invalid = (unsigned)-1,
};
@@ -54,7 +53,7 @@ struct dylib final
return;
handle.setFileName(filename_);
- handle.setLoadHints(QLibrary::DeepBindHint | QLibrary::PreventUnloadHint | QLibrary::ResolveAllSymbolsHint);
+ handle.setLoadHints(QLibrary::DeepBindHint | QLibrary::ResolveAllSymbolsHint);
#ifdef __clang__
# pragma clang diagnostic push
@@ -154,7 +153,6 @@ private:
OPENTRACK_LIBRARY_PREFIX "opentrack-tracker-",
OPENTRACK_LIBRARY_PREFIX "opentrack-proto-",
OPENTRACK_LIBRARY_PREFIX "opentrack-filter-",
- OPENTRACK_LIBRARY_PREFIX "opentrack-ext-",
OPENTRACK_LIBRARY_PREFIX "opentrack-video-",
};
@@ -180,20 +178,17 @@ struct Modules final
filter_modules(filter(type::Filter)),
tracker_modules(filter(type::Tracker)),
protocol_modules(filter(type::Protocol)),
- extension_modules(filter(type::Extension)),
video_modules(filter(type::Video))
{}
dylib_list& filters() { return filter_modules; }
dylib_list& trackers() { return tracker_modules; }
dylib_list& protocols() { return protocol_modules; }
- dylib_list& extensions() { return extension_modules; }
private:
dylib_list module_list;
dylib_list filter_modules;
dylib_list tracker_modules;
dylib_list protocol_modules;
- dylib_list extension_modules;
dylib_list video_modules;
static dylib_list& sorted(dylib_list& xs)
@@ -229,7 +224,6 @@ private:
{ type::Filter, OPENTRACK_LIBRARY_PREFIX "opentrack-filter-*." OPENTRACK_LIBRARY_EXTENSION, },
{ type::Tracker, OPENTRACK_LIBRARY_PREFIX "opentrack-tracker-*." OPENTRACK_LIBRARY_EXTENSION, },
{ type::Protocol, OPENTRACK_LIBRARY_PREFIX "opentrack-proto-*." OPENTRACK_LIBRARY_EXTENSION, },
- { type::Extension, OPENTRACK_LIBRARY_PREFIX "opentrack-ext-*." OPENTRACK_LIBRARY_EXTENSION, },
{ type::Video, OPENTRACK_LIBRARY_PREFIX "opentrack-video-*." OPENTRACK_LIBRARY_EXTENSION, dylib_load_none, },
};