//// Created by Dante Ruiz 2017/04/17// Copyright 2017 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// (function() { var recording = false; var onRecordingScreen = false; var passedSaveDirectory = false; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); var button = tablet.addButton({ text: "IRecord" }); function onClick() { if (onRecordingScreen) { tablet.gotoHomeScreen(); onRecordingScreen = false; } else { tablet.loadQMLSource("hifi/tablet/InputRecorder.qml"); onRecordingScreen = true; } } function onScreenChanged(type, url) { onRecordingScreen = false; passedSaveDirectory = false; } button.clicked.connect(onClick); tablet.fromQml.connect(fromQml); tablet.screenChanged.connect(onScreenChanged); function fromQml(message) { switch (message.method) { case "Start": startRecording(); break; case "Stop": stopRecording(); break; case "Save": saveRecording(); break; case "Load": loadRecording(message.params.file); break; case "playback": startPlayback(); break; } } function startRecording() { Controller.startInputRecording(); recording = true; } function stopRecording() { Controller.stopInputRecording(); recording = false; } function saveRecording() { Controller.saveInputRecording(); } function loadRecording(file) { Controller.loadInputRecording(file); } function startPlayback() { Controller.startInputPlayback(); } function sendToQml(message) { tablet.sendToQml(message); } function update() { if (!passedSaveDirectory) { var directory = Controller.getInputRecorderSaveDirectory(); sendToQml({method: "path", params: directory}); passedSaveDirectory = true; } sendToQml({method: "update", params: recording}); } Script.setInterval(update, 60); Script.scriptEnding.connect(function () { button.clicked.disconnect(onClick); if (tablet) { tablet.removeButton(button); } Controller.stopInputRecording(); }); }());
//
// Created by Dante Ruiz 2017/04/17
// Copyright 2017 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
//
(function() {
var recording = false;
var onRecordingScreen = false;
var passedSaveDirectory = false;
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
var button = tablet.addButton({
text: "IRecord"
});
function onClick() {
if (onRecordingScreen) {
tablet.gotoHomeScreen();
onRecordingScreen = false;
} else {
tablet.loadQMLSource("hifi/tablet/InputRecorder.qml");
onRecordingScreen = true;
}
}
function onScreenChanged(type, url) {
onRecordingScreen = false;
passedSaveDirectory = false;
}
button.clicked.connect(onClick);
tablet.fromQml.connect(fromQml);
tablet.screenChanged.connect(onScreenChanged);
function fromQml(message) {
switch (message.method) {
case "Start":
startRecording();
break;
case "Stop":
stopRecording();
break;
case "Save":
saveRecording();
break;
case "Load":
loadRecording(message.params.file);
break;
case "playback":
startPlayback();
break;
}
}
function startRecording() {
Controller.startInputRecording();
recording = true;
}
function stopRecording() {
Controller.stopInputRecording();
recording = false;
}
function saveRecording() {
Controller.saveInputRecording();
}
function loadRecording(file) {
Controller.loadInputRecording(file);
}
function startPlayback() {
Controller.startInputPlayback();
}
function sendToQml(message) {
tablet.sendToQml(message);
}
function update() {
if (!passedSaveDirectory) {
var directory = Controller.getInputRecorderSaveDirectory();
sendToQml({method: "path", params: directory});
passedSaveDirectory = true;
}
sendToQml({method: "update", params: recording});
}
Script.setInterval(update, 60);
Script.scriptEnding.connect(function () {
button.clicked.disconnect(onClick);
if (tablet) {
tablet.removeButton(button);
}
Controller.stopInputRecording();
});
}());