comparison interfaces/mushra.js @ 1160:f0fa49f5bbb0

Interfaces have startPlayback and stopPlayback methods to clean up code management. Looping playbacks now have a 2s cross-fade.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Tue, 26 Jan 2016 13:52:56 +0000
parents 79291bafbf5e
children cb348f6208b2 c0022a09c4f6
comparison
equal deleted inserted replaced
1159:48b16162cdd0 1160:f0fa49f5bbb0
293 // Called by the audioObject holding this element. Must be present 293 // Called by the audioObject holding this element. Must be present
294 var node = storage.document.createElement('value'); 294 var node = storage.document.createElement('value');
295 node.textContent = this.slider.value; 295 node.textContent = this.slider.value;
296 return node; 296 return node;
297 }; 297 };
298 this.startPlayback = function()
299 {
300 // Called when playback has begun
301 $(".track-slider").removeClass('track-slider-playing');
302 $(this.holder).addClass('track-slider-playing');
303 var outsideReference = document.getElementById('outside-reference');
304 if (outsideReference != null) {
305 $(outsideReference).removeClass('track-slider-playing');
306 }
307 };
308 this.stopPlayback = function()
309 {
310 // Called when playback has stopped. This gets called even if playback never started!
311 $(this.holder).removeClass('track-slider-playing');
312 };
298 this.getValue = function() { 313 this.getValue = function() {
299 return this.slider.value; 314 return this.slider.value;
300 }; 315 };
301 316
302 this.resize = function(event) 317 this.resize = function(event)
336 this.outsideReferenceHolder.disabled = true; 351 this.outsideReferenceHolder.disabled = true;
337 352
338 this.outsideReferenceHolder.onclick = function(event) 353 this.outsideReferenceHolder.onclick = function(event)
339 { 354 {
340 audioEngineContext.play(event.currentTarget.getAttribute('track-id')); 355 audioEngineContext.play(event.currentTarget.getAttribute('track-id'));
341 $('.track-slider').removeClass('track-slider-playing');
342 $('.comment-div').removeClass('comment-box-playing');
343 $(event.currentTarget).addClass('track-slider-playing');
344 }; 356 };
345 inject.appendChild(this.outsideReferenceHolder); 357 inject.appendChild(this.outsideReferenceHolder);
346 this.enable = function() 358 this.enable = function()
347 { 359 {
348 if (this.parent.state == 1) 360 if (this.parent.state == 1)
359 this.outsideReferenceHolder[0].children[0].textContent = progress+'%'; 371 this.outsideReferenceHolder[0].children[0].textContent = progress+'%';
360 } else { 372 } else {
361 this.outsideReferenceHolder[0].children[0].textContent = "Play Reference"; 373 this.outsideReferenceHolder[0].children[0].textContent = "Play Reference";
362 } 374 }
363 }; 375 };
376 this.startPlayback = function()
377 {
378 // Called when playback has begun
379 $('.track-slider').removeClass('track-slider-playing');
380 $('.comment-div').removeClass('comment-box-playing');
381 $(this.outsideReferenceHolder).addClass('track-slider-playing');
382 };
383 this.stopPlayback = function()
384 {
385 // Called when playback has stopped. This gets called even if playback never started!
386 $(this.outsideReferenceHolder).removeClass('track-slider-playing');
387 };
364 this.exportXMLDOM = function(audioObject) 388 this.exportXMLDOM = function(audioObject)
365 { 389 {
366 return null; 390 return null;
367 }; 391 };
368 this.getValue = function() 392 this.getValue = function()