diff options
Diffstat (limited to 'opentrack')
| -rw-r--r-- | opentrack/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | opentrack/main-settings.hpp | 2 | ||||
| -rw-r--r-- | opentrack/mappings.hpp | 2 | ||||
| -rw-r--r-- | opentrack/plugin-api.hpp | 40 | ||||
| -rw-r--r-- | opentrack/plugin-support.hpp | 2 | ||||
| -rw-r--r-- | opentrack/selected-libraries.hpp | 9 | ||||
| -rw-r--r-- | opentrack/shortcuts.h | 14 | ||||
| -rw-r--r-- | opentrack/state.hpp | 2 | ||||
| -rw-r--r-- | opentrack/tracker.h | 10 | ||||
| -rw-r--r-- | opentrack/win32-shortcuts.h | 8 | 
10 files changed, 69 insertions, 22 deletions
| diff --git a/opentrack/CMakeLists.txt b/opentrack/CMakeLists.txt index c3676979..de5975e2 100644 --- a/opentrack/CMakeLists.txt +++ b/opentrack/CMakeLists.txt @@ -1,4 +1,4 @@ -opentrack_boilerplate(opentrack-api NO-LINKER-SCRIPT NO-COMPAT) +opentrack_boilerplate(opentrack-api NO-LINKER-SCRIPT NO-COMPAT LINKAGE)  if(NOT WIN32)      target_link_libraries(opentrack-api opentrack-qxt-mini opentrack-compat dl)  else() diff --git a/opentrack/main-settings.hpp b/opentrack/main-settings.hpp index 613223ce..b7b086ad 100644 --- a/opentrack/main-settings.hpp +++ b/opentrack/main-settings.hpp @@ -9,7 +9,7 @@  #pragma once  #include <QString> -#include "opentrack/options.hpp" +#include "opentrack-compat/options.hpp"  #include "opentrack/plugin-api.hpp"  using namespace options; diff --git a/opentrack/mappings.hpp b/opentrack/mappings.hpp index bb38a3ca..087ea7f3 100644 --- a/opentrack/mappings.hpp +++ b/opentrack/mappings.hpp @@ -8,7 +8,7 @@  #pragma once  #include <QSettings> -#include "options.hpp" +#include "opentrack-compat/options.hpp"  using namespace options;  #include "spline-widget/functionconfig.h"  #include "main-settings.hpp" diff --git a/opentrack/plugin-api.hpp b/opentrack/plugin-api.hpp index a57077ab..5fdc3bcb 100644 --- a/opentrack/plugin-api.hpp +++ b/opentrack/plugin-api.hpp @@ -8,17 +8,38 @@  #pragma once -#include "../opentrack-compat/export.hpp"  #include <QString>  #include <QWidget>  #include <QFrame>  #include <QIcon> +#ifdef BUILD_api +#   include "opentrack-compat/export.hpp" +#else +#   include "opentrack-compat/import.hpp" +#endif + +#ifndef OPENTRACK_PLUGIN_EXPORT +#   ifdef _WIN32 +#       define OPENTRACK_PLUGIN_LINKAGE __declspec(dllexport) +#   else +#       define OPENTRACK_PLUGIN_LINKAGE +#   endif +#   ifndef _MSC_VER +#       define OPENTRACK_PLUGIN_EXPORT __attribute__ ((visibility ("default"))) OPENTRACK_PLUGIN_LINKAGE +#   else +#       define OPENTRACK_PLUGIN_EXPORT OPENTRACK_PLUGIN_LINKAGE +#   endif +#endif +  enum Axis {      TX = 0, TY, TZ, Yaw, Pitch, Roll  }; -class BaseDialog : public QWidget +namespace plugin_api { +namespace detail { + +class OPENTRACK_EXPORT BaseDialog : public QWidget  {      Q_OBJECT  public: @@ -27,16 +48,19 @@ signals:      void closing();  }; +} // ns +} // ns +  #define OPENTRACK_DECLARE_PLUGIN_INTERNAL(ctor_class, ctor_ret_class, metadata_class, dialog_class, dialog_ret_class) \ -    extern "C" OPENTRACK_EXPORT ctor_ret_class* GetConstructor() \ +    extern "C" OPENTRACK_PLUGIN_EXPORT ctor_ret_class* GetConstructor() \      { \          return new ctor_class; \      } \ -    extern "C" OPENTRACK_EXPORT Metadata* GetMetadata() \ +    extern "C" OPENTRACK_PLUGIN_EXPORT Metadata* GetMetadata() \      { \          return new metadata_class; \      } \ -    extern "C" OPENTRACK_EXPORT dialog_ret_class* GetDialog() \ +    extern "C" OPENTRACK_PLUGIN_EXPORT dialog_ret_class* GetDialog() \      { \          return new dialog_class; \      } @@ -65,7 +89,7 @@ struct IFilter      virtual void center() {}  }; -struct IFilterDialog : public BaseDialog +struct IFilterDialog : public plugin_api::detail::BaseDialog  {      // optional destructor      virtual ~IFilterDialog() {} @@ -93,7 +117,7 @@ struct IProtocol      virtual QString game_name() = 0;  }; -struct IProtocolDialog : public BaseDialog +struct IProtocolDialog : public plugin_api::detail::BaseDialog  {      // optional destructor      virtual ~IProtocolDialog() {} @@ -118,7 +142,7 @@ struct ITracker      virtual void data(double *data) = 0;  }; -struct ITrackerDialog : public BaseDialog +struct ITrackerDialog : public plugin_api::detail::BaseDialog  {      // optional destructor      virtual ~ITrackerDialog() {} diff --git a/opentrack/plugin-support.hpp b/opentrack/plugin-support.hpp index 102d11c4..650eec10 100644 --- a/opentrack/plugin-support.hpp +++ b/opentrack/plugin-support.hpp @@ -8,7 +8,7 @@  #pragma once  #include "plugin-api.hpp" -#include "options.hpp" +#include "opentrack-compat/options.hpp"  #include <QWidget>  #include <QDebug> diff --git a/opentrack/selected-libraries.hpp b/opentrack/selected-libraries.hpp index 3719b109..b396b5ec 100644 --- a/opentrack/selected-libraries.hpp +++ b/opentrack/selected-libraries.hpp @@ -11,7 +11,14 @@  #include "opentrack/plugin-support.hpp"  #include <QFrame> -struct SelectedLibraries { + +#ifdef BUILD_api +#   include "opentrack-compat/export.hpp" +#else +#   include "opentrack-compat/import.hpp" +#endif + +struct OPENTRACK_EXPORT SelectedLibraries {      using dylibptr = mem<dylib>;      mem<ITracker> pTracker;      mem<IFilter> pFilter; diff --git a/opentrack/shortcuts.h b/opentrack/shortcuts.h index 63d91829..03adc1ab 100644 --- a/opentrack/shortcuts.h +++ b/opentrack/shortcuts.h @@ -17,9 +17,15 @@  #include <QSettings>  #include <QMutex> +#ifdef BUILD_api +#   include "opentrack-compat/export.hpp" +#else +#   include "opentrack-compat/import.hpp" +#endif +  #include "qxt-mini/QxtGlobalShortcut"  #include "opentrack/plugin-support.hpp" -#include "opentrack/options.hpp" +#include "opentrack-compat/options.hpp"  #include "opentrack/main-settings.hpp"  using namespace options; @@ -66,9 +72,7 @@ typedef unsigned char BYTE;  struct Key { int foo; };  #endif -struct Shortcuts; - -struct KeybindingWorker : public QThread { +struct OPENTRACK_EXPORT KeybindingWorker : public QThread {  #ifdef _WIN32  private:      LPDIRECTINPUT8 din; @@ -87,7 +91,7 @@ public:  #endif  }; -struct Shortcuts : public QObject { +struct OPENTRACK_EXPORT Shortcuts : public QObject {      Q_OBJECT  public: diff --git a/opentrack/state.hpp b/opentrack/state.hpp index e4cb0f04..dcb18293 100644 --- a/opentrack/state.hpp +++ b/opentrack/state.hpp @@ -9,7 +9,7 @@  #pragma once  #include <vector> -#include "opentrack/options.hpp" +#include "opentrack-compat/options.hpp"  using namespace options;  #include "opentrack/plugin-support.hpp"  #include "opentrack/main-settings.hpp" diff --git a/opentrack/tracker.h b/opentrack/tracker.h index 890660e1..e26c3f7a 100644 --- a/opentrack/tracker.h +++ b/opentrack/tracker.h @@ -18,7 +18,7 @@  #include "spline-widget/functionconfig.h"  #include "main-settings.hpp" -#include "options.hpp" +#include "opentrack-compat/options.hpp"  #include <QMutex>  #include <QThread> @@ -40,7 +40,13 @@ public:      inline double operator()(int i) const { return axes[i]; }  }; -class Tracker : private QThread { +#ifdef BUILD_api +#   include "opentrack-compat/export.hpp" +#else +#   include "opentrack-compat/import.hpp" +#endif + +class OPENTRACK_EXPORT Tracker : private QThread {      Q_OBJECT  private:      QMutex mtx; diff --git a/opentrack/win32-shortcuts.h b/opentrack/win32-shortcuts.h index fe92ae53..9b2c6121 100644 --- a/opentrack/win32-shortcuts.h +++ b/opentrack/win32-shortcuts.h @@ -10,7 +10,13 @@ struct win_key;  extern QList<win_key> windows_key_mods;  extern QList<win_key> windows_key_sequences; -struct win_key +#ifdef BUILD_api +#   include "opentrack-compat/export.hpp" +#else +#   include "opentrack-compat/import.hpp" +#endif + +struct OPENTRACK_EXPORT win_key  {      win_key(int win, Qt::Key qt) : win(win), qt(qt) {}      int win; | 
