diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2021-12-19 20:36:56 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2021-12-19 20:37:04 +0100 | 
| commit | cb0753adaefcd365134a16b5ebc0be76c1f7b7da (patch) | |
| tree | 9e7d6f56e70e804c2d27e9e4a129771d6ff148d1 /logic | |
| parent | adedc93dfc2f3b62d1fe2cb51207749a2459c2fa (diff) | |
remove unfinished extension support
Diffstat (limited to 'logic')
| -rw-r--r-- | logic/extensions.cpp | 74 | ||||
| -rw-r--r-- | logic/extensions.hpp | 44 | ||||
| -rw-r--r-- | logic/pipeline.cpp | 9 | ||||
| -rw-r--r-- | logic/pipeline.hpp | 4 | ||||
| -rw-r--r-- | logic/state.cpp | 1 | ||||
| -rw-r--r-- | logic/state.hpp | 2 | ||||
| -rw-r--r-- | logic/work.cpp | 4 | ||||
| -rw-r--r-- | logic/work.hpp | 2 | 
8 files changed, 6 insertions, 134 deletions
diff --git a/logic/extensions.cpp b/logic/extensions.cpp deleted file mode 100644 index 03d03a83..00000000 --- a/logic/extensions.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "extensions.hpp" - -#include <functional> - -using namespace options; - -using ext_fun_type = void(IExtension::*)(Pose&); -using ext_mask = IExtension::event_mask; -using ext_ord = IExtension::event_ordinal; - -static constexpr struct event_type_mapping -{ -    ext_fun_type ptr; -    ext_mask mask; -    ext_ord idx; -} ordinal_to_function[] = { -    { &IExtension::process_raw, ext_mask::on_raw, ext_ord::ev_raw, }, -    { &IExtension::process_before_filter, ext_mask::on_before_filter, ext_ord::ev_before_filter, }, -    { &IExtension::process_before_mapping, ext_mask::on_before_mapping, ext_ord::ev_before_mapping, }, -    { &IExtension::process_finished, ext_mask::on_finished, ext_ord::ev_finished, }, -}; - -bool event_handler::is_enabled(const QString& name) -{ -    (void)name; -#if 1 -    return true; -#else -    if (!ext_bundle->contains(name)) -        return false; - -    return ext_bundle->get<bool>(name); -#endif -} - -event_handler::event_handler(Modules::dylib_list const& extensions) : ext_bundle(make_bundle("extensions")) -{ -    for (std::shared_ptr<dylib> const& lib : extensions) -    { -        std::shared_ptr<IExtension> ext(reinterpret_cast<IExtension*>(lib->Constructor())); -        std::shared_ptr<IExtensionDialog> dlg(reinterpret_cast<IExtensionDialog*>(lib->Dialog())); -        std::shared_ptr<Metadata_> m(lib->Meta()); - -        const ext_mask mask = ext->hook_types(); - -        if (!is_enabled(lib->module_name)) -            continue; - -#if 0 -        qDebug() << "extension" << lib->module_name << "mask" << (void*)mask; -#endif - -        for (event_type_mapping const& mapping : ordinal_to_function) -        { -            const unsigned i = mapping.idx; -            const ext_mask mask_ = mapping.mask; - -            if (mask & mask_) -                extensions_for_event[i].push_back({ ext, dlg, m }); -        } -    } -} - -void event_handler::run_events(event_ordinal k, Pose& pose) -{ -#if 0 -    auto fun = std::mem_fn(ordinal_to_function[k].ptr); - -    for (extension& x : extensions_for_event[k]) -        fun(*x.logic, pose); -#else -    (void)k; (void)pose; -#endif -} diff --git a/logic/extensions.hpp b/logic/extensions.hpp deleted file mode 100644 index 3368b118..00000000 --- a/logic/extensions.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -/* Copyright (c) 2017 Stanislaw Halik - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - */ - -#include "api/plugin-support.hpp" -#include "options/options.hpp" - -#include <vector> -#include <array> - -#include "export.hpp" - -struct OTR_LOGIC_EXPORT event_handler final -{ -    using event_ordinal = IExtension::event_ordinal; - -    struct extension -    { -        using ext = std::shared_ptr<IExtension>; -        using dlg = std::shared_ptr<IExtensionDialog>; -        using m = std::shared_ptr<Metadata_>; - -        ext logic; -        dlg dialog; -        m metadata; -    }; - -    void run_events(event_ordinal k, Pose& pose); -    event_handler(Modules::dylib_list const& extensions); - -private: -    using ext_list = std::vector<extension>; -    std::array<ext_list, IExtension::event_count> extensions_for_event; - -    options::bundle ext_bundle; - -    bool is_enabled(const QString& name); -}; - diff --git a/logic/pipeline.cpp b/logic/pipeline.cpp index 074cce24..4bb11424 100644 --- a/logic/pipeline.cpp +++ b/logic/pipeline.cpp @@ -184,8 +184,8 @@ Pose_ reltrans::apply_neck(const rmat& R, int nz, bool disable_tz) const      return neck;  } -pipeline::pipeline(const Mappings& m, const runtime_libraries& libs, event_handler& ev, TrackLogger& logger) : -    m(m), ev(ev), libs(libs), logger(logger) +pipeline::pipeline(const Mappings& m, const runtime_libraries& libs, TrackLogger& logger) : +    m(m), libs(libs), logger(logger)  {  } @@ -422,7 +422,6 @@ Pose pipeline::apply_reltrans(Pose value, vec6_bool disabled, bool centerp)  void pipeline::logic()  {      using namespace euler; -    using EV = event_handler::event_ordinal;      logger.write_dt();      logger.reset_dt(); @@ -435,7 +434,6 @@ void pipeline::logic()      {          Pose tmp;          libs.pTracker->data(tmp); -        ev.run_events(EV::ev_raw, tmp);          newpose = tmp;      } @@ -454,7 +452,6 @@ void pipeline::logic()      }      { -        ev.run_events(EV::ev_before_filter, value);          // we must proceed with all the filtering since the filter          // needs fresh values to prevent deconvergence          if (center_ordered) @@ -466,7 +463,6 @@ void pipeline::logic()      }      { -        ev.run_events(EV::ev_before_mapping, value);          // CAVEAT rotation only, due to reltrans          for (int i = 3; i < 6; i++)              value(i) = map(value(i), m(i)); @@ -508,7 +504,6 @@ ok:      last_value = value;      value = apply_zero_pos(value); -    ev.run_events(EV::ev_finished, value);      libs.pProtocol->pose(value, raw);      QMutexLocker foo(&mtx); diff --git a/logic/pipeline.hpp b/logic/pipeline.hpp index 80d4d8a7..a539525d 100644 --- a/logic/pipeline.hpp +++ b/logic/pipeline.hpp @@ -8,7 +8,6 @@  #include "compat/euler.hpp"  #include "compat/enum-operators.hpp"  #include "runtime-libraries.hpp" -#include "extensions.hpp"  #include "spline/spline.hpp"  #include "main-settings.hpp" @@ -85,7 +84,6 @@ class OTR_LOGIC_EXPORT pipeline : private QThread      mutable QMutex mtx;      main_settings s;      const Mappings& m; -    event_handler& ev;      Timer t;      Pose output_pose, raw_6dof, last_value; @@ -125,7 +123,7 @@ class OTR_LOGIC_EXPORT pipeline : private QThread      bits b;  public: -    pipeline(const Mappings& m, const runtime_libraries& libs, event_handler& ev, TrackLogger& logger); +    pipeline(const Mappings& m, const runtime_libraries& libs, TrackLogger& logger);      ~pipeline() override;      void raw_and_mapped_pose(double* mapped, double* raw) const; diff --git a/logic/state.cpp b/logic/state.cpp index 357430d8..8218e5c3 100644 --- a/logic/state.cpp +++ b/logic/state.cpp @@ -22,7 +22,6 @@ std::tuple<dylib_ptr, int> State::module_by_name(const QString& name, dylib_list  State::State(const QString& library_path) :      modules(library_path), -    ev(modules.extensions()),      pose(s.all_axis_opts)  {} diff --git a/logic/state.hpp b/logic/state.hpp index abce1daf..809ca458 100644 --- a/logic/state.hpp +++ b/logic/state.hpp @@ -12,7 +12,6 @@  #include "api/plugin-support.hpp"  #include "main-settings.hpp"  #include "mappings.hpp" -#include "extensions.hpp"  #include "work.hpp"  #include "export.hpp" @@ -32,7 +31,6 @@ struct OTR_LOGIC_EXPORT State      dylib_ptr current_filter();      Modules modules; -    event_handler ev;      main_settings s;      module_settings m;      Mappings pose; diff --git a/logic/work.cpp b/logic/work.cpp index 7689f916..8c6a3a62 100644 --- a/logic/work.cpp +++ b/logic/work.cpp @@ -57,10 +57,10 @@ std::unique_ptr<TrackLogger> Work::make_logger(main_settings &s)  } -Work::Work(const Mappings& m, event_handler& ev, QFrame* frame, +Work::Work(const Mappings& m, QFrame* frame,             const dylibptr& tracker, const dylibptr& filter, const dylibptr& proto) :      libs(frame, tracker, filter, proto), -    pipeline_{ m, libs, ev, *logger } +    pipeline_{ m, libs, *logger }  {      if (!is_ok())          return; diff --git a/logic/work.hpp b/logic/work.hpp index 6521c09d..ef839257 100644 --- a/logic/work.hpp +++ b/logic/work.hpp @@ -59,7 +59,7 @@ public:          key_tuple(s.key_zero_press2, [this](bool x) { pipeline_.set_zero(x); }, false),      }; -    Work(const Mappings& m, event_handler& ev, QFrame* frame, +    Work(const Mappings& m, QFrame* frame,           const dylibptr& tracker, const dylibptr& filter, const dylibptr& proto);      void reload_shortcuts();      bool is_ok() const;  | 
