changeset 2168:af79a7f6a38b

Possible fix for #1673 and #1674
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Mon, 21 Mar 2016 14:31:43 +0000
parents 251c167bf42e
children b1675f657e3c
files interfaces/ape.js
diffstat 1 files changed, 23 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/interfaces/ape.js	Mon Mar 21 13:46:31 2016 +0000
+++ b/interfaces/ape.js	Mon Mar 21 14:31:43 2016 +0000
@@ -354,7 +354,7 @@
 			audioObject.bindInterface(orNode);
 		} else {
 			// Create a slider per track
-			var sliderNode = new sliderObject(audioObject,interfaceObj);
+			var sliderNode = new sliderObject(audioObject,interfaceObj,index);
 			audioObject.bindInterface(sliderNode);
             interfaceContext.commentBoxes.createCommentBox(audioObject);
 		}
@@ -514,7 +514,7 @@
 		scaleDOM.style.left = Math.floor((pixelPosition-($(scaleDOM).width()/2)))+'px';
 	}
 	
-	this.createSliderObject = function(audioObject)
+	this.createSliderObject = function(audioObject,label)
 	{
 		var trackObj = document.createElement('div');
         trackObj.align = "center";
@@ -535,22 +535,9 @@
 		this.canvas.appendChild(trackObj);
 		this.sliders.push(trackObj);
 		this.metrics.push(new metricTracker(this));
-		var label = document.createElement("label");
-        switch(audioObject.specification.parent.label) {
-            case "letter":
-                label.textContent = String.fromCharCode(97 + this.metrics.length-1);
-                break;
-            case "capital":
-                label.textContent = String.fromCharCode(65 + this.metrics.length-1);
-                break;
-            case "none":
-                label.textContent = "";
-                break;
-            default:
-                label.textContent = ""+this.metrics.length;
-                break;
-        }
-        trackObj.appendChild(label);
+		var labelHolder = document.createElement("span");
+        labelHolder.textContent = label;
+        trackObj.appendChild(labelHolder);
 		this.metrics[this.metrics.length-1].initialise(convSliderPosToRate(trackObj));
 		return trackObj;
 	};
@@ -588,13 +575,28 @@
 	};
 }
 
-function sliderObject(audioObject,interfaceObjects) {
+function sliderObject(audioObject,interfaceObjects,index) {
 	// Create a new slider object;
 	this.parent = audioObject;
 	this.trackSliderObjects = [];
+    this.label = null;
+    switch(audioObject.specification.parent.label) {
+        case "letter":
+            this.label = String.fromCharCode(97 + index);
+            break;
+        case "capital":
+            this.label = String.fromCharCode(65 + index);
+            break;
+        case "none":
+            this.label = "";
+            break;
+        default:
+            this.label = ""+(index+1);
+            break;
+    }
 	for (var i=0; i<interfaceContext.interfaceSliders.length; i++)
 	{
-		var trackObj = interfaceContext.interfaceSliders[i].createSliderObject(audioObject);
+		var trackObj = interfaceContext.interfaceSliders[i].createSliderObject(audioObject,this.label);
 		this.trackSliderObjects.push(trackObj);
 	}
 
@@ -653,7 +655,7 @@
 	};
 	this.getPresentedId = function()
 	{
-		return this.trackSliderObjects[0].children[0].textContent;
+		return this.label;
 	};
 	this.canMove = function()
 	{