comparison interfaces/horizontal-sliders.js @ 1268:a7ad6fc6a3b2

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 ba6b9e1aaef5
children 426995e02e79
comparison
equal deleted inserted replaced
1267:ff7d0fb646f1 1268:a7ad6fc6a3b2
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":
349 // audioObject has an error!! 349 // audioObject has an error!!
350 this.playback.textContent = "Error"; 350 this.playback.textContent = "Error";
351 $(this.playback).addClass("error-colour"); 351 $(this.playback).addClass("error-colour");
352 } 352 }
353 }; 353 };
354
355 function outsideReferenceDOM(audioObject,index,inject)
356 {
357 this.parent = audioObject;
358 this.outsideReferenceHolder = document.createElement('button');
359 this.outsideReferenceHolder.id = 'outside-reference';
360 this.outsideReferenceHolder.className = 'outside-reference';
361 this.outsideReferenceHolder.setAttribute('track-id',index);
362 this.outsideReferenceHolder.textContent = "Play Reference";
363 this.outsideReferenceHolder.disabled = true;
364
365 this.outsideReferenceHolder.onclick = function(event)
366 {
367 audioEngineContext.play(event.currentTarget.getAttribute('track-id'));
368 };
369 inject.appendChild(this.outsideReferenceHolder);
370 this.enable = function()
371 {
372 if (this.parent.state == 1)
373 {
374 this.outsideReferenceHolder.disabled = false;
375 }
376 };
377 this.updateLoading = function(progress)
378 {
379 if (progress != 100)
380 {
381 progress = String(progress);
382 progress = progress.split('.')[0];
383 this.outsideReferenceHolder[0].children[0].textContent = progress+'%';
384 } else {
385 this.outsideReferenceHolder[0].children[0].textContent = "Play Reference";
386 }
387 };
388 this.startPlayback = function()
389 {
390 // Called when playback has begun
391 $('.track-slider').removeClass('track-slider-playing');
392 $('.comment-div').removeClass('comment-box-playing');
393 $(this.outsideReferenceHolder).addClass('track-slider-playing');
394 };
395 this.stopPlayback = function()
396 {
397 // Called when playback has stopped. This gets called even if playback never started!
398 $(this.outsideReferenceHolder).removeClass('track-slider-playing');
399 };
400 this.exportXMLDOM = function(audioObject)
401 {
402 return null;
403 };
404 this.getValue = function()
405 {
406 return 0;
407 };
408 this.getPresentedId = function()
409 {
410 return 'reference';
411 };
412 this.canMove = function()
413 {
414 return false;
415 };
416 this.error = function() {
417 // audioObject has an error!!
418 this.outsideReferenceHolder.textContent = "Error";
419 $(this.outsideReferenceHolder).addClass("error-colour");
420 }
421 }
422 354
423 function resizeWindow(event) 355 function resizeWindow(event)
424 { 356 {
425 // Called on every window resize event, use this to scale your page properly 357 // Called on every window resize event, use this to scale your page properly
426 358