diff ape.js @ 2045:39f9dd95b8d5

Added check type 'scalerange' with min max attributes to enforce use of the scale.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Fri, 19 Jun 2015 16:31:14 +0100
parents 0129f205a08d
children aef4cbbd66d1
line wrap: on
line diff
--- a/ape.js	Thu Jun 18 16:39:40 2015 +0100
+++ b/ape.js	Fri Jun 19 16:31:14 2015 +0100
@@ -147,6 +147,38 @@
 		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<interfaces[0].options.length; i++)
+		{
+			if (interfaces[0].options[i].check == "scalerange") {
+				minScale = interfaces[0].options[i].min;
+				maxScale = interfaces[0].options[i].max;
+			}
+		}
+		
+		for (var i=1; i<audioObjs.length; i++){
+			var ranking = audioObjs[i].interfaceDOM.getValue();
+			if (ranking < minRanking) { minRanking = ranking;}
+			if (ranking > 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
@@ -530,9 +562,15 @@
 				var checkState = interfaceContext.checkAllCommented();
 				if (checkState == false) {canContinue = false;}
 				break;
+			case 'scalerange':
+				// Check the scale is used to its full width outlined by the node
+				var checkState = interfaceContext.checkScaleRange();
+				if (checkState == false) {canContinue = false;}
+				break;
 			}
 
 		}
+		if (!canContinue) {break;}
 	}
    
     if (canContinue) {