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 }