# HG changeset patch # User Nicholas Jillings # Date 1481207581 0 # Node ID d4707c4a8b98ddacf869b9b467238b29e59570a4 # Parent 88b1c15eb202e208e999d2cd37033874838a3423 #146 implemented for Mushra diff -r 88b1c15eb202 -r d4707c4a8b98 interfaces/mushra.css --- a/interfaces/mushra.css Thu Dec 08 14:03:39 2016 +0000 +++ b/interfaces/mushra.css Thu Dec 08 14:33:01 2016 +0000 @@ -7,43 +7,52 @@ /* Set the background colour (note US English spelling) to grey*/ background-color: #ddd } + div.pageTitle { width: auto; height: 20px; margin: 10px 0px; } + div.pageTitle span { font-size: 1.5em; } + button { /* Specify any button structure or style */ min-width: 20px; background-color: #ddd } + div#slider-holder { height: inherit; position: absolute; left: 0px; z-index: 3; } + div#scale-holder { height: inherit; position: absolute; left: 0px; z-index: 2; } + div#scale-text-holder { position: relative; width: 100px; float: left; } + div.scale-text { position: absolute; } + canvas#scale-canvas { position: relative; float: left; } + div.track-slider { float: left; width: 94px; @@ -53,22 +62,27 @@ padding: 2px; margin-left: 50px; } + div#outside-reference-holder { display: flex; align-content: center; justify-content: center; margin-bottom: 5px; } + button.outside-reference { position: inherit; margin: 0px 5px; } + div.track-slider-playing { background-color: #FFDDDD; } + input.track-slider-range { margin: 2px 0px; } + input[type=range][orient=vertical] { writing-mode: bt-lr; /* IE */ @@ -78,6 +92,7 @@ padding: 0 5px; color: rgb(255, 144, 144); } + input[type=range]::-webkit-slider-runnable-track { width: 8px; cursor: pointer; @@ -85,6 +100,7 @@ border-radius: 4px; border: 1px solid #000; } + input[type=range]::-moz-range-track { width: 8px; cursor: pointer; @@ -92,41 +108,79 @@ border-radius: 4px; border: 1px solid #000; } + input[type=range]::-ms-track { cursor: pointer; background: #fff; border-radius: 4px; border: 1px solid #000; } + input.track-slider-not-moved[type=range]::-webkit-slider-runnable-track { background: #aaa; } + input.track-slider-not-moved[type=range]::-moz-range-track { background: #aaa; } + input[type=range]::-moz-range-thumb { margin-left: -7px; cursor: pointer; margin-top: -1px; box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; } + input[type=range]::-webkit-slider-thumb { cursor: pointer; margin-top: -1px; margin-left: -4px; } + input[type=range]::-ms-thumb { cursor: pointer; margin-top: -1px; margin-left: -4px; } + input[type=range]::-ms-tooltip { visibility: hidden; } + +input.track-slider-range-disabled {} + +input.track-slider-range-disabled[type=range]::-webkit-slider-runnable-track { + cursor: not-allowed; +} + +input.track-slider-range-disabled[type=range]::-moz-range-track { + cursor: not-allowed; +} + +input.track-slider-range-disabled[type=range]::-ms-track { + cursor: not-allowed; +} + +input.track-slider-range-disabled[type=range]::-moz-range-thumb { + cursor: not-allowed; + background-color: #888; +} + +input.track-slider-range-disabled[type=range]::-webkit-slider-thumb { + cursor: not-allowed; + background-color: #888; +} + +input.track-slider-range-disabled[type=range]::-ms-thumb { + cursor: not-allowed; + background-color: #888; +} + div#page-count { float: left; margin: 0px 5px; } + div#master-volume-holder { position: absolute; top: 10px; diff -r 88b1c15eb202 -r d4707c4a8b98 interfaces/mushra.js --- a/interfaces/mushra.js Thu Dec 08 14:03:39 2016 +0000 +++ b/interfaces/mushra.js Thu Dec 08 14:33:01 2016 +0000 @@ -156,7 +156,7 @@ // Find all the audioElements from the audioHolder var index = 0; var interfaceScales = testState.currentStateMap.interfaces[0].scales; - var labelType = page.label; + var labelType = audioHolderObject.label; if (labelType == "default") { labelType = "number"; } @@ -171,7 +171,7 @@ audioObject.bindInterface(orNode); } else { // Create a slider per track - var label = interfaceContext.getLabel(labelType, index, page.labelStart); + var label = interfaceContext.getLabel(labelType, index, audioHolderObject.labelStart); var sliderObj = new sliderObject(audioObject, label); if (typeof audioHolderObject.initialPosition === "number") { @@ -189,6 +189,13 @@ }); + if (testState.currentStateMap.restrictMovement) { + $(".track-slider-range").addClass("track-slider-range-disabled"); + $(".track-slider-range").each(function (i, e) { + e.disabled = true + }); + } + var interfaceOptions = specification.interfaces.options.concat(interfaceObj.options); for (var option of interfaceOptions) { @@ -237,6 +244,7 @@ function sliderObject(audioObject, label) { // Constructs the slider object. We use the HTML5 slider object + var page = testState.currentStateMap; this.parent = audioObject; this.holder = document.createElement('div'); this.title = document.createElement('span'); @@ -302,6 +310,7 @@ return node; }; this.startPlayback = function () { + var self = this; // Called when playback has begun this.play.setAttribute("playstate", "playing"); $(".track-slider").removeClass('track-slider-playing'); @@ -311,12 +320,32 @@ $(outsideReference).removeClass('track-slider-playing'); } this.play.textContent = "Stop"; + if (page.restrictMovement) { + if (page.loop) { + $(this.slider).removeClass("track-slider-range-disabled"); + this.slider.removeAttribute("disabled"); + } else { + $(".track-slider-range").addClass("track-slider-range-disabled"); + $(this.slider).removeClass("track-slider-range-disabled"); + $(".track-slider-range").each(function (i, m) { + if (m == self.slider) { + m.removeAttribute("disabled"); + } else { + m.setAttribute("disabled", "true"); + } + }); + } + } }; this.stopPlayback = function () { // Called when playback has stopped. This gets called even if playback never started! this.play.setAttribute("playstate", "ready"); $(this.holder).removeClass('track-slider-playing'); this.play.textContent = "Play"; + if (page.restrictMovement && page.loop) { + $(this.slider).addClass("track-slider-range-disabled"); + this.slider.setAttribute("disabled", "true"); + } }; this.getValue = function () { return this.slider.value; diff -r 88b1c15eb202 -r d4707c4a8b98 tests/examples/mushra_example.xml --- a/tests/examples/mushra_example.xml Thu Dec 08 14:03:39 2016 +0000 +++ b/tests/examples/mushra_example.xml Thu Dec 08 14:33:01 2016 +0000 @@ -53,7 +53,7 @@ - + Comment on fragment @@ -82,7 +82,7 @@ - + Comment on fragment Example Test Question diff -r 88b1c15eb202 -r d4707c4a8b98 xml/test-schema.xsd --- a/xml/test-schema.xsd Thu Dec 08 14:03:39 2016 +0000 +++ b/xml/test-schema.xsd Thu Dec 08 14:33:01 2016 +0000 @@ -102,7 +102,7 @@ - +