mirror of
https://github.com/overte-org/overte.git
synced 2025-04-14 10:47:09 +02:00
Added test script demonstrating event bridge on the tablet
This commit is contained in:
parent
3c2f9acd39
commit
94c6cc8e6a
1 changed files with 81 additions and 0 deletions
81
scripts/developer/tests/tabletEventBridgeTest.js
Normal file
81
scripts/developer/tests/tabletEventBridgeTest.js
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
//
|
||||||
|
// tabletEventBridgeTest.js
|
||||||
|
//
|
||||||
|
// Created by Anthony J. Thibault on 2016-12-15
|
||||||
|
// Copyright 2016 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
// Adds a button to the tablet that will switch to a web page.
|
||||||
|
// This web page contains buttons that will use the event bridge to trigger sounds.
|
||||||
|
|
||||||
|
/* globals Tablet */
|
||||||
|
|
||||||
|
|
||||||
|
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
||||||
|
var tabletButton = tablet.addButton({
|
||||||
|
text: "SOUNDS"
|
||||||
|
});
|
||||||
|
|
||||||
|
var WEB_BRIDGE_TEST_HTML = "https://s3.amazonaws.com/hifi-public/tony/webBridgeTest.html?2";
|
||||||
|
|
||||||
|
var TROMBONE_URL = "https://s3.amazonaws.com/hifi-public/tony/audio/sad-trombone.wav";
|
||||||
|
var tromboneSound = SoundCache.getSound(TROMBONE_URL);
|
||||||
|
var tromboneInjector;
|
||||||
|
|
||||||
|
var SCREAM_URL = "https://s3.amazonaws.com/hifi-public/tony/audio/wilhelm-scream.wav";
|
||||||
|
var screamSound = SoundCache.getSound(SCREAM_URL);
|
||||||
|
var screamInjector;
|
||||||
|
|
||||||
|
tabletButton.clicked.connect(function () {
|
||||||
|
tablet.gotoWebScreen(WEB_BRIDGE_TEST_HTML);
|
||||||
|
});
|
||||||
|
|
||||||
|
// hook up to the event bridge
|
||||||
|
tablet.webEventReceived.connect(function (msg) {
|
||||||
|
Script.print("HIFI: recv web event = " + JSON.stringify(msg));
|
||||||
|
if (msg === "button-1-play") {
|
||||||
|
|
||||||
|
// play sad trombone
|
||||||
|
if (tromboneSound.downloaded) {
|
||||||
|
if (tromboneInjector) {
|
||||||
|
tromboneInjector.restart();
|
||||||
|
} else {
|
||||||
|
tromboneInjector = Audio.playSound(tromboneSound, { position: MyAvatar.position,
|
||||||
|
volume: 1.0,
|
||||||
|
loop: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait until sound is finished then send a done event
|
||||||
|
Script.setTimeout(function () {
|
||||||
|
tablet.emitScriptEvent("button-1-done");
|
||||||
|
}, 3500);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msg === "button-2-play") {
|
||||||
|
|
||||||
|
// play scream
|
||||||
|
if (screamSound.downloaded) {
|
||||||
|
if (screamInjector) {
|
||||||
|
screamInjector.restart();
|
||||||
|
} else {
|
||||||
|
screamInjector = Audio.playSound(screamSound, { position: MyAvatar.position,
|
||||||
|
volume: 1.0,
|
||||||
|
loop: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// wait until sound is finished then send a done event
|
||||||
|
Script.setTimeout(function () {
|
||||||
|
tablet.emitScriptEvent("button-2-done");
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Script.scriptEnding.connect(function () {
|
||||||
|
tablet.removeButton(tabletButton);
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in a new issue