summaryrefslogtreecommitdiffhomepage
path: root/proto-fsuipc
diff options
context:
space:
mode:
Diffstat (limited to 'proto-fsuipc')
-rw-r--r--proto-fsuipc/ftnoir_fsuipccontrols.ui104
-rw-r--r--proto-fsuipc/ftnoir_protocol_fsuipc.cpp73
-rw-r--r--proto-fsuipc/ftnoir_protocol_fsuipc.h20
-rw-r--r--proto-fsuipc/ftnoir_protocol_fsuipc_dialog.cpp13
-rw-r--r--proto-fsuipc/lang/nl_NL.ts22
-rw-r--r--proto-fsuipc/lang/ru_RU.ts22
-rw-r--r--proto-fsuipc/lang/stub.ts22
-rw-r--r--proto-fsuipc/lang/zh_CN.ts22
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>