changeset 2359:971acb7e3fab

Better way to do #52, easier to modify in the future with more interfaces etc requiring specific test scenarios.
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Mon, 16 May 2016 15:26:56 +0100
parents c812d5cc2dc6
children c296a817dff8
files interfaces/AB.js interfaces/ABX.js
diffstat 2 files changed, 48 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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");
--- 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;