Merge pull request #6194 from howard-stearns/hydra-hack

Do not shut down hydra when it says there are no devices.
This commit is contained in:
Philip Rosedale 2015-10-26 22:04:49 -07:00
commit bc07de3892
2 changed files with 9 additions and 1 deletions

View file

@ -167,7 +167,10 @@ void SixenseManager::update(float deltaTime, bool jointsCaptured) {
if (sixenseGetNumActiveControllers() == 0) { if (sixenseGetNumActiveControllers() == 0) {
if (_hydrasConnected) { if (_hydrasConnected) {
qCDebug(inputplugins, "hydra disconnected"); qCDebug(inputplugins) << "hydra disconnected" << _badDataCount;
if (_badDataCount++ < _allowedBadDataCount) { // gotta get some no-active in a row before we shut things down
return;
}
} }
_hydrasConnected = false; _hydrasConnected = false;
if (_deviceID != 0) { if (_deviceID != 0) {
@ -181,6 +184,7 @@ void SixenseManager::update(float deltaTime, bool jointsCaptured) {
PerformanceTimer perfTimer("sixense"); PerformanceTimer perfTimer("sixense");
if (!_hydrasConnected) { if (!_hydrasConnected) {
_hydrasConnected = true; _hydrasConnected = true;
_badDataCount = 0;
registerToUserInputMapper(*userInputMapper); registerToUserInputMapper(*userInputMapper);
assignDefaultInputMapping(*userInputMapper); assignDefaultInputMapping(*userInputMapper);
UserActivityLogger::getInstance().connectedDevice("spatial_controller", "hydra"); UserActivityLogger::getInstance().connectedDevice("spatial_controller", "hydra");
@ -555,6 +559,7 @@ void SixenseManager::saveSettings() const {
settings.setVec3Value(QString("avatarPosition"), _avatarPosition); settings.setVec3Value(QString("avatarPosition"), _avatarPosition);
settings.setQuatValue(QString("avatarRotation"), _avatarRotation); settings.setQuatValue(QString("avatarRotation"), _avatarRotation);
settings.setValue(QString("reachLength"), QVariant(_reachLength)); settings.setValue(QString("reachLength"), QVariant(_reachLength));
settings.setValue(QString("allowedHydraFailures"), 120);
} }
settings.endGroup(); settings.endGroup();
} }
@ -567,6 +572,7 @@ void SixenseManager::loadSettings() {
settings.getVec3ValueIfValid(QString("avatarPosition"), _avatarPosition); settings.getVec3ValueIfValid(QString("avatarPosition"), _avatarPosition);
settings.getQuatValueIfValid(QString("avatarRotation"), _avatarRotation); settings.getQuatValueIfValid(QString("avatarRotation"), _avatarRotation);
settings.getFloatValueIfValid(QString("reachLength"), _reachLength); settings.getFloatValueIfValid(QString("reachLength"), _reachLength);
_allowedBadDataCount = settings.value(QString("allowedHydraFailures"), 120).toInt();
} }
settings.endGroup(); settings.endGroup();
} }

View file

@ -114,6 +114,8 @@ private:
#endif #endif
bool _hydrasConnected; bool _hydrasConnected;
int _badDataCount;
int _allowedBadDataCount;
static const QString NAME; static const QString NAME;
static const QString HYDRA_ID_STRING; static const QString HYDRA_ID_STRING;