changeset 145:df5890970aba

Merge in main
author Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk>
date Sat, 30 May 2015 11:39:53 +0100
parents ea6424dc5f04 (current diff) 4c59838d1225 (diff)
children 2d08d2025258
files
diffstat 2 files changed, 8 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/ape.js	Fri May 29 16:33:50 2015 +0100
+++ b/ape.js	Sat May 30 11:39:53 2015 +0100
@@ -110,11 +110,6 @@
 	// Create APE specific metric functions
 	audioEngineContext.metric.initialiseTest = function()
 	{
-		var sliders = document.getElementsByClassName('track-slider');
-		for (var i=0; i<sliders.length; i++)
-		{
-			audioEngineContext.audioObjects[i].metric.initialised(convSliderPosToRate(i));
-		}
 	};
 	
 	audioEngineContext.metric.sliderMoveStart = function(id)
@@ -374,7 +369,6 @@
 			if (this.status == 1) {
 				this.audioObjects[id].outputGain.gain.value = 1.0;
 				this.audioObjects[id].play(audioContext.currentTime+0.01);
-                this.audioObjects[id].flagAsPlayed(); 
 			}
 		};
 	}
@@ -437,9 +431,10 @@
 		trackSliderObj.className = 'track-slider';
 		trackSliderObj.id = 'track-slider-'+index;
 		// Distribute it randomnly
-		var w = window.innerWidth - 100;
+		var w = window.innerWidth - (offset+8)*2;
 		w = Math.random()*w;
-		trackSliderObj.style.left = Math.floor(w)+50+'px';
+		w = Math.floor(w+(offset+8));
+		trackSliderObj.style.left = w+'px';
 		trackSliderObj.innerHTML = '<span>'+index+'</span>';
 		trackSliderObj.draggable = true;
 		trackSliderObj.ondragend = dragEnd;
@@ -473,6 +468,7 @@
 		};
 		
 		canvas.appendChild(trackSliderObj);
+		audioEngineContext.audioObjects[index].metric.initialised(convSliderPosToRate(index));
         
 	});
 	
--- a/core.js	Fri May 29 16:33:50 2015 +0100
+++ b/core.js	Sat May 30 11:39:53 2015 +0100
@@ -477,7 +477,7 @@
 	this.checkAllPlayed = function() {
 		arr = [];
 		for (var id=0; id<this.audioObjects.length; id++) {
-			if (this.audioObjects[id].played == false) {
+			if (this.audioObjects[id].metric.wasListenedTo == false) {
 				arr.push(this.audioObjects[id].id);
 			}
 		}
@@ -513,8 +513,6 @@
 	this.url = null; // Hold the URL given for the output back to the results.
 	this.metric = new metricTracker(this);
 	
-	this.played = false;
-	
 	// Create a buffer and external gain control to allow internal patching of effects and volume leveling.
 	this.bufferNode = undefined;
 	this.outputGain = audioContext.createGain();
@@ -528,15 +526,10 @@
 	// the audiobuffer is not designed for multi-start playback
 	// When stopeed, the buffer node is deleted and recreated with the stored buffer.
 	this.buffer;
-	
-    this.flagAsPlayed = function() { // to be called explicitly when not in loop mode
-        this.played = true;
-    }
     
 	this.loopStart = function() {
 		this.outputGain.gain.value = 1.0;
 		this.metric.startListening(audioEngineContext.timer.getTestTime());
-        this.played = true;
 	}
 	
 	this.loopStop = function() {
@@ -553,8 +546,9 @@
 		this.bufferNode.buffer = this.buffer;
 		this.bufferNode.loop = audioEngineContext.loopPlayback;
 		this.bufferNode.onended = function() {
-				this.owner.metric.stopListening(audioEngineContext.timer.getTestTime());
-			};
+			// Safari does not like using 'this' to reference the calling object!
+			event.srcElement.owner.metric.stopListening(audioEngineContext.timer.getTestTime());
+		};
 		if (this.bufferNode.loop == false) {
 			this.metric.startListening(audioEngineContext.timer.getTestTime());
 		}