| Index: webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/results.js
|
| diff --git a/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/results.js b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/results.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..68e4ff93ac38bf2de1adea5cea29446b03b97098
|
| --- /dev/null
|
| +++ b/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/results.js
|
| @@ -0,0 +1,186 @@
|
| +// Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
| +//
|
| +// Use of this source code is governed by a BSD-style license
|
| +// that can be found in the LICENSE file in the root of the source
|
| +// tree. An additional intellectual property rights grant can be found
|
| +// in the file PATENTS. All contributing project authors may
|
| +// be found in the AUTHORS file in the root of the source tree.
|
| +
|
| +/**
|
| + * Inspector UI class.
|
| + * @constructor
|
| + */
|
| +function Inspector() {
|
| + this.audioPlayer_ = new Audio();
|
| + this.inspectorNode_ = document.createElement('div');
|
| + this.divNoiseGenerator_ = document.createElement('div');
|
| + this.divNoiseParameters_ = document.createElement('div');
|
| + this.buttonPlayAudioIn_ = document.createElement('button');
|
| + this.buttonPlayAudioOut_ = document.createElement('button');
|
| + this.buttonPlayAudioRef_ = document.createElement('button');
|
| + this.buttonStopAudio_ = document.createElement('button');
|
| +
|
| + this.selectedItem_ = null;
|
| + this.audioInUrl_ = null;
|
| + this.audioOutUrl_ = null;
|
| + this.audioRefUrl_ = null;
|
| +}
|
| +
|
| +/**
|
| + * Initialize.
|
| + */
|
| +Inspector.prototype.init = function() {
|
| + window.event.stopPropagation();
|
| +
|
| + // Create inspector UI.
|
| + this.buildInspector_();
|
| + var body = document.getElementsByTagName('body')[0];
|
| + body.appendChild(this.inspectorNode_);
|
| +
|
| + // Bind click handler.
|
| + var self = this;
|
| + var items = document.getElementsByClassName('score');
|
| + for (var index = 0; index < items.length; index++) {
|
| + items[index].onclick = function() {
|
| + self.openInspector(this);
|
| + };
|
| + }
|
| +
|
| + // Bind pressed key handlers.
|
| + var self = this;
|
| + window.onkeyup = function(e) {
|
| + var key = e.keyCode ? e.keyCode : e.which;
|
| + switch (key) {
|
| + case 49: // 1.
|
| + self.playAudioIn();
|
| + break;
|
| + case 50: // 2.
|
| + self.playAudioOut();
|
| + break;
|
| + case 51: // 3.
|
| + self.playAudioRef();
|
| + break;
|
| + case 83: // S.
|
| + case 115: // s.
|
| + self.stopAudio();
|
| + break;
|
| + }
|
| + };
|
| +};
|
| +
|
| +/**
|
| + * Open the inspector.
|
| + * @param {DOMElement} target: score element that has been clicked.
|
| + */
|
| +Inspector.prototype.openInspector = function(target) {
|
| + if (this.selectedItem_ != null) {
|
| + this.selectedItem_.classList.remove('selected');
|
| + }
|
| + this.selectedItem_ = target;
|
| + this.selectedItem_.classList.add('selected');
|
| +
|
| + var target = this.selectedItem_.querySelector('.noise-desc');
|
| + var noiseName = target.querySelector('input[name=noise_name]').value;
|
| + var noiseParams = target.querySelector('input[name=noise_params]').value;
|
| + var audioIn = target.querySelector('input[name=audio_in]').value;
|
| + var audioOut = target.querySelector('input[name=audio_out]').value;
|
| + var audioRef = target.querySelector('input[name=audio_ref]').value;
|
| +
|
| + this.divNoiseGenerator_.innerHTML = noiseName;
|
| + this.divNoiseParameters_.innerHTML = noiseParams;
|
| +
|
| + this.audioInUrl_ = audioIn;
|
| + this.audioOutUrl_ = audioOut;
|
| + this.audioRefUrl_ = audioRef;
|
| +};
|
| +
|
| +/**
|
| + * Play APM audio input signal.
|
| + */
|
| +Inspector.prototype.playAudioIn = function() {
|
| + this.play_(this.audioInUrl_);
|
| +};
|
| +
|
| +/**
|
| + * Play APM audio output signal.
|
| + */
|
| +Inspector.prototype.playAudioOut = function() {
|
| + this.play_(this.audioOutUrl_);
|
| +};
|
| +
|
| +/**
|
| + * Play APM audio reference signal.
|
| + */
|
| +Inspector.prototype.playAudioRef = function() {
|
| + this.play_(this.audioRefUrl_);
|
| +};
|
| +
|
| +/**
|
| + * Stop playing audio.
|
| + */
|
| +Inspector.prototype.stopAudio = function() {
|
| + this.audioPlayer_.pause();
|
| +};
|
| +
|
| +/**
|
| + * Play audio file from url.
|
| + * @param {string} url
|
| + */
|
| +Inspector.prototype.play_ = function(url) {
|
| + if (url == null) {
|
| + alert('Select a score first.');
|
| + return;
|
| + }
|
| +
|
| + this.audioPlayer_.src = url;
|
| + this.audioPlayer_.play();
|
| +};
|
| +
|
| +/**
|
| + * Build inspector.
|
| + */
|
| +Inspector.prototype.buildInspector_ = function() {
|
| + var self = this;
|
| +
|
| + this.inspectorNode_.setAttribute('class', 'inspector');
|
| + this.inspectorNode_.innerHTML = '<div class="property noise-generator">' +
|
| + '<div class="name">noise generator</div>' +
|
| + '</div>' +
|
| + '<div class="property noise-parmas">' +
|
| + '<div class="name">parameters</div>' +
|
| + '</div>' +
|
| + '<div class="buttons"></div>';
|
| +
|
| + // Add value nodes.
|
| + function addValueNode(node, parent_selector) {
|
| + node.setAttribute('class', 'value');
|
| + node.innerHTML = '-';
|
| + var parentNode = self.inspectorNode_.querySelector(parent_selector);
|
| + parentNode.appendChild(node);
|
| + }
|
| + addValueNode(this.divNoiseGenerator_, 'div.noise-generator');
|
| + addValueNode(this.divNoiseParameters_, 'div.noise-parmas');
|
| +
|
| + // Add buttons.
|
| + var buttonsNode = this.inspectorNode_.querySelector('div.buttons');
|
| + function addButton(node, caption, callback) {
|
| + node.innerHTML = caption;
|
| + buttonsNode.appendChild(node);
|
| + node.onclick = callback.bind(self);
|
| + }
|
| + addButton(this.buttonPlayAudioIn_, 'A_in (<strong>1</strong>)',
|
| + this.playAudioIn);
|
| + addButton(this.buttonPlayAudioOut_, 'A_out (<strong>2</strong>)',
|
| + this.playAudioOut);
|
| + addButton(this.buttonPlayAudioRef_, 'A_ref (<strong>3</strong>)',
|
| + this.playAudioRef);
|
| + addButton(this.buttonStopAudio_, '<strong>S</strong>top', this.stopAudio);
|
| +};
|
| +
|
| +/**
|
| + * Instance and initialize the inspector.
|
| + */
|
| +function initialize() {
|
| + var inspector = new Inspector();
|
| + inspector.init();
|
| +}
|
|
|