From 05939f8a7c81fef1dc86fdd165d8bb1b4197be25 Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 8 Nov 2018 11:09:19 -0800 Subject: [PATCH 01/11] Fix settings to only show relevant HMD controls. --- interface/resources/html/tabletHelp.html | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index 279213bbcb..68a34245c7 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -66,7 +66,7 @@ From 1bd978e4c3a0695532a00d0573f0ef0f0d488ef4 Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 8 Nov 2018 11:22:43 -0800 Subject: [PATCH 02/11] Clean up code in tabletHelp.html --- interface/resources/html/tabletHelp.html | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index 68a34245c7..a1739b3d67 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -137,29 +137,24 @@ switch (params.handControllerName) { case "oculus": handControllerImageURL = "img/tablet-help-oculus.jpg"; - index = 0; break; case "windowsMR": handControllerImageURL = "img/tablet-help-windowsMR.jpg"; - index = 0; break; case "vive": handControllerImageURL = "img/tablet-help-vive.jpg"; - index = 0; default: - } switch (params.defaultTab) { + case "handControllers": + showHandControllers(); + index = 0; + break; case "gamepad": showGamepad(); index = 1; break; - - case "handControllers": - showHandControllers(); - break; - case "kbm": default: showKbm(); From a6494bf379eaaf20ace3b81c677b4d2a57af70c4 Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 8 Nov 2018 11:25:55 -0800 Subject: [PATCH 03/11] Fix edge case with Oculus. --- interface/resources/html/tabletHelp.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index a1739b3d67..f3e60ff16f 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -135,15 +135,15 @@ } switch (params.handControllerName) { - case "oculus": - handControllerImageURL = "img/tablet-help-oculus.jpg"; - break; case "windowsMR": handControllerImageURL = "img/tablet-help-windowsMR.jpg"; break; case "vive": handControllerImageURL = "img/tablet-help-vive.jpg"; + break; + case "oculus": default: + handControllerImageURL = "img/tablet-help-oculus.jpg"; } switch (params.defaultTab) { From b4be7544b9fedd28b95334ed1f811b2a4c054407 Mon Sep 17 00:00:00 2001 From: Jason Najera <39922250+r3tk0n@users.noreply.github.com> Date: Thu, 8 Nov 2018 13:15:19 -0800 Subject: [PATCH 04/11] Attempt to fix spacing Weird thing is it still looked fine in GitHub's editor... --- interface/resources/html/tabletHelp.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index f3e60ff16f..a48ee9d6d1 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -147,7 +147,7 @@ } switch (params.defaultTab) { - case "handControllers": + case "handControllers": showHandControllers(); index = 0; break; From 59bba5b6e69c9487f4a01b58f97b43d7e3f10129 Mon Sep 17 00:00:00 2001 From: Jason Najera <39922250+r3tk0n@users.noreply.github.com> Date: Thu, 8 Nov 2018 13:16:24 -0800 Subject: [PATCH 05/11] More attempt to fix indentation. Still looked fine in github's editor and N++. --- interface/resources/html/tabletHelp.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index a48ee9d6d1..1399c98f9f 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -149,7 +149,7 @@ switch (params.defaultTab) { case "handControllers": showHandControllers(); - index = 0; + index = 0; break; case "gamepad": showGamepad(); From 84209c0e5319a1b7cfbb23c65b2f30a0834a50fd Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 8 Nov 2018 13:18:25 -0800 Subject: [PATCH 06/11] Finally fix all indentation. --- interface/resources/html/tabletHelp.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index 1399c98f9f..cc931580c3 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -139,11 +139,11 @@ handControllerImageURL = "img/tablet-help-windowsMR.jpg"; break; case "vive": - handControllerImageURL = "img/tablet-help-vive.jpg"; - break; - case "oculus": + handControllerImageURL = "img/tablet-help-vive.jpg"; + break; + case "oculus": default: - handControllerImageURL = "img/tablet-help-oculus.jpg"; + handControllerImageURL = "img/tablet-help-oculus.jpg"; } switch (params.defaultTab) { From d2a1b35f969027806483a8651a54af740232eb51 Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 8 Nov 2018 16:50:11 -0800 Subject: [PATCH 07/11] Fix desktop case showing Vive controls. --- interface/resources/html/tabletHelp.html | 20 +++++++++++--------- interface/src/Application.cpp | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index cc931580c3..8d4214d5af 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -94,15 +94,14 @@ switch (index) { case 0: - showHandControllers(); - break; - case 1: showGamepad(); break; - case 2: + case 1: showKbm(); break; - + case 2: + showHandControllers(); + break; default: } } @@ -142,23 +141,26 @@ handControllerImageURL = "img/tablet-help-vive.jpg"; break; case "oculus": + handControllerImageURL = "img/tablet-help-oculus.jpg"; + break; default: - handControllerImageURL = "img/tablet-help-oculus.jpg"; + handControllerImageURL = null; + count = 2; } switch (params.defaultTab) { case "handControllers": showHandControllers(); - index = 0; + index = 2; break; case "gamepad": showGamepad(); - index = 1; + index = 0; break; case "kbm": default: showKbm(); - index = 2; + index = 1; } } diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 245e6c0017..ecb738c7c4 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3366,7 +3366,7 @@ void Application::showHelp() { static const QString TAB_GAMEPAD = "gamepad"; static const QString TAB_HAND_CONTROLLERS = "handControllers"; - QString handControllerName = HAND_CONTROLLER_NAME_VIVE; + QString handControllerName = ""; QString defaultTab = TAB_KEYBOARD_MOUSE; if (PluginUtils::isViveControllerAvailable()) { From ecee31960299f71859d621568ccdfa029c778d8a Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Tue, 13 Nov 2018 15:20:46 -0800 Subject: [PATCH 08/11] Get logic working correctly. --- interface/resources/html/tabletHelp.html | 2 +- interface/src/Application.cpp | 46 +++++++++++++++++++----- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/interface/resources/html/tabletHelp.html b/interface/resources/html/tabletHelp.html index 8d4214d5af..dd7931d0ed 100644 --- a/interface/resources/html/tabletHelp.html +++ b/interface/resources/html/tabletHelp.html @@ -144,7 +144,7 @@ handControllerImageURL = "img/tablet-help-oculus.jpg"; break; default: - handControllerImageURL = null; + handControllerImageURL = ""; count = 2; } diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index e537d618e9..9430d15794 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3400,21 +3400,51 @@ void Application::showHelp() { static const QString TAB_GAMEPAD = "gamepad"; static const QString TAB_HAND_CONTROLLERS = "handControllers"; - QString handControllerName = ""; + QString handControllerName; QString defaultTab = TAB_KEYBOARD_MOUSE; - if (PluginUtils::isViveControllerAvailable()) { - defaultTab = TAB_HAND_CONTROLLERS; - handControllerName = HAND_CONTROLLER_NAME_VIVE; - } else if (PluginUtils::isOculusTouchControllerAvailable()) { - defaultTab = TAB_HAND_CONTROLLERS; - handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; - } else if (qApp->getActiveDisplayPlugin()->getName() == "WindowMS") { + qDebug() << "Printing names..."; + for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) { + qDebug() << inputPlugin->getName(); + auto subdeviceNames = inputPlugin->getSubdeviceNames(); + for (auto& subdeviceName : subdeviceNames) { + qDebug() << " -|" << subdeviceName; + } + } + + qDebug() << "----------------------"; + + auto displayPlugins = PluginManager::getInstance()->getDisplayPlugins(); + for (auto& displayPlugin : displayPlugins) { + qDebug() << displayPlugin->getName(); + } + + if (PluginUtils::isHMDAvailable("WindowsMR")) { defaultTab = TAB_HAND_CONTROLLERS; handControllerName = HAND_CONTROLLER_NAME_WINDOWS_MR; + //} else if (PluginUtils::isViveControllerAvailable()) { + } else if (PluginUtils::isHMDAvailable("HTC Vive")) { + defaultTab = TAB_HAND_CONTROLLERS; + handControllerName = HAND_CONTROLLER_NAME_VIVE; + } else if (PluginUtils::isHMDAvailable("Oculus Rift")) { + defaultTab = TAB_HAND_CONTROLLERS; + handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; } else if (PluginUtils::isXboxControllerAvailable()) { defaultTab = TAB_GAMEPAD; } + //if (QString::compare(qApp->getActiveDisplayPlugin()->getName(), "WindowsMR") == 0) { + // defaultTab = TAB_HAND_CONTROLLERS; + // handControllerName = HAND_CONTROLLER_NAME_WINDOWS_MR; + ////} else if (PluginUtils::isViveControllerAvailable()) { + //} else if (QString::compare(qApp->getActiveDisplayPlugin()->getName(), "HTC Vive") == 0) { + // defaultTab = TAB_HAND_CONTROLLERS; + // handControllerName = HAND_CONTROLLER_NAME_VIVE; + //} else if (PluginUtils::isOculusTouchControllerAvailable()) { + // defaultTab = TAB_HAND_CONTROLLERS; + // handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; + //} else if (PluginUtils::isXboxControllerAvailable()) { + // defaultTab = TAB_GAMEPAD; + //} // TODO need some way to detect windowsMR to load controls reference default tab in Help > Controls Reference menu. QUrlQuery queryString; From dd8bbeb0e5378c49d22db7b740a28cfe8e98abea Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Tue, 13 Nov 2018 15:36:25 -0800 Subject: [PATCH 09/11] Clean up code and remove comments. --- interface/src/Application.cpp | 41 ++++++----------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9430d15794..aec580ff9d 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3396,6 +3396,10 @@ void Application::showHelp() { static const QString HAND_CONTROLLER_NAME_OCULUS_TOUCH = "oculus"; static const QString HAND_CONTROLLER_NAME_WINDOWS_MR = "windowsMR"; + static const QString VIVE_PLUGIN_NAME = "HTC Vive"; + static const QString OCULUS_RIFT_PLUGIN_NAME = "Oculus Rift"; + static const QString WINDOWS_MR_PLUGIN_NAME = "WindowsMR"; + static const QString TAB_KEYBOARD_MOUSE = "kbm"; static const QString TAB_GAMEPAD = "gamepad"; static const QString TAB_HAND_CONTROLLERS = "handControllers"; @@ -3403,49 +3407,18 @@ void Application::showHelp() { QString handControllerName; QString defaultTab = TAB_KEYBOARD_MOUSE; - qDebug() << "Printing names..."; - for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) { - qDebug() << inputPlugin->getName(); - auto subdeviceNames = inputPlugin->getSubdeviceNames(); - for (auto& subdeviceName : subdeviceNames) { - qDebug() << " -|" << subdeviceName; - } - } - - qDebug() << "----------------------"; - - auto displayPlugins = PluginManager::getInstance()->getDisplayPlugins(); - for (auto& displayPlugin : displayPlugins) { - qDebug() << displayPlugin->getName(); - } - - if (PluginUtils::isHMDAvailable("WindowsMR")) { + if (PluginUtils::isHMDAvailable(WINDOWS_MR_PLUGIN_NAME)) { defaultTab = TAB_HAND_CONTROLLERS; handControllerName = HAND_CONTROLLER_NAME_WINDOWS_MR; - //} else if (PluginUtils::isViveControllerAvailable()) { - } else if (PluginUtils::isHMDAvailable("HTC Vive")) { + } else if (PluginUtils::isHMDAvailable(VIVE_PLUGIN_NAME)) { defaultTab = TAB_HAND_CONTROLLERS; handControllerName = HAND_CONTROLLER_NAME_VIVE; - } else if (PluginUtils::isHMDAvailable("Oculus Rift")) { + } else if (PluginUtils::isHMDAvailable(OCULUS_RIFT_PLUGIN_NAME)) { defaultTab = TAB_HAND_CONTROLLERS; handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; } else if (PluginUtils::isXboxControllerAvailable()) { defaultTab = TAB_GAMEPAD; } - //if (QString::compare(qApp->getActiveDisplayPlugin()->getName(), "WindowsMR") == 0) { - // defaultTab = TAB_HAND_CONTROLLERS; - // handControllerName = HAND_CONTROLLER_NAME_WINDOWS_MR; - ////} else if (PluginUtils::isViveControllerAvailable()) { - //} else if (QString::compare(qApp->getActiveDisplayPlugin()->getName(), "HTC Vive") == 0) { - // defaultTab = TAB_HAND_CONTROLLERS; - // handControllerName = HAND_CONTROLLER_NAME_VIVE; - //} else if (PluginUtils::isOculusTouchControllerAvailable()) { - // defaultTab = TAB_HAND_CONTROLLERS; - // handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; - //} else if (PluginUtils::isXboxControllerAvailable()) { - // defaultTab = TAB_GAMEPAD; - //} - // TODO need some way to detect windowsMR to load controls reference default tab in Help > Controls Reference menu. QUrlQuery queryString; queryString.addQueryItem("handControllerName", handControllerName); From 34224c4f16382ae0a3faf311fca388302bc7067d Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 15 Nov 2018 14:08:21 -0800 Subject: [PATCH 10/11] Fix XBox One controller detection. --- libraries/plugins/src/plugins/PluginUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/plugins/src/plugins/PluginUtils.cpp b/libraries/plugins/src/plugins/PluginUtils.cpp index ce67f7c585..f6419ccba0 100644 --- a/libraries/plugins/src/plugins/PluginUtils.cpp +++ b/libraries/plugins/src/plugins/PluginUtils.cpp @@ -65,6 +65,6 @@ bool PluginUtils::isOculusTouchControllerAvailable() { }; bool PluginUtils::isXboxControllerAvailable() { - return isSubdeviceContainingNameAvailable("X360 Controller"); + return isSubdeviceContainingNameAvailable("X360 Controller") || isSubdeviceContainingNameAvailable("XInput Controller"); }; From 60832b071cb8088ec432131b464807e9d3c56b33 Mon Sep 17 00:00:00 2001 From: r3tk0n Date: Thu, 15 Nov 2018 14:08:38 -0800 Subject: [PATCH 11/11] Fix logic for cases with rift headset but no touch controllers. --- interface/src/Application.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index aec580ff9d..a4277d6132 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3414,10 +3414,18 @@ void Application::showHelp() { defaultTab = TAB_HAND_CONTROLLERS; handControllerName = HAND_CONTROLLER_NAME_VIVE; } else if (PluginUtils::isHMDAvailable(OCULUS_RIFT_PLUGIN_NAME)) { - defaultTab = TAB_HAND_CONTROLLERS; - handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; + if (PluginUtils::isOculusTouchControllerAvailable()) { + defaultTab = TAB_HAND_CONTROLLERS; + handControllerName = HAND_CONTROLLER_NAME_OCULUS_TOUCH; + } else if (PluginUtils::isXboxControllerAvailable()) { + defaultTab = TAB_GAMEPAD; + } else { + defaultTab = TAB_KEYBOARD_MOUSE; + } } else if (PluginUtils::isXboxControllerAvailable()) { defaultTab = TAB_GAMEPAD; + } else { + defaultTab = TAB_KEYBOARD_MOUSE; } QUrlQuery queryString;