From 91e9037f5243aaf0b754c4ae145a01b8d95188fe Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Mon, 7 Dec 2015 01:05:09 +0200 Subject: [PATCH] added frame rate dimmer support --- motioneye/prefs.py | 10 +++++++--- motioneye/static/js/main.js | 11 ++++++++++- motioneye/templates/main.html | 5 +++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/motioneye/prefs.py b/motioneye/prefs.py index 35f3e96..6d6c004 100644 --- a/motioneye/prefs.py +++ b/motioneye/prefs.py @@ -24,7 +24,8 @@ import settings _PREFS_FILE_NAME = 'prefs.json' _DEFAULT_PREFS = { - 'layout_columns': 3 + 'layout_columns': 3, + 'refresh_factor': 1 } _prefs = None @@ -89,10 +90,13 @@ def get(username, key=None): _load() if key: - return _prefs.get(username, {}).get(key, _DEFAULT_PREFS.get(key)) + prefs = _prefs.get(username, {}).get(key, _DEFAULT_PREFS.get(key)) else: - return _prefs.get(username, _DEFAULT_PREFS) + prefs = dict(_DEFAULT_PREFS) + prefs.update(_prefs.get(username, {})) + + return prefs def set(username, key, value): diff --git a/motioneye/static/js/main.js b/motioneye/static/js/main.js index e1e3986..22f5493 100644 --- a/motioneye/static/js/main.js +++ b/motioneye/static/js/main.js @@ -5,6 +5,7 @@ var refreshDisabled = {}; /* dictionary indexed by cameraId, tells if refresh is var fullScreenCameraId = null; var inProgress = false; var refreshInterval = 15; /* milliseconds */ +var refreshFactor = 1; var username = ''; var password = ''; var basePath = null; @@ -699,6 +700,10 @@ function initUI() { setLayoutColumns(columns); savePrefs(); }); + $('#framerateDimmerSlider').change(function () { + refreshFactor = parseInt(this.value) / 100; + savePrefs(); + }); /* various change handlers */ $('#storageDeviceSelect').change(function () { @@ -1256,7 +1261,8 @@ function configUiValid() { function prefsUi2Dict() { var dict = { - 'layout_columns': $('#layoutColumnsSlider').val() + 'layout_columns': $('#layoutColumnsSlider').val(), + 'refresh_factor': $('#framerateDimmerSlider').val() / 100 }; return dict; @@ -1264,12 +1270,14 @@ function prefsUi2Dict() { function dict2PrefsUi(dict) { $('#layoutColumnsSlider').val(dict['layout_columns']); + $('#framerateDimmerSlider').val(dict['refresh_factor'] * 100); updateConfigUI(); } function applyPrefs(dict) { setLayoutColumns(dict['layout_columns']); + refreshFactor = dict['refresh_factor']; } function savePrefs() { @@ -4272,6 +4280,7 @@ function refreshCameraFrames() { var count = parseInt(1000 / (refreshInterval * this.config['streaming_framerate'])); var serverSideResize = this.config['streaming_server_resize']; + count /= refreshFactor; if (this.img.error) { /* in case of error, decrease the refresh rate to 1 fps */ diff --git a/motioneye/templates/main.html b/motioneye/templates/main.html index f7664ce..dd501a9 100644 --- a/motioneye/templates/main.html +++ b/motioneye/templates/main.html @@ -109,6 +109,11 @@ ? + + Frame Rate Dimmer + + ? + -- 2.39.5