diff options
-rw-r--r-- | proto-fsuipc/ftnoir_fsuipccontrols.ui | 104 | ||||
-rw-r--r-- | proto-fsuipc/ftnoir_protocol_fsuipc.cpp | 73 | ||||
-rw-r--r-- | proto-fsuipc/ftnoir_protocol_fsuipc.h | 20 | ||||
-rw-r--r-- | proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp | 13 | ||||
-rw-r--r-- | proto-fsuipc/lang/nl_NL.ts | 22 | ||||
-rw-r--r-- | proto-fsuipc/lang/ru_RU.ts | 22 | ||||
-rw-r--r-- | proto-fsuipc/lang/stub.ts | 22 | ||||
-rw-r--r-- | proto-fsuipc/lang/zh_CN.ts | 22 |
8 files changed, 64 insertions, 234 deletions
diff --git a/proto-fsuipc/ftnoir_fsuipccontrols.ui b/proto-fsuipc/ftnoir_fsuipccontrols.ui index 4c85c91c..5a28aad2 100644 --- a/proto-fsuipc/ftnoir_fsuipccontrols.ui +++ b/proto-fsuipc/ftnoir_fsuipccontrols.ui @@ -9,12 +9,12 @@ <rect> <x>0</x> <y>0</y> - <width>512</width> - <height>100</height> + <width>248</width> + <height>34</height> </rect> </property> <property name="windowTitle"> - <string>FSUIPC settings FaceTrackNoIR</string> + <string>FSUIPC</string> </property> <property name="windowIcon"> <iconset> @@ -26,99 +26,11 @@ <property name="autoFillBackground"> <bool>false</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="2" column="1"> - <widget class="QPushButton" name="btnCancel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>100</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>100</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>Cancel</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="txtLocationOfDLL"> - <property name="minimumSize"> - <size> - <width>230</width> - <height>0</height> - </size> - </property> - <property name="toolTip"> - <string>Location of FSUIPC.dll</string> - </property> - <property name="frameShape"> - <enum>QFrame::Box</enum> - </property> - <property name="frameShadow"> - <enum>QFrame::Sunken</enum> - </property> - <property name="lineWidth"> - <number>1</number> - </property> - <property name="text"> - <string>Location of FSUIPC.dll</string> - </property> - </widget> - </item> - <item row="1" column="0" colspan="2"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>The DLL should be located in the Modules/ directory of MS FS 2004</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QPushButton" name="btnOK"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>100</width> - <height>0</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>100</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>OK</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QPushButton" name="btnFindDLL"> - <property name="maximumSize"> - <size> - <width>35</width> - <height>16777215</height> - </size> - </property> - <property name="text"> - <string>...</string> + <layout class="QVBoxLayout" name="verticalLayout"> + <item alignment="Qt::AlignTop"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="standardButtons"> + <set>QDialogButtonBox::Ok</set> </property> </widget> </item> diff --git a/proto-fsuipc/ftnoir_protocol_fsuipc.cpp b/proto-fsuipc/ftnoir_protocol_fsuipc.cpp index 7ba466a8..678262fa 100644 --- a/proto-fsuipc/ftnoir_protocol_fsuipc.cpp +++ b/proto-fsuipc/ftnoir_protocol_fsuipc.cpp @@ -13,24 +13,18 @@ #include <cmath> -fsuipc::fsuipc() -{ - prevPosX = 0.0f; - prevPosY = 0.0f; - prevPosZ = 0.0f; - prevRotX = 0.0f; - prevRotY = 0.0f; - prevRotZ = 0.0f; -} +fsuipc::fsuipc() = default; fsuipc::~fsuipc() { FSUIPC_Close(); +#if 0 FSUIPCLib.unload(); +#endif } template<typename t> -int fsuipc::scale2AnalogLimits(t x, t min_x, t max_x) +int fsuipc::scale(t x, t min_x, t max_x) { t local_x = x; @@ -48,58 +42,44 @@ int fsuipc::scale2AnalogLimits(t x, t min_x, t max_x) return (int) y; } +#if 0 template<typename t> -static inline bool check_float_fresh(t x, t y) +static bool check_float_fresh(t x, t y) { constexpr t eps = t(1e-4); return std::fabs(x - y) >= eps; } +#endif -void fsuipc::pose(const double *headpose ) { +void fsuipc::pose(const double *headpose) +{ DWORD result; - TFSState pitch; - TFSState yaw; - TFSState roll; WORD FSZoom; - double virtPosX; - double virtPosY; - double virtPosZ; - - double virtRotX; - double virtRotY; - double virtRotZ; - - // qDebug() << "FSUIPCServer::run() says: started!"; - - virtRotX = -headpose[Pitch]; // degrees - virtRotY = headpose[Yaw]; - virtRotZ = headpose[Roll]; - - virtPosX = 0.0f; // cm, X and Y are not working for FS2002/2004! - virtPosY = 0.0f; - virtPosZ = headpose[TZ]; + // cm, X and Y are not working for FS2002/2004! + double pos_z = headpose[TZ]; + state pitch, yaw, roll; // NOLINT(cppcoreguidelines-pro-type-member-init) - // - // Init. the FSUIPC offsets (derived from Free-track...) - // + // offsets derived from freetrack pitch.Control = 66503; + pitch.Value = scale(-headpose[Pitch], -180., 180.); // degrees + yaw.Control = 66504; + yaw.Value = scale(headpose[Yaw], -180., 180.); + roll.Control = 66505; + roll.Value = scale(headpose[Roll], -180., 180.); - // +#if 0 // Only do this when the data has changed. This way, the HAT-switch can be used when tracking is OFF. - // if (check_float_fresh(prevRotX, virtRotX) || check_float_fresh(prevRotY, virtRotY) || check_float_fresh(prevRotZ, virtRotZ) || check_float_fresh(prevPosX, virtPosX) || check_float_fresh(prevPosY, virtPosY) || check_float_fresh(prevPosZ, virtPosZ)) +#endif { - // - // Open the connection - // FSUIPC_Open(SIM_ANY, &result); // @@ -110,16 +90,11 @@ void fsuipc::pose(const double *headpose ) { { // Write the 4! DOF-data to FS. Only rotations and zoom are possible. - pitch.Value = scale2AnalogLimits(virtRotX, -180., 180.); FSUIPC_Write(0x3110, 8, &pitch, &result); - - yaw.Value = scale2AnalogLimits(virtRotY, -180., 180.); FSUIPC_Write(0x3110, 8, &yaw, &result); - - roll.Value = scale2AnalogLimits(virtRotZ, -180., 180.); FSUIPC_Write(0x3110, 8, &roll, &result); - FSZoom = WORD(virtPosZ + 64); + FSZoom = WORD(pos_z + 64); FSUIPC_Write(0x832E, 2, &FSZoom, &result); // @@ -136,16 +111,19 @@ void fsuipc::pose(const double *headpose ) { } } +#if 0 prevPosX = virtPosX; prevPosY = virtPosY; prevPosZ = virtPosZ; prevRotX = virtRotX; prevRotY = virtRotY; prevRotZ = virtRotZ; +#endif } module_status fsuipc::initialize() { +#if 0 FSUIPCLib.setFileName( s.LocationOfDLL ); FSUIPCLib.setLoadHints(QLibrary::PreventUnloadHint); @@ -153,6 +131,9 @@ module_status fsuipc::initialize() return error(tr("Can't load fsuipc at '%1'").arg(s.LocationOfDLL)); else return status_ok(); +#else + return {}; +#endif } OPENTRACK_DECLARE_PROTOCOL(fsuipc, FSUIPCControls, fsuipcDll) diff --git a/proto-fsuipc/ftnoir_protocol_fsuipc.h b/proto-fsuipc/ftnoir_protocol_fsuipc.h index 93e73e7f..62238032 100644 --- a/proto-fsuipc/ftnoir_protocol_fsuipc.h +++ b/proto-fsuipc/ftnoir_protocol_fsuipc.h @@ -27,6 +27,7 @@ #include "options/options.hpp" using namespace options; +#if 0 #define FSUIPC_FILENAME "C:\\Program Files\\Microsoft Games\\Flight Simulator 9\\Modules\\FSUIPC.dll" struct settings : opts { @@ -36,13 +37,14 @@ struct settings : opts { LocationOfDLL(b, "dll-location", FSUIPC_FILENAME) {} }; +#endif #pragma pack(push,1) // All fields in structure must be unaligned -typedef struct +struct state { int Control; // Control identifier int Value; // Value of DOF -} TFSState; +}; #pragma pack(pop) class fsuipc : public TR, public IProtocol @@ -56,12 +58,16 @@ public: void pose(const double* headpose) override; QString game_name() override { return tr("Microsoft Flight Simulator X"); } private: +#if 0 QLibrary FSUIPCLib; - double prevPosX, prevPosY, prevPosZ, prevRotX, prevRotY, prevRotZ; + + double prevPosX = 0, prevPosY = 0, prevPosZ = 0, + prevRotX = 0, prevRotY = 0, prevRotZ = 0; settings s; +#endif template<typename t> - static int scale2AnalogLimits(t x, t min_x, t max_x ); + static int scale(t x, t min_x, t max_x); }; class FSUIPCControls: public IProtocolDialog @@ -73,11 +79,15 @@ public: void unregister_protocol() override {} private: Ui::UICFSUIPCControls ui; +#if 0 settings s; +#endif private slots: - void doOK(); void doCancel(); +#if 0 + void doOK(); void getLocationOfDLL(); +#endif }; class fsuipcDll : public Metadata diff --git a/proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp b/proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp index 07507cfb..122c9383 100644 --- a/proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp +++ b/proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp @@ -14,23 +14,30 @@ FSUIPCControls::FSUIPCControls() { ui.setupUi( this ); +#if 0 connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK())); connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel())); connect(ui.btnFindDLL, SIGNAL(clicked()), this, SLOT(getLocationOfDLL())); - tie_setting(s.LocationOfDLL, ui.txtLocationOfDLL); +#else + connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &FSUIPCControls::doCancel); +#endif } -void FSUIPCControls::doOK() { +#if 0 +void FSUIPCControls::doOK() +{ s.b->save(); close(); } +#endif void FSUIPCControls::doCancel() { close(); } +#if 0 void FSUIPCControls::getLocationOfDLL() { QString fileName = QFileDialog::getOpenFileName(this, tr("Locate file"), @@ -40,4 +47,4 @@ void FSUIPCControls::getLocationOfDLL() s.LocationOfDLL = fileName; } } - +#endif diff --git a/proto-fsuipc/lang/nl_NL.ts b/proto-fsuipc/lang/nl_NL.ts index dd7d7942..4a7578e9 100644 --- a/proto-fsuipc/lang/nl_NL.ts +++ b/proto-fsuipc/lang/nl_NL.ts @@ -15,27 +15,7 @@ <context> <name>UICFSUIPCControls</name> <message> - <source>FSUIPC settings FaceTrackNoIR</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Location of FSUIPC.dll</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>The DLL should be located in the Modules/ directory of MS FS 2004</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>OK</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>...</source> + <source>FSUIPC</source> <translation type="unfinished"></translation> </message> </context> diff --git a/proto-fsuipc/lang/ru_RU.ts b/proto-fsuipc/lang/ru_RU.ts index 29f52f79..dd26dd22 100644 --- a/proto-fsuipc/lang/ru_RU.ts +++ b/proto-fsuipc/lang/ru_RU.ts @@ -15,27 +15,7 @@ <context> <name>UICFSUIPCControls</name> <message> - <source>FSUIPC settings FaceTrackNoIR</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Location of FSUIPC.dll</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>The DLL should be located in the Modules/ directory of MS FS 2004</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>OK</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>...</source> + <source>FSUIPC</source> <translation type="unfinished"></translation> </message> </context> diff --git a/proto-fsuipc/lang/stub.ts b/proto-fsuipc/lang/stub.ts index 16662c44..031e1916 100644 --- a/proto-fsuipc/lang/stub.ts +++ b/proto-fsuipc/lang/stub.ts @@ -15,27 +15,7 @@ <context> <name>UICFSUIPCControls</name> <message> - <source>FSUIPC settings FaceTrackNoIR</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Location of FSUIPC.dll</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>The DLL should be located in the Modules/ directory of MS FS 2004</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>OK</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>...</source> + <source>FSUIPC</source> <translation type="unfinished"></translation> </message> </context> diff --git a/proto-fsuipc/lang/zh_CN.ts b/proto-fsuipc/lang/zh_CN.ts index 16662c44..031e1916 100644 --- a/proto-fsuipc/lang/zh_CN.ts +++ b/proto-fsuipc/lang/zh_CN.ts @@ -15,27 +15,7 @@ <context> <name>UICFSUIPCControls</name> <message> - <source>FSUIPC settings FaceTrackNoIR</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>Location of FSUIPC.dll</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>The DLL should be located in the Modules/ directory of MS FS 2004</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>OK</source> - <translation type="unfinished"></translation> - </message> - <message> - <source>...</source> + <source>FSUIPC</source> <translation type="unfinished"></translation> </message> </context> |