# HG changeset patch # User Nicholas Jillings # Date 1450433470 0 # Node ID ab037c4210b79407b4bd85a51429bfa097aba67d # Parent 5f17d2a88e27707e8cbe2d4aaac50c7fd0a219a5# Parent 1b04a21a550a70304d2921e0307f3a21bd9c5f2e Merge diff -r 1b04a21a550a -r ab037c4210b7 ape.js --- a/ape.js Fri Dec 18 01:45:54 2015 +0000 +++ b/ape.js Fri Dec 18 10:11:10 2015 +0000 @@ -60,10 +60,15 @@ } if (interfaceTID.length != 0) { - str += 'On axis "'+this.interfaceSliders[i].interfaceObject.title+'" you must move '; + var interfaceName = this.interfaceSliders[i].interfaceObject.title; + if (interfaceName == undefined) { + str += 'On axis '+String(i+1)+' you must move '; + } else { + str += 'On axis "'+interfaceName+'" you must move '; + } if (interfaceTID.length == 1) { - str += 'slider +'+interfaceTID[0]+'. '; + str += 'slider '+interfaceTID[0]+'. '; } else { str += 'sliders '; @@ -449,6 +454,8 @@ if (interfaceObject.title != undefined && typeof interfaceObject.title == "string") { titleSpan.textContent = interfaceObject.title; + } else { + titleSpan.textContent = "Axis "+String(this.id+1); } pagetitle.appendChild(titleSpan); this.sliderDOM.appendChild(pagetitle); @@ -580,7 +587,17 @@ }); } }; - + this.updateLoading = function(progress) + { + if (progress != 100) + { + progress = String(progress); + progress = progress.split('.')[0]; + this.trackSliderObjects[0].children[0].textContent = progress+'%'; + } else { + this.trackSliderObjects[0].children[0].textContent = this.parent.id; + } + }; this.exportXMLDOM = function(audioObject) { // Called by the audioObject holding this element. Must be present var obj = []; @@ -636,6 +653,9 @@ var checkState = interfaceContext.checkScaleRange(); if (checkState == false) {canContinue = false;} break; + default: + console.log("WARNING - Check option "+checks[i].check+" is not supported on this interface"); + break; } } diff -r 1b04a21a550a -r ab037c4210b7 core.js --- a/core.js Fri Dec 18 01:45:54 2015 +0000 +++ b/core.js Fri Dec 18 10:11:10 2015 +0000 @@ -767,6 +767,7 @@ this.url = null; this.buffer = null; this.xmlRequest = new XMLHttpRequest(); + this.xmlRequest.parent = this; this.users = []; this.getMedia = function(url) { this.url = url; @@ -807,7 +808,17 @@ this.progressCallback = function(event){ if (event.lengthComputable) { - this.progress = event.loaded / event.total; + this.parent.progress = event.loaded / event.total; + for (var i=0; i 1) + { + xmlInitialPosition /= 100; + } + this.initialPosition = xmlInitialPosition; + } + } if (xml.getAttribute('loudness') != null) { var XMLloudness = xml.getAttribute('loudness'); @@ -1946,7 +1970,9 @@ AHNode.setAttribute("loop",this.loop); AHNode.setAttribute("elementComments",this.elementComments); if(this.loudness != null) {AHNode.setAttribute("loudness",this.loudness);} - + if(this.initialPosition != null) { + AHNode.setAttribute("loudness",this.initialPosition*100); + } for (var i=0; i - Preference Min Max Middle diff -r 1b04a21a550a -r ab037c4210b7 index.html --- a/index.html Fri Dec 18 01:45:54 2015 +0000 +++ b/index.html Fri Dec 18 10:11:10 2015 +0000 @@ -23,14 +23,26 @@ window.onbeforeunload = function() { return "Please only leave this page once you have completed the tests. Are you sure you have completed all testing?"; }; - - - - diff -r 1b04a21a550a -r ab037c4210b7 mushra.css --- a/mushra.css Fri Dec 18 01:45:54 2015 +0000 +++ b/mushra.css Fri Dec 18 10:11:10 2015 +0000 @@ -45,11 +45,20 @@ padding:2px; } +div.track-slider-playing { + background-color: #FFDDDD; +} + +input.track-slider-range { + margin-left: 0px; + margin-right: 0px; +} + input[type=range][orient=vertical] { writing-mode: bt-lr; /* IE */ -webkit-appearance: slider-vertical; /* WebKit */ width: 8px; - height: 175px; padding: 0 5px; + color: rgb(255, 144, 144); } \ No newline at end of file diff -r 1b04a21a550a -r ab037c4210b7 mushra.js --- a/mushra.js Fri Dec 18 01:45:54 2015 +0000 +++ b/mushra.js Fri Dec 18 10:11:10 2015 +0000 @@ -99,6 +99,10 @@ var feedbackHolder = document.getElementById('feedbackHolder'); var interfaceObj = audioHolderObject.interfaces; + if (interfaceObj.length > 1) + { + console.log("WARNING - This interface only supports one node per page. Using first interface node"); + } var sliderBox = document.getElementById('slider'); feedbackHolder.innerHTML = null; @@ -133,8 +137,14 @@ // Create a slider per track audioObject.interfaceDOM = new sliderObject(audioObject); - // Distribute it randomnly - audioObject.interfaceDOM.slider.value = Math.random(); + if (typeof audioHolderObject.initialPosition === "number") + { + // Set the values + audioObject.interfaceDOM.slider.value = audioHolderObject.initalPosition; + } else { + // Distribute it randomnly + audioObject.interfaceDOM.slider.value = Math.random(); + } sliderBox.appendChild(audioObject.interfaceDOM.holder); audioObject.metric.initialised(audioObject.interfaceDOM.slider.value); @@ -171,12 +181,11 @@ this.title.style.float = "left"; this.slider.type = "range"; + this.slider.className = "track-slider-range"; this.slider.min = "0"; this.slider.max = "1"; this.slider.step = "0.01"; this.slider.setAttribute('orient','vertical'); - this.slider.style.float = "left"; - this.slider.style.width = "100%"; this.slider.style.height = window.innerHeight-250 + 'px'; this.slider.onchange = function() { @@ -186,25 +195,24 @@ console.log('slider '+id+' moved to '+this.value+' ('+time+')'); }; - this.play.textContent = "Play"; + this.play.textContent = "Loading..."; this.play.value = audioObject.id; this.play.style.float = "left"; this.play.style.width = "100%"; - this.play.onclick = function() + this.play.disabled = true; + this.play.onclick = function(event) { - audioEngineContext.play(); - if (audioEngineContext.audioObjectsReady) { - var id = Number(event.srcElement.value); - //audioEngineContext.metric.sliderPlayed(id); - audioEngineContext.play(id); - } + var id = Number(event.srcElement.value); + //audioEngineContext.metric.sliderPlayed(id); + audioEngineContext.play(id); + $(".track-slider").removeClass('track-slider-playing'); + $(event.currentTarget.parentElement).addClass('track-slider-playing'); }; this.enable = function() { - if (this.parent.state == 1) - { - $(this.slider).removeClass('track-slider-disabled'); - } + this.play.disabled = false; + this.play.textContent = "Play"; + $(this.slider).removeClass('track-slider-disabled'); }; this.exportXMLDOM = function(audioObject) { @@ -216,6 +224,40 @@ this.getValue = function() { return this.slider.value; }; + + this.resize = function(event) + { + this.holder.style.height = window.innerHeight-200 + 'px'; + this.slider.style.height = window.innerHeight-250 + 'px'; + } + this.updateLoading = function(progress) + { + progress = String(progress); + progress = progress.substr(0,5); + this.play.textContent = "Loading: "+progress+"%"; + } + + if (this.parent.state == 1) + { + this.enable(); + } +} + +function resizeWindow(event) +{ + // Function called when the window has been resized. + // MANDATORY FUNCTION + + // Auto-align + var numObj = audioEngineContext.audioObjects.length; + var totalWidth = (numObj-1)*150+100; + var diff = (window.innerWidth - totalWidth)/2; + document.getElementById('slider').style.height = window.innerHeight - 180 + 'px'; + audioEngineContext.audioObjects[0].interfaceDOM.holder.style.marginLeft = diff + 'px'; + for (var i in audioEngineContext.audioObjects) + { + audioEngineContext.audioObjects[i].interfaceDOM.resize(event); + } } @@ -227,7 +269,7 @@ // Check that the anchor and reference objects are correctly placed if (interfaceContext.checkHiddenAnchor() == false) {return;} if (interfaceContext.checkHiddenReference() == false) {return;} - /* + for (var i=0; i