comparison interfaces/mushra.js @ 2176:76b11b865550

Outside Reference HTML now in core interfaceContext.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Tue, 22 Mar 2016 11:52:12 +0000
parents 686f1fb84d7c
children 426995e02e79
comparison
equal deleted inserted replaced
2175:d90cbba6299b 2176:76b11b865550
190 190
191 var audioObject = audioEngineContext.newTrack(element); 191 var audioObject = audioEngineContext.newTrack(element);
192 if (element.type == 'outside-reference') 192 if (element.type == 'outside-reference')
193 { 193 {
194 // Construct outside reference; 194 // Construct outside reference;
195 var orNode = new outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons')); 195 var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons'));
196 audioObject.bindInterface(orNode); 196 audioObject.bindInterface(orNode);
197 } else { 197 } else {
198 // Create a slider per track 198 // Create a slider per track
199 switch(audioObject.specification.parent.label) { 199 switch(audioObject.specification.parent.label) {
200 case "none": 200 case "none":
359 }; 359 };
360 this.error = function() { 360 this.error = function() {
361 // audioObject has an error!! 361 // audioObject has an error!!
362 this.playback.textContent = "Error"; 362 this.playback.textContent = "Error";
363 $(this.playback).addClass("error-colour"); 363 $(this.playback).addClass("error-colour");
364 }
365 }
366
367 function outsideReferenceDOM(audioObject,index,inject)
368 {
369 this.parent = audioObject;
370 this.outsideReferenceHolder = document.createElement('button');
371 this.outsideReferenceHolder.id = 'outside-reference';
372 this.outsideReferenceHolder.className = 'outside-reference';
373 this.outsideReferenceHolder.setAttribute('track-id',index);
374 this.outsideReferenceHolder.textContent = "Play Reference";
375 this.outsideReferenceHolder.disabled = true;
376
377 this.outsideReferenceHolder.onclick = function(event)
378 {
379 audioEngineContext.play(event.currentTarget.getAttribute('track-id'));
380 };
381 inject.appendChild(this.outsideReferenceHolder);
382 this.enable = function()
383 {
384 if (this.parent.state == 1)
385 {
386 this.outsideReferenceHolder.disabled = false;
387 }
388 };
389 this.updateLoading = function(progress)
390 {
391 if (progress != 100)
392 {
393 progress = String(progress);
394 progress = progress.split('.')[0];
395 this.outsideReferenceHolder[0].children[0].textContent = progress+'%';
396 } else {
397 this.outsideReferenceHolder[0].children[0].textContent = "Play Reference";
398 }
399 };
400 this.startPlayback = function()
401 {
402 // Called when playback has begun
403 $('.track-slider').removeClass('track-slider-playing');
404 $('.comment-div').removeClass('comment-box-playing');
405 $(this.outsideReferenceHolder).addClass('track-slider-playing');
406 };
407 this.stopPlayback = function()
408 {
409 // Called when playback has stopped. This gets called even if playback never started!
410 $(this.outsideReferenceHolder).removeClass('track-slider-playing');
411 };
412 this.exportXMLDOM = function(audioObject)
413 {
414 return null;
415 };
416 this.getValue = function()
417 {
418 return 0;
419 };
420 this.getPresentedId = function()
421 {
422 return 'reference';
423 };
424 this.canMove = function()
425 {
426 return false;
427 };
428 this.error = function() {
429 // audioObject has an error!!
430 this.outsideReferenceHolder.textContent = "Error";
431 $(this.outsideReferenceHolder).addClass("error-colour");
432 } 364 }
433 } 365 }
434 366
435 function resizeWindow(event) 367 function resizeWindow(event)
436 { 368 {