changeset 1910:46fe764580fb

Fixed Feature #1270. All interfaces (except ABX) support outside-reference.
author Nicholas Jillings <nickjillings@users.noreply.github.com>
date Tue, 22 Mar 2016 12:09:08 +0000
parents 7fb0a3d87c8a
children db2a2a4a773e
files core.css interfaces/AB.css interfaces/AB.js
diffstat 3 files changed, 48 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/core.css	Tue Mar 22 11:52:12 2016 +0000
+++ b/core.css	Tue Mar 22 12:09:08 2016 +0000
@@ -101,6 +101,13 @@
 	top: 0px;
 }
 
+button.outside-reference {
+	width:120px;
+	height:20px;
+	margin-bottom:5px;
+	position: absolute;
+}
+
 textarea.trackComment {
 	max-width: 594px;
 	min-width: 350px;
--- a/interfaces/AB.css	Tue Mar 22 11:52:12 2016 +0000
+++ b/interfaces/AB.css	Tue Mar 22 12:09:08 2016 +0000
@@ -6,7 +6,7 @@
 div.pageTitle {
 	width: auto;
 	height: 20px;
-	margin-top: 20px;
+	margin: 10px 0px;
 }
 
 div.pageTitle span{
@@ -37,6 +37,17 @@
 	font-size: 1.2em;
 }
 
+div.interface-buttons {
+    height: 40px;
+}
+
+button.outside-reference {
+	width:120px;
+	height:40px;
+	margin-bottom:5px;
+	position: absolute;
+}
+
 div.comparator-holder {
 	width: 260px;
 	height: 300px;
--- a/interfaces/AB.js	Tue Mar 22 11:52:12 2016 +0000
+++ b/interfaces/AB.js	Tue Mar 22 12:09:08 2016 +0000
@@ -303,30 +303,32 @@
 	for (var index=0; index<audioHolderObject.audioElements.length; index++)
 	{
 		var element = audioHolderObject.audioElements[index];
+        var audioObject = audioEngineContext.newTrack(element);
 		if (index == audioHolderObject.outsideReference || element.type == 'outside-reference')
 		{
-			console.log("WARNING - AB cannot have fixed reference");
-		}
-		var audioObject = audioEngineContext.newTrack(element);
-        var label;
-        switch(audioObject.specification.parent.label) {
-            case "none":
-                label = "";
-                break;
-            case "number":
-                label = ""+index;
-                break;
-            case "letter":
-                label = String.fromCharCode(97 + index);
-                break;
-            default:
-                label = String.fromCharCode(65 + index);
-                break;
+            var orNode = new interfaceContext.outsideReferenceDOM(audioObject,index,document.getElementById('interface-buttons'));
+			audioObject.bindInterface(orNode);
+        } else {
+            var label;
+            switch(audioObject.specification.parent.label) {
+                case "none":
+                    label = "";
+                    break;
+                case "number":
+                    label = ""+index;
+                    break;
+                case "letter":
+                    label = String.fromCharCode(97 + index);
+                    break;
+                default:
+                    label = String.fromCharCode(65 + index);
+                    break;
+            }
+            var node = new this.comparatorBox(audioObject,index,label);
+            audioObject.bindInterface(node);
+            this.comparators.push(node);
+            this.boxHolders.appendChild(node.box);
         }
-		var node = new this.comparatorBox(audioObject,index,label);
-		audioObject.bindInterface(node);
-		this.comparators.push(node);
-		this.boxHolders.appendChild(node.box);
 	}
 	return this;
 }
@@ -346,6 +348,12 @@
     document.getElementById('box-holders').style.marginLeft = diff/2 + 'px';
     document.getElementById('box-holders').style.marginRight = diff/2 + 'px';
     document.getElementById('box-holders').style.width = boxW + 'px';
+    
+    var outsideRef = document.getElementById('outside-reference');
+	if(outsideRef != null)
+	{
+		outsideRef.style.left = (window.innerWidth-120)/2 + 'px';
+	}
 }
 
 function buttonSubmitClick()