Mercurial > hg > webaudioevaluationtool
changeset 751:3b8069ea47d2
Bug #1507 MUSHRA outside reference added
author | Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk> |
---|---|
date | Mon, 21 Dec 2015 13:17:45 +0000 |
parents | c9c010690d56 |
children | fab881bdeeac |
files | core.js mushra.css mushra.js |
diffstat | 3 files changed, 54 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/core.js Mon Dec 21 13:01:01 2015 +0000 +++ b/core.js Mon Dec 21 13:17:45 2015 +0000 @@ -2858,7 +2858,7 @@ var failed = []; for (var i in audioEngineContext.audioObjects) { - if(audioEngineContext.audioObjects[i].metric.wasMoved == false) + if(audioEngineContext.audioObjects[i].metric.wasMoved == false && audioEngineContext.audioObjects[i].specification.type != 'outsidereference') { failed.push(audioEngineContext.audioObjects[i].id); }
--- a/mushra.css Mon Dec 21 13:01:01 2015 +0000 +++ b/mushra.css Mon Dec 21 13:17:45 2015 +0000 @@ -61,6 +61,15 @@ margin-left: 50px; } +div.outside-reference { + width:120px; + padding-left: 55px; + margin-left: 100px; + height:20px; + margin-bottom:5px; + background-color: rgb(100,200,100); +} + div.track-slider-playing { background-color: #FFDDDD; }
--- a/mushra.js Mon Dec 21 13:01:01 2015 +0000 +++ b/mushra.js Mon Dec 21 13:17:45 2015 +0000 @@ -47,6 +47,7 @@ var playback = document.createElement("button"); playback.innerHTML = 'Stop'; playback.id = 'playback-button'; + playback.style.float = 'left'; // onclick function. Check if it is playing or not, call the correct function in the // audioEngine, change the button text to reflect the next state. playback.onclick = function() { @@ -62,6 +63,7 @@ submit.innerHTML = 'Submit'; submit.onclick = buttonSubmitClick; submit.id = 'submit-button'; + submit.style.float = 'left'; // Append the interface buttons into the interfaceButtons object. interfaceButtons.appendChild(playback); interfaceButtons.appendChild(submit); @@ -116,6 +118,12 @@ document.getElementById("pageTitle").textContent = interfaceObj.title; } + // Delete outside reference + var outsideReferenceHolder = document.getElementById('outside-reference'); + if (outsideReferenceHolder != null) { + document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); + } + var sliderBox = document.getElementById('slider-holder'); feedbackHolder.innerHTML = null; sliderBox.innerHTML = null; @@ -140,8 +148,12 @@ // Find URL of track // In this jQuery loop, variable 'this' holds the current audioElement. - // Now load each audio sample. First create the new track by passing the full URL - var trackURL = audioHolderObject.hostURL + element.url; + // Check if an outside reference + if (index == audioHolderObject.outsideReference) + { + return; + } + var audioObject = audioEngineContext.newTrack(element); var node = interfaceContext.createCommentBox(audioObject); @@ -168,6 +180,32 @@ var totalWidth = (numObj-1)*150+100; var diff = (window.innerWidth - totalWidth)/2; sliderBox.style.marginLeft = diff + 'px'; + + // Construct outside reference; + if (audioHolderObject.outsideReference != null) { + var outsideReferenceHolder = document.createElement('div'); + outsideReferenceHolder.id = 'outside-reference'; + outsideReferenceHolder.className = 'outside-reference'; + outsideReferenceHolderspan = document.createElement('span'); + outsideReferenceHolderspan.textContent = 'Reference'; + outsideReferenceHolder.appendChild(outsideReferenceHolderspan); + + var audioObject = audioEngineContext.newTrack(audioHolderObject.audioElements[audioHolderObject.outsideReference]); + + outsideReferenceHolder.onclick = function(event) + { + audioEngineContext.play(audioEngineContext.audioObjects.length-1); + $('.track-slider').removeClass('track-slider-playing'); + $('.comment-div').removeClass('comment-box-playing'); + if (event.currentTarget.nodeName == 'DIV') { + $(event.currentTarget).addClass('track-slider-playing'); + } else { + $(event.currentTarget.parentElement).addClass('track-slider-playing'); + } + }; + + document.getElementById('interface-buttons').appendChild(outsideReferenceHolder); + } } function sliderObject(audioObject) @@ -223,6 +261,10 @@ audioEngineContext.play(id); $(".track-slider").removeClass('track-slider-playing'); $(event.currentTarget.parentElement).addClass('track-slider-playing'); + var outsideReference = document.getElementById('outside-reference'); + if (outsideReference != null) { + $(outsideReference).removeClass('track-slider-playing'); + } }; this.enable = function() {