summaryrefslogtreecommitdiffhomepage
path: root/tracker-steamvr/steamvr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-steamvr/steamvr.cpp')
-rw-r--r--tracker-steamvr/steamvr.cpp41
1 files changed, 19 insertions, 22 deletions
diff --git a/tracker-steamvr/steamvr.cpp b/tracker-steamvr/steamvr.cpp
index 04ae691e..9a845d55 100644
--- a/tracker-steamvr/steamvr.cpp
+++ b/tracker-steamvr/steamvr.cpp
@@ -20,10 +20,8 @@
#include "api/plugin-api.hpp"
-#include <cstdlib>
#include <cmath>
-#include <type_traits>
-#include <algorithm>
+#include <cstdlib>
#include <QMessageBox>
#include <QDebug>
@@ -59,13 +57,13 @@ void device_list::fill_device_specs(QList<device_spec>& list)
{
if (v->GetTrackedDeviceClass(k) == vr::ETrackedDeviceClass::TrackedDeviceClass_Invalid)
{
- qDebug() << "no device with index";
+ qDebug() << "steamvr: no device with index";
continue;
}
if (!device_states[k].bDeviceIsConnected)
{
- qDebug() << "device not connected but proceeding";
+ qDebug() << "steamvr: device not connected but proceeding";
continue;
}
@@ -170,14 +168,19 @@ tt device_list::vr_init_()
QString device_list::error_string(vr_error_t err)
{
- const char* str(vr::VR_GetVRInitErrorAsSymbol(err));
- return QString(str ? str : "No description");
-}
+ const char* str = vr::VR_GetVRInitErrorAsSymbol(err);
+ const char* desc = vr::VR_GetVRInitErrorAsEnglishDescription(err);
-steamvr::steamvr() : device_index(-1)
-{
+ if (!desc)
+ desc = "No description";
+
+ if (str)
+ return QStringLiteral("%1: %2").arg(str, desc);
+ else
+ return { "Unknown error" };
}
+steamvr::steamvr() = default;
steamvr::~steamvr() = default;
module_status steamvr::start_tracker(QFrame*)
@@ -200,18 +203,16 @@ module_status steamvr::start_tracker(QFrame*)
if (sz == 0)
err = tr("No HMD connected");
- device_index = -1;
-
for (const device_spec& spec : specs)
{
if (serial == "" || serial == spec.to_string())
{
- device_index = int(spec.k);
+ device_index = spec.k;
break;
}
}
- if (device_index == -1 && err.isEmpty())
+ if (device_index == UINT_MAX && err.isEmpty())
err = tr("Can't find device with that serial");
if (err.isEmpty())
@@ -223,7 +224,7 @@ module_status steamvr::start_tracker(QFrame*)
void steamvr::data(double* data)
{
- if (device_index != -1)
+ if (device_index != UINT_MAX)
{
auto [ok, pose] = device_list::get_pose(device_index);
if (ok)
@@ -269,15 +270,11 @@ bool steamvr::center()
void steamvr::matrix_to_euler(double& yaw, double& pitch, double& roll, const vr::HmdMatrix34_t& result)
{
- using std::atan2;
- using std::sqrt;
- using std::asin;
-
using d = double;
- yaw = atan2(d(result.m[2][0]), d(result.m[0][0]));
- pitch = atan2(-d(result.m[1][2]), d(result.m[1][1]));
- roll = asin(d(result.m[1][0]));
+ yaw = std::atan2(d(result.m[2][0]), d(result.m[0][0]));
+ pitch = std::atan2(-d(result.m[1][2]), d(result.m[1][1]));
+ roll = std::asin(d(result.m[1][0]));
}
steamvr_dialog::steamvr_dialog()