Mercurial > hg > webaudioevaluationtool
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 |