var pushConfigs = {};
var refreshDisabled = 0;
var fullScreenCameraId = null;
+var thresholdSlider = null;
/* utils */
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 */
$('#showAdvancedSwitch').change(updateConfigUi);
$('#storageDeviceSelect').change(updateConfigUi);
$('#autoBrightnessSwitch').change(updateConfigUi);
+ $('#resolutionSelect').change(updateConfigUi);
$('#leftTextSelect').change(updateConfigUi);
$('#rightTextSelect').change(updateConfigUi);
$('#captureModeSelect').change(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() {
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);
}
var val = posToVal(pos);
cursor.css('left', pos + '%');
- sliderChange(val, pos / 100);
+ sliderChange(val);
}
}
});
/* 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;
}
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 = $('<span class="slider-label" style="left: -9999px;">' + tick.label + '</span>');
- 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 = $('<span class="slider-label" style="left: -9999px;">' + tick.label + '</span>');
+
+ labels.append(span);
+ span.css('left', (pos - 10) + '%');
+ }
+
+ return ticks;
}
+ if (autoTicks) {
+ ticks = makeTicks();
+ }
+
function input2slider() {
var value = parseFloat($input.val());
if (isNaN(value)) {
$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;
}
<tr class="settings-item advanced-setting">
<td class="settings-item-label"><span class="settings-item-label">Video Rotation</span></td>
<td class="settings-item-value">
- <select class="video-resolution styled device" id="rotationSelect">
+ <select class="rotation styled device" id="rotationSelect">
<option value="0">0°</option>
<option value="90">90°</option>
<option value="180">180°</option>