mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-14 11:46:34 +02:00
add a basic tablet app for the audio scope
This commit is contained in:
parent
eaea718de1
commit
5f3ee2e98f
1 changed files with 97 additions and 0 deletions
97
scripts/system/audioScope.js
Normal file
97
scripts/system/audioScope.js
Normal file
|
@ -0,0 +1,97 @@
|
|||
"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 framesSinceOpened = 0;
|
||||
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: "http://s3.amazonaws.com/hifi-public/tony/icons/star.png",
|
||||
text: "Audio Scope",
|
||||
isActive: scopeVisibile
|
||||
});
|
||||
|
||||
var pauseScopeButton = tablet.addButton({
|
||||
icon: "http://s3.amazonaws.com/hifi-public/tony/icons/star.png",
|
||||
text: "Pause",
|
||||
isActive: scopePaused
|
||||
});
|
||||
|
||||
var autoPauseScopeButton = tablet.addButton({
|
||||
icon: "http://s3.amazonaws.com/hifi-public/tony/icons/star.png",
|
||||
text: "Auto Pause",
|
||||
isActive: autoPause
|
||||
});
|
||||
|
||||
function setScopePause(paused) {
|
||||
scopePaused = paused;
|
||||
pauseScopeButton.editProperties({
|
||||
isActive: scopePaused,
|
||||
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(){
|
||||
framesSinceOpened = 0;
|
||||
});
|
||||
|
||||
Audio.noiseGateClosed.connect(function(){
|
||||
// noise gate closed
|
||||
});
|
||||
|
||||
Audio.inputReceived.connect(function(){
|
||||
if (autoPause && AudioScope.getVisible()) {
|
||||
framesSinceOpened++;
|
||||
if (framesSinceOpened > 50) {
|
||||
setScopePause(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}()); // END LOCAL_SCOPE
|
Loading…
Reference in a new issue