# HG changeset patch # User Brecht De Man # Date 1435601080 -3600 # Node ID 7a8fcf04aad3a0b878d2baff279940867ff8db8b # Parent ba83143187d687af6fb25e0add1a9762d2f42e35# Parent 01fcd75067c13fa018f4e392f600bd12084d32b6 Merge diff -r ba83143187d6 -r 7a8fcf04aad3 ape.js --- a/ape.js Mon Jun 29 19:02:48 2015 +0100 +++ b/ape.js Mon Jun 29 19:04:40 2015 +0100 @@ -147,6 +147,40 @@ return state; }; + Interface.prototype.checkScaleRange = function() + { + var audioObjs = audioEngineContext.audioObjects; + var audioHolder = testState.stateMap[testState.stateIndex]; + var interfaces = audioHolder.interfaces; + + var minRanking = audioObjs[0].interfaceDOM.getValue(); + var maxRanking = minRanking; + + var minScale; + var maxScale; + for (var i=0; i maxRanking) { maxRanking = ranking;} + } + } + if (minRanking > minScale || maxRanking < maxScale) { + alert('Please use the full width of the scale'); + return false; + } else { + return true; + } + }; + // Bindings for audioObjects // Create the top div for the Title element @@ -264,11 +298,11 @@ feedbackHolder.innerHTML = null; canvas.innerHTML = null; - //var playbackHolder = document.createElement('div'); - //playbackHolder.style.width = "100%"; - //playbackHolder.align = 'center'; - //playbackHolder.appendChild(interfaceContext.playhead.object); - //feedbackHolder.appendChild(playbackHolder); + var playbackHolder = document.createElement('div'); + playbackHolder.style.width = "100%"; + playbackHolder.align = 'center'; + playbackHolder.appendChild(interfaceContext.playhead.object); + feedbackHolder.appendChild(playbackHolder); // Setup question title var interfaceObj = audioHolderObject.interfaces; var commentBoxPrefix = "Comment on track"; @@ -323,14 +357,6 @@ currentTestHolder.id = audioHolderObject.id; currentTestHolder.repeatCount = audioHolderObject.repeatCount; - var randomise = audioHolderObject.randomiseOrder; - - var audioElements = audioHolderObject.audioElements; - currentTrackOrder = []; - if (randomise) { - audioHolderObject.audioElements = randomiseOrder(audioHolderObject.audioElements); - } - // Delete any previous audioObjects associated with the audioEngine audioEngineContext.audioObjects = []; interfaceContext.deleteCommentBoxes(); @@ -369,6 +395,31 @@ feedbackHolder.appendChild(node.holder); }); + // Construct outside reference; + if (audioHolderObject.outsideReference != null) { + var outsideReferenceHolder = document.createElement('div'); + outsideReferenceHolder.id = 'outside-reference'; + outsideReferenceHolderspan = document.createElement('span'); + outsideReferenceHolderspan.textContent = 'Reference'; + outsideReferenceHolder.appendChild(outsideReferenceHolderspan); + + var audioObject = audioEngineContext.newTrack(audioHolderObject.outsideReference); + + outsideReferenceHolder.onclick = function() + { + audioEngineContext.play(audioEngineContext.audioObjects.length-1); + $('.track-slider').removeClass('track-slider-playing'); + $('.comment-div').removeClass('comment-box-playing'); + if (event.srcElement.nodeName == 'DIV') { + $(event.srcElement).addClass('track-slider-playing'); + } else { + $(event.srcElement.parentElement).addClass('track-slider-playing'); + } + }; + + document.getElementById('interface-buttons').appendChild(outsideReferenceHolder); + } + testWaitIndicator(); } @@ -408,6 +459,9 @@ $(element).addClass('track-slider-playing'); $('.comment-div').removeClass('comment-box-playing'); $('#comment-div-'+id).addClass('comment-box-playing'); + var outsideReference = document.getElementById('outside-reference'); + if (outsideReference != undefined) + $(outsideReference).removeClass('track-slider-playing'); } }; @@ -445,66 +499,12 @@ function buttonSubmitClick() // TODO: Only when all songs have been played! { - var checks = specification.commonInterface.options; + var checks = testState.currentStateMap[testState.currentIndex].interfaces[0].options; var canContinue = true; // Check that the anchor and reference objects are correctly placed - var audioObjs = audioEngineContext.audioObjects; - var audioHolder = testState.stateMap[testState.stateIndex]; - var anchorId = null; - var referenceId = null; - for (var i=0; i audioObjs[anchorId].specification.marker) - { - // Anchor is not set below - console.log('Anchor node not below marker value'); - alert('Please keep listening'); - return; - } - } else { - // No marker value given, ensure it is the minimum value - var anchorVal = audioObjs[anchorId].interfaceDOM.getValue(); - for (var i=0; i audioObjs[i].interfaceDOM.getValue()) { - // Anchor not the minimum - console.log('No marker set, anchor node not the minimum'); - alert('Please keep listening'); - return; - } - } - } - } - } - if (referenceId != null) { - if (audioObjs[referenceId].specification.marker != null) { - if (audioObjs[referenceId].interfaceDOM.getValue() < audioObjs[referenceId].specification.marker) - { - // Anchor is not set below - console.log('Reference node not above marker value'); - alert('Please keep listening'); - return; - } - } else { - // No marker value given, ensure it is the minimum value - var referenceVal = audioObjs[referenceId].interfaceDOM.getValue(); - for (var i=0; i audioObjs[i].interfaceDOM.getValue()) { - // Anchor not the minimum - console.log('No marker set, reference node not the maximum'); - alert('Please keep listening'); - return; - } - } - } - } - } + if (interfaceContext.checkHiddenAnchor() == false) {return;} + if (interfaceContext.checkHiddenReference() == false) {return;} for (var i=0; i 1 && this.min != null) { + this.min = Number(this.min)/100; + } else { + this.min = Number(this.min); + } + if (this.max == null) {this.max = 0;} + else if (Number(this.max) > 1 && this.max != null) { + this.max = Number(this.max)/100; + } else { + this.max = Number(this.max); + } + } } else if (this.type == 'anchor' || this.type == 'reference') { this.value = Number(child.textContent); } @@ -1345,7 +1373,7 @@ var title = DOM.getElementsByTagName('title'); if (title.length == 0) {this.title = null;} else {this.title = title[0].textContent;} - + this.options = parent.commonInterface.options; var scale = DOM.getElementsByTagName('scale'); this.scale = []; for (var i=0; i 1) {this.marker /= 100;} + } }; this.commentQuestionNode = function(xml) { @@ -1494,13 +1522,30 @@ this.audioElements =[]; var audioElementsDOM = xml.getElementsByTagName('audioElements'); + this.outsideReference = null; for (var i=0; i 1) { console.log('Error - cannot have more than one anchor!'); console.log('Each anchor node will be a normal mode to continue the test'); @@ -1524,7 +1569,7 @@ this.audioElements[reference[i]].reference = false; this.audioElements[reference[i]].value = undefined; } - } + } else {this.referenceId = reference[0];} this.commentQuestions = []; var commentQuestionsDOM = xml.getElementsByTagName('CommentQuestion'); @@ -1798,7 +1843,7 @@ this.deleteCommentBoxes = function() { this.commentBoxes = []; - } + }; this.createCommentQuestion = function(element) { var node; @@ -1888,5 +1933,41 @@ this.interval = undefined; }; }; + + // Global Checkers + // These functions will help enforce the checkers + this.checkHiddenAnchor = function() + { + var audioHolder = testState.currentStateMap[testState.currentIndex]; + if (audioHolder.anchorId != null) + { + var audioObject = audioEngineContext.audioObjects[audioHolder.anchorId]; + if (audioObject.interfaceDOM.getValue() > audioObject.specification.marker) + { + // Anchor is not set below + console.log('Anchor node not below marker value'); + alert('Please keep listening'); + return false; + } + } + return true; + }; + + this.checkHiddenReference = function() + { + var audioHolder = testState.currentStateMap[testState.currentIndex]; + if (audioHolder.referenceId != null) + { + var audioObject = audioEngineContext.audioObjects[audioHolder.referenceId]; + if (audioObject.interfaceDOM.getValue() < audioObject.specification.marker) + { + // Anchor is not set below + console.log('Reference node not above marker value'); + alert('Please keep listening'); + return false; + } + } + return true; + }; } diff -r ba83143187d6 -r 7a8fcf04aad3 example_eval/project.xml --- a/example_eval/project.xml Mon Jun 29 19:02:48 2015 +0100 +++ b/example_eval/project.xml Mon Jun 29 19:04:40 2015 +0100 @@ -1,6 +1,6 @@ - + Please enter your location. @@ -39,8 +39,7 @@ --> - 20 - 80 + @@ -51,21 +50,22 @@ Middle 20 Comment on fragment + 40 - + - - + + - General Comments + What is your mixing experience - What do you think of the song? + Please enter your ranking preference on this song @@ -73,7 +73,7 @@ - This song is... + Describe this song @@ -92,10 +92,11 @@ Max Middle 75 + Comment on fragment - - + +