First more or less complete version of Revive tab.

This commit is contained in:
2016-12-17 00:39:17 +01:00
parent 3fce6e8521
commit 129c6e3db1
7 changed files with 1100 additions and 201 deletions
+585
View File
@@ -0,0 +1,585 @@
#include "ReviveTabController.h"
#include <QQuickWindow>
#include "../overlaycontroller.h"
// application namespace
namespace advsettings {
const char* appkey_overlay = "revive.dashboard.overlay";
const char* section_revive = "revive";
const char* key_pixelsPerDisplayPixel = "pixelsPerDisplayPixel";
const char* key_toggleGrip = "ToggleGrip";
const char* key_thumbDeadzone = "ThumbDeadzone";
const char* key_thumbSensitivity = "ThumbSensitivity";
const char* key_touchPitch = "TouchPitch";
const char* key_touchYaw = "TouchYaw";
const char* key_touchRoll = "TouchRoll";
const char* key_touchX = "TouchX";
const char* key_touchY = "TouchY";
const char* key_touchZ = "TouchZ";
const char* key_playerHeight = "PlayerHeight";
const char* key_eyeHeight = "EyeHeight";
const char* key_piUser = "User";
const char* key_piName = "Name";
const char* key_piGender = "Gender";
void ReviveTabController::initStage1() {
m_isOverlayInstalled = vr::VRApplications()->IsApplicationInstalled(appkey_overlay);
if (m_isOverlayInstalled) {
vr::EVRSettingsError vrSettingsError;
float valuef = vr::VRSettings()->GetFloat(section_revive, key_pixelsPerDisplayPixel, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_pixelsPerDisplayPixel << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
if (m_pixelsPerDisplayPixelOverride == 0.0) {
m_pixelsPerDisplayPixelOverrideEnabled = false;
m_pixelsPerDisplayPixelOverride = 1.0;
} else {
m_pixelsPerDisplayPixelOverrideEnabled = true;
m_pixelsPerDisplayPixelOverride = valuef;
}
}
int valuei = vr::VRSettings()->GetInt32(section_revive, key_toggleGrip, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_toggleGrip << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_gripButtonMode = valuei;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_thumbDeadzone, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_thumbDeadzone << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_thumbDeadzone = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_thumbSensitivity, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_thumbSensitivity << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_thumbRange = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchPitch, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchPitch << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchPitch = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchYaw, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchYaw << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchYaw = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchRoll, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchRoll << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchRoll = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchX, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchX << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchX = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchY, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchY << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchY = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchZ, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_touchZ << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_touchZ = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_playerHeight, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_playerHeight << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_piPlayerHeight = valuef;
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_eyeHeight, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_eyeHeight << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_piEyeHeight = valuef;
}
char buffer[1024];
vr::VRSettings()->GetString(section_revive, key_piUser, buffer, 1024, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_piUser << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_piUsername = buffer;
}
vr::VRSettings()->GetString(section_revive, key_piName, buffer, 1024, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_piName << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
m_piName = buffer;
}
vr::VRSettings()->GetString(section_revive, key_piGender, buffer, 1024, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not read \"revive::" << key_piGender << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
} else {
if (QString(buffer).compare("male", Qt::CaseInsensitive) == 0) {
m_piGender = 1;
} else if (QString(buffer).compare("female", Qt::CaseInsensitive) == 0) {
m_piGender = 2;
} else {
m_piGender = 0;
}
}
}
}
void ReviveTabController::initStage2(OverlayController * parent, QQuickWindow * widget) {
this->parent = parent;
this->widget = widget;
}
void ReviveTabController::eventLoopTick() {
if (m_isOverlayInstalled) {
if (settingsUpdateCounter >= 50) {
settingsUpdateCounter = 0;
vr::EVRSettingsError vrSettingsError;
float valuef = vr::VRSettings()->GetFloat(section_revive, key_pixelsPerDisplayPixel, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
if (valuef == 0.0) {
setPixelsPerDisplayPixelOverrideEnabled(false);
} else {
setPixelsPerDisplayPixelOverride(valuef);
}
}
int valuei = vr::VRSettings()->GetInt32(section_revive, key_toggleGrip, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setGripButtonMode(valuei);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_thumbDeadzone, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setThumbDeadzone(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_thumbSensitivity, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setThumbRange(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchPitch, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchPitch(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchYaw, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchYaw(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchRoll, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchRoll(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchX, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchX(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchY, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchY(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_touchZ, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setTouchZ(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_playerHeight, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setPiPlayerHeight(valuef);
}
valuef = vr::VRSettings()->GetFloat(section_revive, key_eyeHeight, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setPiEyeHeight(valuef);
}
char buffer[1024];
vr::VRSettings()->GetString(section_revive, key_piUser, buffer, 1024, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setPiUsername(buffer);
}
vr::VRSettings()->GetString(section_revive, key_piName, buffer, 1024, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
setPiName(buffer);
}
vr::VRSettings()->GetString(section_revive, key_piGender, buffer, 1024, &vrSettingsError);
if (vrSettingsError == vr::VRSettingsError_None) {
if (QString(buffer).compare("male", Qt::CaseInsensitive) == 0) {
valuei = 1;
} else if (QString(buffer).compare("female", Qt::CaseInsensitive) == 0) {
valuei = 2;
} else {
valuei = 0;
}
setPiGender(valuei);
}
} else {
settingsUpdateCounter++;
}
}
}
bool ReviveTabController::isOverlayInstalled() const {
return m_isOverlayInstalled;
}
int ReviveTabController::gripButtonMode() const {
return m_gripButtonMode;
}
bool ReviveTabController::isPixelsPerDisplayPixelOverrideEnabled() const {
return m_pixelsPerDisplayPixelOverrideEnabled;
}
float ReviveTabController::pixelsPerDisplayPixelOverride() const {
return m_pixelsPerDisplayPixelOverride;
}
float ReviveTabController::thumbDeadzone() const {
return m_thumbDeadzone;
}
float ReviveTabController::thumbRange() const {
return m_thumbRange;
}
float ReviveTabController::touchPitch() const {
return m_touchPitch;
}
float ReviveTabController::touchYaw() const {
return m_touchYaw;
}
float ReviveTabController::touchRoll() const {
return m_touchRoll;
}
float ReviveTabController::touchX() const {
return m_touchX;
}
float ReviveTabController::touchY() const {
return m_touchY;
}
float ReviveTabController::touchZ() const {
return m_touchZ;
}
float ReviveTabController::piPlayerHeight() const {
return m_piPlayerHeight;
}
float ReviveTabController::piEyeHeight() const {
return m_piEyeHeight;
}
const QString& ReviveTabController::piUsername() const {
return m_piUsername;
}
const QString& ReviveTabController::piName() const {
return m_piName;
}
int ReviveTabController::piGender() const {
return m_piGender;
}
void ReviveTabController::setGripButtonMode(int value, bool notify) {
if (m_gripButtonMode != value) {
m_gripButtonMode = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetInt32(section_revive, key_toggleGrip, m_gripButtonMode, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_toggleGrip << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit gripButtonModeChanged(m_gripButtonMode);
}
}
}
void ReviveTabController::setPixelsPerDisplayPixelOverrideEnabled(bool value, bool notify) {
if (m_pixelsPerDisplayPixelOverrideEnabled != value) {
m_pixelsPerDisplayPixelOverrideEnabled = value;
if (m_pixelsPerDisplayPixelOverrideEnabled) {
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_pixelsPerDisplayPixel, m_pixelsPerDisplayPixelOverride, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_pixelsPerDisplayPixel << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
} else {
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->RemoveKeyInSection(section_revive, key_pixelsPerDisplayPixel, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not remove \"revive::" << key_pixelsPerDisplayPixel << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
}
vr::VRSettings()->Sync();
if (notify) {
emit pixelsPerDisplayPixelOverrideEnabledChanged(m_pixelsPerDisplayPixelOverrideEnabled);
}
}
}
void ReviveTabController::setPixelsPerDisplayPixelOverride(float value, bool notify) {
if (m_pixelsPerDisplayPixelOverride != value) {
m_pixelsPerDisplayPixelOverride = value;
if (m_pixelsPerDisplayPixelOverrideEnabled) {
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_pixelsPerDisplayPixel, m_pixelsPerDisplayPixelOverride, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_pixelsPerDisplayPixel << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
}
if (notify) {
emit pixelsPerDisplayPixelOverrideChanged(m_pixelsPerDisplayPixelOverride);
}
}
}
void ReviveTabController::setThumbDeadzone(float value, bool notify) {
if (m_thumbDeadzone != value) {
m_thumbDeadzone = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_thumbDeadzone, m_thumbDeadzone, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_thumbDeadzone << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit thumbDeadzoneChanged(m_thumbDeadzone);
}
}
}
void ReviveTabController::setThumbRange(float value, bool notify) {
if (m_thumbRange != value) {
m_thumbRange = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_thumbSensitivity, m_thumbRange, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_thumbSensitivity << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit thumbRangeChanged(m_thumbRange);
}
}
}
void ReviveTabController::setTouchPitch(float value, bool notify) {
if (m_touchPitch != value) {
m_touchPitch = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchPitch, m_touchPitch, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchPitch << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchPitchChanged(m_touchPitch);
}
}
}
void ReviveTabController::setTouchYaw(float value, bool notify) {
if (m_touchYaw != value) {
m_touchYaw = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchYaw, m_touchYaw, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchYaw << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchYawChanged(m_touchYaw);
}
}
}
void ReviveTabController::setTouchRoll(float value, bool notify) {
if (m_touchRoll != value) {
m_touchRoll = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchRoll, m_touchRoll, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchRoll << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchRollChanged(m_touchRoll);
}
}
}
void ReviveTabController::setTouchX(float value, bool notify) {
if (m_touchX != value) {
m_touchX = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchX, m_touchX, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchX << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchXChanged(m_touchX);
}
}
}
void ReviveTabController::setTouchY(float value, bool notify) {
if (m_touchY != value) {
m_touchY = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchY, m_touchY, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchY << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchYChanged(m_touchY);
}
}
}
void ReviveTabController::setTouchZ(float value, bool notify) {
if (m_touchZ != value) {
m_touchZ = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_touchZ, m_touchZ, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_touchZ << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit touchZChanged(m_touchZ);
}
}
}
void ReviveTabController::setPiPlayerHeight(float value, bool notify) {
if (m_piPlayerHeight != value) {
m_piPlayerHeight = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_playerHeight, m_piPlayerHeight, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_playerHeight << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit piPlayerHeightChanged(m_piPlayerHeight);
}
}
}
void ReviveTabController::setPiEyeHeight(float value, bool notify) {
if (m_piEyeHeight != value) {
m_piEyeHeight = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetFloat(section_revive, key_eyeHeight, m_piEyeHeight, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_eyeHeight << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit piEyeHeightChanged(m_piEyeHeight);
}
}
}
void ReviveTabController::setPiUsername(const QString& value, bool notify) {
if (m_piUsername.compare(value) != 0) {
m_piUsername = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetString(section_revive, key_piUser, m_piUsername.toStdString().c_str(), &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_piUser << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit piUsernameChanged(m_piUsername);
}
}
}
void ReviveTabController::setPiName(const QString& value, bool notify) {
if (m_piName.compare(value) != 0) {
m_piName = value;
vr::EVRSettingsError vrSettingsError;
vr::VRSettings()->SetString(section_revive, key_piName, m_piName.toStdString().c_str(), &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_piName << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit piNameChanged(m_piName);
}
}
}
void ReviveTabController::setPiGender(int value, bool notify) {
if (m_piGender != value) {
m_piGender = value;
vr::EVRSettingsError vrSettingsError;
char* txt;
switch (value) {
case 1:
txt = (char*)"Male";
break;
case 2:
txt = (char*)"Female";
break;
default:
txt = (char*)"Unknown";
break;
}
vr::VRSettings()->SetString(section_revive, key_piGender, txt, &vrSettingsError);
if (vrSettingsError != vr::VRSettingsError_None) {
LOG(WARNING) << "Could not set \"revive::" << key_piGender << "\" setting: " << vr::VRSettings()->GetSettingsErrorNameFromEnum(vrSettingsError);
}
vr::VRSettings()->Sync();
if (notify) {
emit piGenderChanged(m_piGender);
}
}
}
} // namespace advconfig
+135
View File
@@ -0,0 +1,135 @@
#pragma once
#include <QObject>
class QQuickWindow;
// application namespace
namespace advsettings {
// forward declaration
class OverlayController;
class ReviveTabController : public QObject {
Q_OBJECT
Q_PROPERTY(int isOverlayInstalled READ isOverlayInstalled NOTIFY isOverlayInstalledChanged)
Q_PROPERTY(int gripButtonMode READ gripButtonMode WRITE setGripButtonMode NOTIFY gripButtonModeChanged)
Q_PROPERTY(bool pixelsPerDisplayPixelOverrideEnabled READ isPixelsPerDisplayPixelOverrideEnabled WRITE setPixelsPerDisplayPixelOverrideEnabled NOTIFY pixelsPerDisplayPixelOverrideEnabledChanged)
Q_PROPERTY(float pixelsPerDisplayPixelOverride READ pixelsPerDisplayPixelOverride WRITE setPixelsPerDisplayPixelOverride NOTIFY pixelsPerDisplayPixelOverrideChanged)
Q_PROPERTY(float thumbDeadzone READ thumbDeadzone WRITE setThumbDeadzone NOTIFY thumbDeadzoneChanged)
Q_PROPERTY(float thumbRange READ thumbRange WRITE setThumbRange NOTIFY thumbRangeChanged)
Q_PROPERTY(float touchPitch READ touchPitch WRITE setTouchPitch NOTIFY touchPitchChanged)
Q_PROPERTY(float touchYaw READ touchYaw WRITE setTouchYaw NOTIFY touchYawChanged)
Q_PROPERTY(float touchRoll READ touchRoll WRITE setTouchRoll NOTIFY touchRollChanged)
Q_PROPERTY(float touchX READ touchX WRITE setTouchX NOTIFY touchXChanged)
Q_PROPERTY(float touchY READ touchY WRITE setTouchY NOTIFY touchYChanged)
Q_PROPERTY(float touchZ READ touchZ WRITE setTouchZ NOTIFY touchZChanged)
Q_PROPERTY(float piPlayerHeight READ piPlayerHeight WRITE setPiPlayerHeight NOTIFY piPlayerHeightChanged)
Q_PROPERTY(float piEyeHeight READ piEyeHeight WRITE setPiEyeHeight NOTIFY piEyeHeightChanged)
Q_PROPERTY(QString piUsername READ piUsername WRITE setPiUsername NOTIFY piUsernameChanged)
Q_PROPERTY(QString piName READ piName WRITE setPiName NOTIFY piNameChanged)
Q_PROPERTY(int piGender READ piGender WRITE setPiGender NOTIFY piGenderChanged)
private:
OverlayController* parent;
QQuickWindow* widget;
bool m_isOverlayInstalled = false;
int m_gripButtonMode = 0;
bool m_pixelsPerDisplayPixelOverrideEnabled = false;
float m_pixelsPerDisplayPixelOverride = 1.0;
float m_thumbDeadzone = 0.3f;
float m_thumbRange = 2.0f;
float m_touchPitch = -28.0f;
float m_touchYaw = 0.0f;
float m_touchRoll = -14.0f;
float m_touchX = 0.016f;
float m_touchY = 0.0f;
float m_touchZ = 0.016f;
float m_piPlayerHeight = 1.778f;
float m_piEyeHeight = 1.675f;
QString m_piUsername = "";
QString m_piName = "";
int m_piGender = 0; // 0 .. Unknown, 1 .. Male, 2 .. Female
unsigned settingsUpdateCounter = 0;
public:
void initStage1();
void initStage2(OverlayController* parent, QQuickWindow* widget);
void eventLoopTick();
bool isOverlayInstalled() const;
int gripButtonMode() const;
bool isPixelsPerDisplayPixelOverrideEnabled() const;
float pixelsPerDisplayPixelOverride() const;
float thumbDeadzone() const;
float thumbRange() const;
float touchPitch() const;
float touchYaw() const;
float touchRoll() const;
float touchX() const;
float touchY() const;
float touchZ() const;
float piPlayerHeight() const;
float piEyeHeight() const;
const QString& piUsername() const;
const QString& piName() const;
int piGender() const; // 0 .. Unknown, 1 .. Male, 2 .. Female
public slots:
void setGripButtonMode(int value, bool notify = true);
void setPixelsPerDisplayPixelOverrideEnabled(bool value, bool notify = true);
void setPixelsPerDisplayPixelOverride(float value, bool notify = true);
void setThumbDeadzone(float value, bool notify = true);
void setThumbRange(float value, bool notify = true);
void setTouchPitch(float value, bool notify = true);
void setTouchYaw(float value, bool notify = true);
void setTouchRoll(float value, bool notify = true);
void setTouchX(float value, bool notify = true);
void setTouchY(float value, bool notify = true);
void setTouchZ(float value, bool notify = true);
void setPiPlayerHeight(float value, bool notify = true);
void setPiEyeHeight(float value, bool notify = true);
void setPiUsername(const QString& value, bool notify = true);
void setPiName(const QString& value, bool notify = true);
void setPiGender(int value, bool notify = true); // 0 .. Unknown, 1 .. Male, 2 .. Female
signals:
void isOverlayInstalledChanged(bool value);
void gripButtonModeChanged(int value);
void pixelsPerDisplayPixelOverrideEnabledChanged(bool value);
void pixelsPerDisplayPixelOverrideChanged(float value);
void thumbDeadzoneChanged(float value);
void thumbRangeChanged(float value);
void touchPitchChanged(float value);
void touchYawChanged(float value);
void touchRollChanged(float value);
void touchXChanged(float value);
void touchYChanged(float value);
void touchZChanged(float value);
void piPlayerHeightChanged(float value);
void piEyeHeightChanged(float value);
void piUsernameChanged(const QString& value);
void piNameChanged(const QString& value);
void piGenderChanged(int value);
};
} // namespace advsettings