From: Calin Crisan Date: Sat, 23 Nov 2013 16:58:52 +0000 (+0200) Subject: threshold slider's max value now depends on the resolution X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=c45522d815d732d45e335f82899e128bc793d5e8;p=motioneye-debian threshold slider's max value now depends on the resolution --- diff --git a/static/js/main.js b/static/js/main.js index 628c4c2..ff5248f 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -2,6 +2,7 @@ var pushConfigs = {}; var refreshDisabled = 0; var fullScreenCameraId = null; +var thresholdSlider = null; /* utils */ @@ -174,7 +175,8 @@ function initUI() { makeSlider($('#streamingQualitySlider'), 0, 100, 0, null, 5, 0, '%'); makeSlider($('#imageQualitySlider'), 0, 100, 0, null, 5, 0, '%'); makeSlider($('#movieQualitySlider'), 0, 100, 0, null, 5, 0, '%'); - makeSlider($('#frameChangeThresholdSlider'), 0, 20000, 0, null, 3, 0, 'px'); + thresholdSlider = makeSlider($('#frameChangeThresholdSlider'), 0, 20000, 0, null, 3, 0, 'px'); + makeSlider($('#noiseLevelSlider'), 0, 100, 0, null, 5, 0, '%'); /* text validators */ @@ -220,6 +222,7 @@ function initUI() { $('#showAdvancedSwitch').change(updateConfigUi); $('#storageDeviceSelect').change(updateConfigUi); $('#autoBrightnessSwitch').change(updateConfigUi); + $('#resolutionSelect').change(updateConfigUi); $('#leftTextSelect').change(updateConfigUi); $('#rightTextSelect').change(updateConfigUi); $('#captureModeSelect').change(updateConfigUi); @@ -440,6 +443,18 @@ function updateConfigUi() { this.selectedIndex = 0; } }); + + /* update change threshold max limit */ + var resolution = $('#resolutionSelect').val(); + if (resolution) { + resolution = resolution.split('x'); + + var width = parseInt(resolution[0]); + var height = parseInt(resolution[1]); + var valStr = '' + (width * height * 0.5); /* up to 50% */ + var maxVal = parseInt(valStr[0] + new Array(valStr.length).join('0')); + thresholdSlider.setMaxVal(maxVal); + } } function configUiValid() { diff --git a/static/js/ui.js b/static/js/ui.js index 68b6409..686e0e2 100644 --- a/static/js/ui.js +++ b/static/js/ui.js @@ -120,7 +120,7 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima return minVal + pos * (maxVal - minVal) / 100; } - function sliderChange(val, percent) { + function sliderChange(val) { $input.val(val.toFixed(decimals)); slider.attr('title', '' + val.toFixed(decimals) + unit); } @@ -134,7 +134,7 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima var val = posToVal(pos); cursor.css('left', pos + '%'); - sliderChange(val, pos / 100); + sliderChange(val); } } @@ -164,12 +164,16 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima }); /* ticks */ - var i; - if (ticks == null) { + var autoTicks = (ticks == null); + + function makeTicks() { if (ticksNumber == null) { ticksNumber = 11; } - ticks = []; + + labels.html(''); + + var i, ticks = []; for (i = 0; i < ticksNumber; i++) { var val = minVal + i * (maxVal - minVal) / (ticksNumber - 1); var valStr; @@ -181,17 +185,23 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima } ticks.push({value: val, label: valStr + unit}); } - } - - for (i = 0; i < ticks.length; i++) { - var tick = ticks[i]; - var pos = valToPos(tick.value); - var span = $('' + tick.label + ''); - labels.append(span); - span.css('left', (pos - 10) + '%'); + for (i = 0; i < ticks.length; i++) { + var tick = ticks[i]; + var pos = valToPos(tick.value); + var span = $('' + tick.label + ''); + + labels.append(span); + span.css('left', (pos - 10) + '%'); + } + + return ticks; } + if (autoTicks) { + ticks = makeTicks(); + } + function input2slider() { var value = parseFloat($input.val()); if (isNaN(value)) { @@ -261,6 +271,24 @@ function makeSlider($input, minVal, maxVal, snapMode, ticks, ticksNumber, decima $input[0].update = input2slider; + slider.setMinVal = function (mv) { + minVal = mv; + + if (autoTicks) { + ticks = makeTicks(); + } + }; + + slider.setMaxVal = function (mv) { + maxVal = mv; + + if (autoTicks) { + ticks = makeTicks(); + } + + input2slider(); + }; + return slider; } diff --git a/templates/main.html b/templates/main.html index 45b4f68..58c1f9d 100644 --- a/templates/main.html +++ b/templates/main.html @@ -134,7 +134,7 @@ Video Rotation -