mirror of
https://github.com/lubosz/overte.git
synced 2025-04-26 06:55:39 +02:00
64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
"use strict";
|
|
|
|
// Created by Jason C. Najera on 3/7/2019
|
|
// Copyright 2019 High Fidelity, Inc.
|
|
//
|
|
// Handles Push-to-Talk functionality for HMD mode.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
Script.include("/~/system/libraries/controllerDispatcherUtils.js");
|
|
Script.include("/~/system/libraries/controllers.js");
|
|
|
|
(function() { // BEGIN LOCAL_SCOPE
|
|
function PushToTalkHandler() {
|
|
var _this = this;
|
|
this.active = false;
|
|
|
|
this.shouldTalk = function (controllerData) {
|
|
// Set up test against controllerData here...
|
|
var gripVal = controllerData.secondaryValues[LEFT_HAND] && controllerData.secondaryValues[RIGHT_HAND];
|
|
return (gripVal) ? true : false;
|
|
};
|
|
|
|
this.shouldStopTalking = function (controllerData) {
|
|
var gripVal = controllerData.secondaryValues[LEFT_HAND] && controllerData.secondaryValues[RIGHT_HAND];
|
|
return (gripVal) ? false : true;
|
|
};
|
|
|
|
this.isReady = function (controllerData, deltaTime) {
|
|
if (HMD.active && Audio.pushToTalk && this.shouldTalk(controllerData)) {
|
|
Audio.pushingToTalk = true;
|
|
return makeRunningValues(true, [], []);
|
|
}
|
|
|
|
return makeRunningValues(false, [], []);
|
|
};
|
|
|
|
this.run = function (controllerData, deltaTime) {
|
|
if (this.shouldStopTalking(controllerData) || !Audio.pushToTalk) {
|
|
Audio.pushingToTalk = false;
|
|
print("Stop pushing to talk.");
|
|
return makeRunningValues(false, [], []);
|
|
}
|
|
|
|
return makeRunningValues(true, [], []);
|
|
};
|
|
|
|
this.parameters = makeDispatcherModuleParameters(
|
|
950,
|
|
["head"],
|
|
[],
|
|
100);
|
|
}
|
|
|
|
var pushToTalk = new PushToTalkHandler();
|
|
enableDispatcherModule("PushToTalk", pushToTalk);
|
|
|
|
function cleanup() {
|
|
disableDispatcherModule("PushToTalk");
|
|
};
|
|
|
|
Script.scriptEnding.connect(cleanup);
|
|
}()); // END LOCAL_SCOPE
|