// // 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(); }); }());