diff options
Diffstat (limited to 'opentrack-logic/work.cpp')
-rw-r--r-- | opentrack-logic/work.cpp | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/opentrack-logic/work.cpp b/opentrack-logic/work.cpp deleted file mode 100644 index 8d00270b..00000000 --- a/opentrack-logic/work.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "work.hpp" - -#include <QMessageBox> - - -std::shared_ptr<TrackLogger> Work::make_logger(const main_settings &s) -{ - if (s.tracklogging_enabled) - { - if (static_cast<QString>(s.tracklogging_filename).isEmpty()) - { - QMessageBox::warning(nullptr, "Logging Error", - "No filename given for track logging. Proceeding without logging.", - QMessageBox::Ok, - QMessageBox::NoButton); - } - else - { - auto logger = std::make_shared<TrackLoggerCSV>(s.tracklogging_filename); - if (!logger->is_open()) - { - logger = nullptr; - QMessageBox::warning(nullptr, "Logging Error", - "Unable to open file: " + s.tracklogging_filename + ". Proceeding without logging.", - QMessageBox::Ok, - QMessageBox::NoButton); - } - else - { - /* As this function has the potential to fill up the hard drive - of the unwary with junk data, a warning is in order. */ - QMessageBox::warning(nullptr, "Logging Active", - "Just a heads up. You are recoding pose data to " + s.tracklogging_filename + "!", - QMessageBox::Ok, - QMessageBox::NoButton); - return logger; - } - } - } - return std::make_shared<TrackLogger>(); -} - - -Work::Work(Mappings& m, SelectedLibraries& libs, WId handle) : - libs(libs), - logger(make_logger(s)), - tracker(std::make_shared<Tracker>(m, libs, *logger)), - sc(std::make_shared<Shortcuts>()), - handle(handle), - keys { - key_tuple(s.key_center, [&](bool) -> void { tracker->center(); }, true), - key_tuple(s.key_toggle, [&](bool) -> void { tracker->toggle_enabled(); }, true), - key_tuple(s.key_zero, [&](bool) -> void { tracker->zero(); }, true), - key_tuple(s.key_toggle_press, [&](bool x) -> void { tracker->set_toggle(!x); }, false), - key_tuple(s.key_zero_press, [&](bool x) -> void { tracker->set_zero(x); }, false), - } -{ - reload_shortcuts(); - tracker->start(); -} - -void Work::reload_shortcuts() -{ - sc->reload(keys); -} - -Work::~Work() -{ - sc = nullptr; - // order matters, otherwise use-after-free -sh - tracker = nullptr; - libs = SelectedLibraries(); -} |