Mercurial > hg > webaudioevaluationtool
comparison interfaces/AB.js @ 2607:342ef7948c47
#37. All interfaces use interfaceContext.getLabel to generate labels
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Mon, 14 Nov 2016 16:12:34 +0000 |
parents | 1c8aac0ee5e9 |
children | e3cf3c24149e |
comparison
equal
deleted
inserted
replaced
2606:ac9b08b961c0 | 2607:342ef7948c47 |
---|---|
349 this.boxHolders = document.getElementById('box-holders'); | 349 this.boxHolders = document.getElementById('box-holders'); |
350 this.boxHolders.innerHTML = ""; | 350 this.boxHolders.innerHTML = ""; |
351 this.comparators = []; | 351 this.comparators = []; |
352 this.selected = null; | 352 this.selected = null; |
353 | 353 |
354 var labelType = audioHolderObject.label; | |
355 if (labelType == "default") { | |
356 labelType = "capital"; | |
357 } | |
358 | |
354 // First generate the Audio Objects for the Audio Engine | 359 // First generate the Audio Objects for the Audio Engine |
355 var label = audioHolderObject.labelStart; | |
356 if (label == "") { | |
357 switch (audioHolderObject.label) { | |
358 case "number": | |
359 label = "1"; | |
360 break; | |
361 case "letter": | |
362 label = "a"; | |
363 break; | |
364 case "none": | |
365 label = ""; | |
366 break; | |
367 case "capital": | |
368 default: | |
369 label = "A"; | |
370 break; | |
371 } | |
372 } else { | |
373 switch (audioHolderObject.label) { | |
374 case "number": | |
375 if (!isFinite(Number(label))) { | |
376 label = "1"; | |
377 } | |
378 break; | |
379 case "letter": | |
380 if (label.charCodeAt(0) < 97 || label.charCodeAt(0) > 122) { | |
381 label = "a"; | |
382 } | |
383 break; | |
384 case "none": | |
385 label = ""; | |
386 break; | |
387 case "capital": | |
388 default: | |
389 if (label.charCodeAt(0) < 65 || label.charCodeAt(0) > 90) { | |
390 label = "A"; | |
391 } | |
392 break; | |
393 } | |
394 } | |
395 for (var index = 0; index < audioHolderObject.audioElements.length; index++) { | 360 for (var index = 0; index < audioHolderObject.audioElements.length; index++) { |
396 var element = audioHolderObject.audioElements[index]; | 361 var element = audioHolderObject.audioElements[index]; |
397 var audioObject = audioEngineContext.newTrack(element); | 362 var audioObject = audioEngineContext.newTrack(element); |
398 if (index == audioHolderObject.outsideReference || element.type == 'outside-reference') { | 363 if (index == audioHolderObject.outsideReference || element.type == 'outside-reference') { |
399 var orNode = new interfaceContext.outsideReferenceDOM(audioObject, index, document.getElementById("outside-reference-holder")); | 364 var orNode = new interfaceContext.outsideReferenceDOM(audioObject, index, document.getElementById("outside-reference-holder")); |
400 audioObject.bindInterface(orNode); | 365 audioObject.bindInterface(orNode); |
401 } else { | 366 } else { |
367 var label = interfaceContext.getLabel(labelType, index, audioHolderObject.labelStart); | |
402 var node = new this.comparatorBox(audioObject, index, label); | 368 var node = new this.comparatorBox(audioObject, index, label); |
403 switch (audioHolderObject.label) { | |
404 case "none": | |
405 label = ""; | |
406 break; | |
407 case "number": | |
408 label = (Number(label) + 1).toString(10); | |
409 break; | |
410 case "letter": | |
411 label = String.fromCharCode((label.charCodeAt(0) - 96) % 26 + 97); | |
412 break; | |
413 case "capital": | |
414 default: | |
415 label = String.fromCharCode((label.charCodeAt(0) - 64) % 26 + 65); | |
416 break; | |
417 } | |
418 audioObject.bindInterface(node); | 369 audioObject.bindInterface(node); |
419 this.comparators.push(node); | 370 this.comparators.push(node); |
420 this.boxHolders.appendChild(node.box); | 371 this.boxHolders.appendChild(node.box); |
421 } | 372 } |
422 } | 373 } |