# HG changeset patch # User Nicholas Jillings # Date 1434555793 -3600 # Node ID 9e27ca8110516ec37b9369e155cb0be1d0d2ad46 # Parent 0560fe84fde6aacbc406ebe2511393c76911564e# Parent d8bad6edaa9560fe90fd74b40915ca70d5a9b2c5 Merge into default diff -r 0560fe84fde6 -r 9e27ca811051 ape.js --- a/ape.js Wed Jun 17 15:27:11 2015 +0100 +++ b/ape.js Wed Jun 17 16:43:13 2015 +0100 @@ -59,6 +59,94 @@ console.log('slider ' + id + ' played (' + time + ')'); // DEBUG/SAFETY: show played slider id }; + // Bindings for interfaceContext + Interface.prototype.checkAllPlayed = function() + { + hasBeenPlayed = audioEngineContext.checkAllPlayed(); + if (hasBeenPlayed.length > 0) // if a fragment has not been played yet + { + str = ""; + if (hasBeenPlayed.length > 1) { + for (var i=0; i 1) { + var str = ""; + for (var i=0; i 1) { + var str = ""; + 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; + } + } + } + } + } + + for (var i=0; i 1) { - for (var i=0; i 0) { + commonInterfaceNode = commonInterfaceNode[0]; + } else { + commonInterfaceNode = undefined; + } + + this.commonInterface = new function() { + this.OptionNode = function(child) { + this.type = child.nodeName; + if (this.type == 'check') { + this.check = child.getAttribute('name'); + } else if (this.type == 'anchor' || this.type == 'reference') { + this.value = Number(child.textContent); + } + }; + this.options = []; + if (commonInterfaceNode != undefined) { + var child = commonInterfaceNode.firstElementChild; + while (child != undefined) { + this.options.push(new this.OptionNode(child)); + child = child.nextElementSibling; + } + } + }; + var audioHolders = projectXML.getElementsByTagName('audioHolder'); for (var i=0; i 1 && anchor < 100) {anchor /= 100.0;} + } + + if (typeof(reference) == 'number') { + if (reference > 1 && reference < 100) {reference /= 100.0;} + } + this.preTest = new parent.prepostNode('pretest',xml.getElementsByTagName('PreTest')); this.postTest = new parent.prepostNode('posttest',xml.getElementsByTagName('PostTest')); @@ -1410,6 +1498,34 @@ this.audioElements.push(new this.audioElementNode(this,audioElementsDOM[i])); } + // Check only one anchor and one reference per audioNode + var anchor = []; + var reference = []; + 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'); + 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'); + for (var i=0; ielementFlagMoved elementListenTracker + + + 20 + 80 + @@ -44,7 +52,7 @@ 20 Comment on fragment - + @@ -86,8 +94,8 @@ 75 Comment on fragment - - + +