summaryrefslogtreecommitdiffhomepage
path: root/tracker-joystick
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-joystick')
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick.cpp11
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick.h2
-rw-r--r--tracker-joystick/ftnoir_tracker_joystick_dialog.cpp9
3 files changed, 16 insertions, 6 deletions
diff --git a/tracker-joystick/ftnoir_tracker_joystick.cpp b/tracker-joystick/ftnoir_tracker_joystick.cpp
index 4c180eaa..112f20ca 100644
--- a/tracker-joystick/ftnoir_tracker_joystick.cpp
+++ b/tracker-joystick/ftnoir_tracker_joystick.cpp
@@ -8,8 +8,17 @@
#include "opentrack/plugin-api.hpp"
#include <QMutexLocker>
-FTNoIR_Tracker::FTNoIR_Tracker()
+FTNoIR_Tracker::FTNoIR_Tracker() : joy_ctx(win32_joy_ctx::make())
{
+ if (static_cast<QString>(s.guid) == "")
+ {
+ std::vector<win32_joy_ctx::joy_info> info = joy_ctx.get_joy_info();
+ if (info.size())
+ {
+ s.guid = info[0].guid;
+ s.b->save();
+ }
+ }
}
FTNoIR_Tracker::~FTNoIR_Tracker()
diff --git a/tracker-joystick/ftnoir_tracker_joystick.h b/tracker-joystick/ftnoir_tracker_joystick.h
index 18ac349e..e94e2ee7 100644
--- a/tracker-joystick/ftnoir_tracker_joystick.h
+++ b/tracker-joystick/ftnoir_tracker_joystick.h
@@ -47,7 +47,7 @@ public:
settings s;
QString guid;
static constexpr int AXIS_MAX = win32_joy_ctx::joy_axis_size - 1;
- win32_joy_ctx joy_ctx;
+ win32_joy_ctx& joy_ctx;
};
class TrackerControls: public ITrackerDialog
diff --git a/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp b/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp
index 28846809..1ca1441c 100644
--- a/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp
+++ b/tracker-joystick/ftnoir_tracker_joystick_dialog.cpp
@@ -10,20 +10,21 @@ TrackerControls::TrackerControls() : tracker(nullptr)
connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(doCancel()));
{
- win32_joy_ctx joy_ctx;
+ win32_joy_ctx& joy_ctx(win32_joy_ctx::make());
_joys = QList<joys>();
- for (auto& j : joy_ctx.joys())
- _joys.push_back(joys { j.second->name, j.first });
+ for (auto j : joy_ctx.get_joy_info())
+ _joys.push_back(joys { j.name, j.guid });
}
{
+ const QString guid = s.guid;
int idx = 0;
for (int i = 0; i < _joys.size(); i++)
{
const joys& j = _joys[i];
- if (j.guid == s.guid && j.name == s.joyid)
+ if (j.guid == guid)
idx = i;
ui.joylist->addItem(j.name + " " + j.guid);
}