diff options
Diffstat (limited to 'logic/work.hpp')
-rw-r--r-- | logic/work.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/logic/work.hpp b/logic/work.hpp new file mode 100644 index 00000000..b20b1824 --- /dev/null +++ b/logic/work.hpp @@ -0,0 +1,43 @@ +/* Copyright (c) 2014-2015, Stanislaw Halik <sthalik@misaki.pl> + + * 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. + */ + +#pragma once + +#include "main-settings.hpp" +#include "api/plugin-support.hpp" +#include "tracker.h" +#include "shortcuts.h" +#include "export.hpp" +#include "tracklogger.hpp" + +#include <QObject> +#include <QFrame> +#include <memory> +#include <vector> +#include <tuple> +#include <functional> + +struct OPENTRACK_LOGIC_EXPORT Work +{ + using fn_t = std::function<void(bool)>; + using key_tuple = std::tuple<key_opts&, fn_t, bool>; + main_settings s; // tracker needs settings, so settings must come before it + SelectedLibraries& libs; + std::shared_ptr<TrackLogger> logger; // must come before tracker, since tracker depends on it + std::shared_ptr<Tracker> tracker; + std::shared_ptr<Shortcuts> sc; + WId handle; + std::vector<key_tuple> keys; + + Work(Mappings& m, SelectedLibraries& libs, WId handle); + ~Work(); + void reload_shortcuts(); + +private: + std::shared_ptr<TrackLogger> make_logger(const main_settings &s); +}; |