# HG changeset patch # User Nicholas Jillings # Date 1463408816 -3600 # Node ID 971acb7e3fab4d0bf6c2849434eb4ff543baffd4 # Parent c812d5cc2dc6987f4de8b5512212df3f345d412f Better way to do #52, easier to modify in the future with more interfaces etc requiring specific test scenarios. diff -r c812d5cc2dc6 -r 971acb7e3fab interfaces/AB.js --- a/interfaces/AB.js Mon May 16 15:23:54 2016 +0100 +++ b/interfaces/AB.js Mon May 16 15:26:56 2016 +0100 @@ -9,6 +9,30 @@ // Custom comparator Object Interface.prototype.comparator = null; + + Interface.prototype.checkScaleRange = function(min, max) { + var page = testState.getCurrentTestPage(); + var audioObjects = audioEngineContext.audioObjects; + var state = true; + var str = "Please keep listening. "; + var minRanking = Infinity; + var maxRanking = -Infinity; + for (var ao of audioObjects) { + var rank = ao.interfaceDOM.getValue(); + if (rank < minRanking) {minRanking = rank;} + if (rank > maxRanking) {maxRanking = rank;} + } + if (maxRanking*100 < max) { + str += "At least one fragment must be selected." + state = false; + } + if (!state) { + console.log(str); + this.storeErrorNode(str); + alert(str); + } + return state; + } // The injection point into the HTML page interfaceContext.insertPoint = document.getElementById("topLevelBody"); diff -r c812d5cc2dc6 -r 971acb7e3fab interfaces/ABX.js --- a/interfaces/ABX.js Mon May 16 15:23:54 2016 +0100 +++ b/interfaces/ABX.js Mon May 16 15:26:56 2016 +0100 @@ -12,6 +12,30 @@ interfaceContext.insertPoint.innerHTML = null; // Clear the current schema + Interface.prototype.checkScaleRange = function(min, max) { + var page = testState.getCurrentTestPage(); + var audioObjects = audioEngineContext.audioObjects; + var state = true; + var str = "Please keep listening. "; + var minRanking = Infinity; + var maxRanking = -Infinity; + for (var ao of audioObjects) { + var rank = ao.interfaceDOM.getValue(); + if (rank < minRanking) {minRanking = rank;} + if (rank > maxRanking) {maxRanking = rank;} + } + if (maxRanking*100 < max) { + str += "At least one fragment must be selected." + state = false; + } + if (!state) { + console.log(str); + this.storeErrorNode(str); + alert(str); + } + return state; + } + // Custom comparator Object Interface.prototype.comparator = null;