comparison interfaces/discrete.js @ 634:501997c0f61f Dev_main

Outside Reference HTML now in core interfaceContext.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Tue, 22 Mar 2016 11:52:12 +0000
parents 640ffb822da1
children
comparison
equal deleted inserted replaced
633:5b902e1f737c 634:501997c0f61f
192 192
193 var audioObject = audioEngineContext.newTrack(element); 193 var audioObject = audioEngineContext.newTrack(element);
194 if (element.type == 'outside-reference') 194 if (element.type == 'outside-reference')
195 { 195 {
196 // Construct outside reference; 196 // Construct outside reference;
197 var orNode = new outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); 197 var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons'));
198 audioObject.bindInterface(orNode); 198 audioObject.bindInterface(orNode);
199 } else { 199 } else {
200 // Create a slider per track 200 // Create a slider per track
201 switch(audioObject.specification.parent.label) { 201 switch(audioObject.specification.parent.label) {
202 case "none": 202 case "none":
396 // audioObject has an error!! 396 // audioObject has an error!!
397 this.playback.textContent = "Error"; 397 this.playback.textContent = "Error";
398 $(this.playback).addClass("error-colour"); 398 $(this.playback).addClass("error-colour");
399 } 399 }
400 }; 400 };
401
402 function outsideReferenceDOM(audioObject,index,inject)
403 {
404 this.parent = audioObject;
405 this.outsideReferenceHolder = document.createElement('button');
406 this.outsideReferenceHolder.id = 'outside-reference';
407 this.outsideReferenceHolder.className = 'outside-reference';
408 this.outsideReferenceHolder.setAttribute('track-id',index);
409 this.outsideReferenceHolder.textContent = "Play Reference";
410 this.outsideReferenceHolder.disabled = true;
411
412 this.outsideReferenceHolder.onclick = function(event)
413 {
414 if (event.currentTarget.textContent == "Play Reference") {
415 audioEngineContext.play(event.currentTarget.getAttribute('track-id'));
416 } else {
417 audioEngineContext.stop();
418 }
419 };
420 inject.appendChild(this.outsideReferenceHolder);
421 this.enable = function()
422 {
423 if (this.parent.state == 1)
424 {
425 this.outsideReferenceHolder.disabled = false;
426 }
427 };
428 this.updateLoading = function(progress)
429 {
430 if (progress != 100)
431 {
432 progress = String(progress);
433 progress = progress.split('.')[0];
434 this.outsideReferenceHolder.textContent = progress+'%';
435 } else {
436 this.outsideReferenceHolder.textContent = "Play Reference";
437 }
438 };
439 this.startPlayback = function()
440 {
441 // Called when playback has begun
442 this.outsideReferenceHolder.style.backgroundColor = "rgb(255,100,100)";
443 this.outsideReferenceHolder.textContent = "Stop";
444 };
445 this.stopPlayback = function()
446 {
447 // Called when playback has stopped. This gets called even if playback never started!
448 $(this.outsideReferenceHolder).removeClass('track-slider-playing');
449 this.outsideReferenceHolder.style.backgroundColor = "";
450 this.outsideReferenceHolder.textContent = "Play Reference";
451 };
452 this.exportXMLDOM = function(audioObject)
453 {
454 return null;
455 };
456 this.getValue = function()
457 {
458 return 0;
459 };
460 this.getPresentedId = function()
461 {
462 return 'reference';
463 };
464 this.canMove = function()
465 {
466 return false;
467 };
468 this.error = function() {
469 // audioObject has an error!!
470 this.outsideReferenceHolder.textContent = "Error";
471 $(this.outsideReferenceHolder).addClass("error-colour");
472 }
473 }
474 401
475 function resizeWindow(event) 402 function resizeWindow(event)
476 { 403 {
477 // Called on every window resize event, use this to scale your page properly 404 // Called on every window resize event, use this to scale your page properly
478 var numObj = document.getElementsByClassName('track-slider').length; 405 var numObj = document.getElementsByClassName('track-slider').length;