elif proto == 'netcam':
camera_config['netcam_url'] = device_details['url']
+ camera_config['text_double'] = True
if device_details['username']:
camera_config['netcam_userpass'] = device_details['username'] + ':' + device_details['password']
_set_default_motion_camera(camera_id, camera_config)
width: 3.5em;
}
-input[disabled] {
+input[readonly] {
border: 1px solid #555 !important;
}
makeSlider($this, Number($tr.attr('min')), Number($tr.attr('max')),
Number($tr.attr('snap')), ticks, Number($tr.attr('ticksnum')), Number($tr.attr('decimals')), $tr.attr('unit'));
});
-
+
/* progress bars */
makeProgressBar($('div.progress-bar'));
pushCameraConfig($(this).parents('tr:eq(0)').attr('reboot') == 'true');
});
+ /* streaming framerate must be >= device framerate */
+ $('#framerateSlider').change(function (val) {
+ var value = Number($('#framerateSlider').val());
+ var streamingValue = Number($('#streamingFramerateSlider').val());
+
+ if (streamingValue < value) {
+ $('#streamingFramerateSlider').val(value).change();
+ }
+ });
+
/* preview controls */
$('#brightnessSlider').change(function () {pushPreview('brightness');});
$('#contrastSlider').change(function () {pushPreview('contrast');});
var mjpgUrl = location.protocol + '//' + location.host.split(':')[0] + ':' + dict.streaming_port;
var embedUrl = cameraUrl + 'frame/';
- if (dict.proto == 'motioneye') { // TODO what about other protocols
+ if (dict.proto == 'motioneye') {
/* cannot tell the mjpg streaming url for a remote motionEye camera */
mjpgUrl = '';
}
-
+
if ($('#normalPasswordEntry').val()) { /* anonymous access is disabled */
snapshotUrl = addAuthParams('GET', snapshotUrl);
if (mjpgUrl) {
</tr>
<tr class="settings-item advanced-setting">
<td class="settings-item-label"><span class="settings-item-label">Camera Device</span></td>
- <td class="settings-item-value"><input type="text" class="styled device camera-config" id="deviceUriEntry" disabled="disabled"></td>
+ <td class="settings-item-value"><input type="text" class="styled device camera-config" id="deviceUriEntry" readonly="readonly"></td>
</tr>
<tr class="settings-item advanced-setting">
<td class="settings-item-label"><span class="settings-item-label">Camera Type</span></td>
- <td class="settings-item-value"><input type="text" class="styled device camera-config" id="deviceTypeEntry" disabled="disabled"></td>
+ <td class="settings-item-value"><input type="text" class="styled device camera-config" id="deviceTypeEntry" readonly="readonly"></td>
</tr>
<tr class="settings-item advanced-setting">
<td colspan="100"><div class="settings-item-separator"></div></td>
<select class="video-resolution styled device camera-config" id="resolutionSelect">
</select>
</td>
- <td><span class="help-mark" title="the video resolution (larger values produce better quality but require larger storage space and bandwidth)">?</span></td>
+ <td><span class="help-mark" title="the video resolution (larger values produce better quality but require more CPU power, larger storage space and bandwidth)">?</span></td>
</tr>
<tr class="settings-item advanced-setting">
<td class="settings-item-label"><span class="settings-item-label">Video Rotation</span></td>
<tr class="settings-item advanced-setting" min="2" max="30" snap="0" ticks="2|5|10|15|20|25|30" decimals="0">
<td class="settings-item-label"><span class="settings-item-label">Frame Rate</span></td>
<td class="settings-item-value"><input type="text" class="range styled device camera-config" id="framerateSlider"></td>
- <td><span class="help-mark" title="sets the number of frames captured by the camera every second (higher values produce smoother videos but require larger storage space and bandwidth)">?</span></td>
+ <td><span class="help-mark" title="sets the number of frames captured by the camera every second (higher values produce smoother videos but require more CPU power, larger storage space and bandwidth)">?</span></td>
</tr>
<tr class="settings-item advanced-setting">
<td class="settings-item-label"><span class="settings-item-label">Extra Motion Options</span></td>