Mercurial > hg > webaudioevaluationtool
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; |