95 lines · 2.7 KB · JavaScript
RawDownload
"use strict";////  audioScope.js//  scripts/system/////  Created by Brad Hefta-Gaub on 3/10/2016//  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///* global Script, Tablet, AudioScope, Audio */ (function () { // BEGIN LOCAL_SCOPE     var scopeVisibile = AudioScope.getVisible();    var scopePaused = AudioScope.getPause();    var autoPause = false;     var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");    var showScopeButton = tablet.addButton({        icon: "icons/tablet-icons/scope.svg",        text: "Audio Scope",        isActive: scopeVisibile    });     var scopePauseImage = "icons/tablet-icons/scope-pause.svg";    var scopePlayImage = "icons/tablet-icons/scope-play.svg";        var pauseScopeButton = tablet.addButton({        icon: scopePaused ? scopePlayImage : scopePauseImage,        text: scopePaused ? "Unpause" : "Pause",        isActive: scopePaused    });     var autoPauseScopeButton = tablet.addButton({        icon: "icons/tablet-icons/scope-auto.svg",        text: "Auto Pause",        isActive: autoPause    });     function setScopePause(paused) {        scopePaused = paused;        pauseScopeButton.editProperties({            isActive: scopePaused,            icon: scopePaused ? scopePlayImage : scopePauseImage,            text: scopePaused ? "Unpause" : "Pause"        });        AudioScope.setPause(scopePaused);    }     showScopeButton.clicked.connect(function () {        // toggle button active state        scopeVisibile = !scopeVisibile;        showScopeButton.editProperties({            isActive: scopeVisibile        });         AudioScope.setVisible(scopeVisibile);    });     pauseScopeButton.clicked.connect(function () {        // toggle button active state        setScopePause(!scopePaused);    });     autoPauseScopeButton.clicked.connect(function () {        // toggle button active state        autoPause = !autoPause;        autoPauseScopeButton.editProperties({            isActive: autoPause,            text: autoPause ? "Auto Pause" : "Manual"        });    });     Script.scriptEnding.connect(function () {        tablet.removeButton(showScopeButton);        tablet.removeButton(pauseScopeButton);        tablet.removeButton(autoPauseScopeButton);    });     Audio.noiseGateOpened.connect(function(){        if (autoPause) {            setScopePause(false);        }    });     Audio.noiseGateClosed.connect(function(){        // noise gate closed        if (autoPause) {            setScopePause(true);        }    }); }()); // END LOCAL_SCOPE