Extend HMD scripting interface to check subdevices

This commit is contained in:
Ryan Huffman 2016-12-09 15:13:33 -08:00
parent c953ceb58b
commit 90e121ba47
4 changed files with 17 additions and 10 deletions

View file

@ -49,12 +49,17 @@ glm::vec2 HMDScriptingInterface::overlayToSpherical(const glm::vec2 & position)
return qApp->getApplicationCompositor().overlayToSpherical(position); return qApp->getApplicationCompositor().overlayToSpherical(position);
} }
bool HMDScriptingInterface::isHMDAvailable() { bool HMDScriptingInterface::isHMDAvailable(const QString& name) {
return PluginUtils::isHMDAvailable(); return PluginUtils::isHMDAvailable(name);
} }
bool HMDScriptingInterface::isHandControllerAvailable() { bool HMDScriptingInterface::isHandControllerAvailable(const QString& name) {
return PluginUtils::isHandControllerAvailable(); return PluginUtils::isHandControllerAvailable(name);
}
bool HMDScriptingInterface::isSubdeviceContainingNameAvailable(const QString& name) {
return PluginUtils::isSubdeviceContainingNameAvailable(name);
} }
void HMDScriptingInterface::requestShowHandControllers() { void HMDScriptingInterface::requestShowHandControllers() {

View file

@ -38,8 +38,9 @@ public:
Q_INVOKABLE QString preferredAudioInput() const; Q_INVOKABLE QString preferredAudioInput() const;
Q_INVOKABLE QString preferredAudioOutput() const; Q_INVOKABLE QString preferredAudioOutput() const;
Q_INVOKABLE bool isHMDAvailable(); Q_INVOKABLE bool isHMDAvailable(const QString& name = "");
Q_INVOKABLE bool isHandControllerAvailable(); Q_INVOKABLE bool isHandControllerAvailable(const QString& name = "");
Q_INVOKABLE bool isSubdeviceContainingNameAvailable(const QString& name);
Q_INVOKABLE void requestShowHandControllers(); Q_INVOKABLE void requestShowHandControllers();
Q_INVOKABLE void requestHideHandControllers(); Q_INVOKABLE void requestHideHandControllers();

View file

@ -24,16 +24,16 @@ bool PluginUtils::isHMDAvailable(const QString& pluginName) {
return false; return false;
} }
bool PluginUtils::isHandControllerAvailable() { bool PluginUtils::isHandControllerAvailable(const QString& pluginName) {
for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) { for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) {
if (inputPlugin->isHandController()) { if (inputPlugin->isHandController() && (pluginName.isEmpty() || inputPlugin->getName() == pluginName)) {
return true; return true;
} }
} }
return false; return false;
}; };
bool isSubdeviceContainingNameAvailable(QString name) { bool PluginUtils::isSubdeviceContainingNameAvailable(QString name) {
for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) { for (auto& inputPlugin : PluginManager::getInstance()->getInputPlugins()) {
if (inputPlugin->isActive()) { if (inputPlugin->isActive()) {
auto subdeviceNames = inputPlugin->getSubdeviceNames(); auto subdeviceNames = inputPlugin->getSubdeviceNames();

View file

@ -15,7 +15,8 @@
class PluginUtils { class PluginUtils {
public: public:
static bool isHMDAvailable(const QString& pluginName = ""); static bool isHMDAvailable(const QString& pluginName = "");
static bool isHandControllerAvailable(); static bool isHandControllerAvailable(const QString& pluginName = "");
static bool isSubdeviceContainingNameAvailable(QString name);
static bool isViveControllerAvailable(); static bool isViveControllerAvailable();
static bool isOculusTouchControllerAvailable(); static bool isOculusTouchControllerAvailable();
static bool isXboxControllerAvailable(); static bool isXboxControllerAvailable();