comparison js/core.js @ 2704:3a0be105ee85

#180. Fixed checkScaleRange
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Mon, 13 Mar 2017 13:29:28 +0000
parents d29471d114cf
children 8f485581ee73
comparison
equal deleted inserted replaced
2703:536cb44c7292 2704:3a0be105ee85
3286 return false; 3286 return false;
3287 } 3287 }
3288 } 3288 }
3289 return true; 3289 return true;
3290 }; 3290 };
3291 this.checkScaleRange = function (min, max) { 3291 this.checkScaleRange = function () {
3292 var page = testState.getCurrentTestPage(); 3292 var page = testState.getCurrentTestPage();
3293 var audioObjects = audioEngineContext.audioObjects; 3293 var interfaceObject = page.interfaces;
3294 var state = true; 3294 var state = true;
3295 var str = "Please keep listening. "; 3295 var str = "Please keep listening. ";
3296 var minRanking = Infinity; 3296 if (interfaceObject === undefined) {
3297 var maxRanking = -Infinity; 3297 return true;
3298 audioEngineContext.audioObjects.forEach(function (ao) { 3298 }
3299 var rank = ao.interfaceDOM.getValue(); 3299 interfaceObject = interfaceObject[0];
3300 if (rank < minRanking) { 3300 var scales = (function () {
3301 minRanking = rank; 3301 var scaleRange = interfaceObject.options.find(function (a) {
3302 } 3302 return a.name == "scalerange";
3303 if (rank > maxRanking) { 3303 });
3304 maxRanking = rank; 3304 return {
3305 } 3305 min: scaleRange.min,
3306 }, this); 3306 max: scaleRange.max
3307 if (minRanking * 100 > min) { 3307 };
3308 str += "At least one fragment must be below the " + min + " mark."; 3308 })();
3309 var range = audioEngineContext.audioObjects.reduce(function (a, b) {
3310 var v = b.interfaceDOM.getValue();
3311 return {
3312 min: Math.min(a.min, v),
3313 max: Math.max(a.max, v)
3314 }
3315 }, {
3316 min: 100,
3317 max: 0
3318 });
3319 if (range.min > scales.min) {
3320 str += "At least one fragment must be below the " + range.min + " mark.";
3309 state = false; 3321 state = false;
3310 } 3322 } else if (range.max < sacles.max) {
3311 if (maxRanking * 100 < max) { 3323 str += "At least one fragment must be above the " + range.max + " mark.";
3312 str += "At least one fragment must be above the " + max + " mark.";
3313 state = false; 3324 state = false;
3314 } 3325 }
3315 if (!state) { 3326 if (state === false) {
3316 console.log(str); 3327 console.log(str);
3317 this.storeErrorNode(str); 3328 this.storeErrorNode(str);
3318 interfaceContext.lightbox.post("Error", str); 3329 interfaceContext.lightbox.post("Error", str);
3319 } 3330 }
3320 return state; 3331 return state;