comparison interfaces/ordinal.js @ 2845:be138735977b

#141 Publishing ordinal with example XML
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Tue, 25 Apr 2017 15:40:31 +0100
parents f7ea4470bdd6
children 64a83c964fae
comparison
equal deleted inserted replaced
2844:f7ea4470bdd6 2845:be138735977b
75 outsideRef.id = "outside-reference-holder"; 75 outsideRef.id = "outside-reference-holder";
76 76
77 // Create a slider box 77 // Create a slider box
78 var slider = document.createElement("div"); 78 var slider = document.createElement("div");
79 slider.id = "slider"; 79 slider.id = "slider";
80 slider.style.height = "300px";
80 81
81 // Global parent for the comment boxes on the page 82 // Global parent for the comment boxes on the page
82 var feedbackHolder = document.createElement('div'); 83 var feedbackHolder = document.createElement('div');
83 feedbackHolder.id = 'feedbackHolder'; 84 feedbackHolder.id = 'feedbackHolder';
84 85
159 160
160 sliderBox.appendChild(sliderObj.root); 161 sliderBox.appendChild(sliderObj.root);
161 audioObject.bindInterface(sliderObj); 162 audioObject.bindInterface(sliderObj);
162 interfaceContext.commentBoxes.createCommentBox(audioObject); 163 interfaceContext.commentBoxes.createCommentBox(audioObject);
163 index += 1; 164 index += 1;
165 }
166 });
167 interfaceObj.options.forEach(function (option) {
168 if (option.type == "show") {
169 switch (option.name) {
170 case "playhead":
171 var playbackHolder = document.getElementById('playback-holder');
172 if (playbackHolder === null) {
173 playbackHolder = document.createElement('div');
174 playbackHolder.style.width = "100%";
175 playbackHolder.align = 'center';
176 playbackHolder.appendChild(interfaceContext.playhead.object);
177 feedbackHolder.appendChild(playbackHolder);
178 }
179 break;
180 case "page-count":
181 var pagecountHolder = document.getElementById('page-count');
182 if (pagecountHolder === null) {
183 pagecountHolder = document.createElement('div');
184 pagecountHolder.id = 'page-count';
185 }
186 pagecountHolder.innerHTML = '<span>Page ' + (testState.stateIndex + 1) + ' of ' + testState.stateMap.length + '</span>';
187 var inject = document.getElementById('interface-buttons');
188 inject.appendChild(pagecountHolder);
189 break;
190 case "volume":
191 if (document.getElementById('master-volume-holder') === null) {
192 feedbackHolder.appendChild(interfaceContext.volume.object);
193 }
194 break;
195 case "comments":
196 interfaceContext.commentBoxes.showCommentBoxes(feedbackHolder, true);
197 break;
198 }
164 } 199 }
165 }); 200 });
166 resizeWindow(); 201 resizeWindow();
167 } 202 }
168 203
292 while (root !== elem) { 327 while (root !== elem) {
293 position++; 328 position++;
294 elem = elem.nextElementSibling; 329 elem = elem.nextElementSibling;
295 } 330 }
296 return position; 331 return position;
297 } 332 };
298 333
299 this.processMovement = function () { 334 this.processMovement = function () {
300 var time = audioEngineContext.timer.getTestTime(); 335 var time = audioEngineContext.timer.getTestTime();
301 var pos = this.getElementPosition(); 336 var pos = this.getElementPosition();
302 var rank = pos / (audioEngineContext.audioObjects.length - 1); 337 var rank = pos / (audioEngineContext.audioObjects.length - 1);
303 audioObject.metric.moved(time, rank); 338 audioObject.metric.moved(time, rank);
304 console.log('slider ' + audioObject.id + ' moved to ' + rank + ' (' + time + ')'); 339 console.log('slider ' + audioObject.id + ' moved to ' + rank + ' (' + time + ')');
305 } 340 };
306 341
307 this.enable = function () { 342 this.enable = function () {
308 // This is used to tell the interface object that playback of this node is ready 343 // This is used to tell the interface object that playback of this node is ready
309 root.classList.remove("disabled"); 344 root.classList.remove("disabled");
310 labelElement.textContent = label; 345 labelElement.textContent = label;
314 labelElement.textContent = String(progress); 349 labelElement.textContent = String(progress);
315 }; 350 };
316 this.startPlayback = function () { 351 this.startPlayback = function () {
317 // Called when playback has begun 352 // Called when playback has begun
318 root.classList.add("playing"); 353 root.classList.add("playing");
354 if (audioObject.commentDOM) {
355 audioObject.commentDOM.trackComment.classList.add("comment-box-playing");
356 }
319 }; 357 };
320 this.stopPlayback = function () { 358 this.stopPlayback = function () {
321 // Called when playback has stopped. This gets called even if playback never started! 359 // Called when playback has stopped. This gets called even if playback never started!
322 root.classList.remove("playing"); 360 root.classList.remove("playing");
361 playing = false;
362 if (audioObject.commentDOM) {
363 audioObject.commentDOM.trackComment.classList.remove("comment-box-playing");
364 }
323 }; 365 };
324 this.getValue = function () { 366 this.getValue = function () {
325 // Return the current value of the object. If there is no value, return 0 367 // Return the current value of the object. If there is no value, return 0
326 var pos = this.getElementPosition(); 368 var pos = this.getElementPosition();
327 var rank = pos / (audioEngineContext.audioObjects.length - 1); 369 var rank = pos / (audioEngineContext.audioObjects.length - 1);
364 // Called on every window resize event, use this to scale your page properly 406 // Called on every window resize event, use this to scale your page properly
365 var w = $("#slider").width(); 407 var w = $("#slider").width();
366 var N = audioEngineContext.audioObjects.length; 408 var N = audioEngineContext.audioObjects.length;
367 w /= N; 409 w /= N;
368 w -= 14; 410 w -= 14;
411 w = Math.floor(w);
369 $(".ordinal-element").width(w); 412 $(".ordinal-element").width(w);
370 } 413 }
371 414
372 function buttonSubmitClick() { 415 function buttonSubmitClick() {
373 416