diff --git a/doc/motionplus_config.html b/doc/motionplus_config.html
index 1746645d..2f64b618 100644
--- a/doc/motionplus_config.html
+++ b/doc/motionplus_config.html
@@ -778,6 +778,13 @@
+ pause
+
+ - Values: Boolean | Default: false
+ Pause detection at start up.
+
+
+
Devices
diff --git a/src/conf.cpp b/src/conf.cpp
index 73d238ac..d6ec727f 100644
--- a/src/conf.cpp
+++ b/src/conf.cpp
@@ -49,6 +49,7 @@ ctx_parm config_parms[] = {
{"device_name", PARM_TYP_STRING, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
{"device_id", PARM_TYP_INT, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
{"device_tmo", PARM_TYP_INT, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
+ {"pause", PARM_TYP_BOOL, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
{"target_dir", PARM_TYP_STRING, PARM_CAT_01, WEBUI_LEVEL_ADVANCED },
{"watchdog_tmo", PARM_TYP_INT, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
{"watchdog_kill", PARM_TYP_INT, PARM_CAT_01, WEBUI_LEVEL_LIMITED },
@@ -656,6 +657,19 @@ static void conf_edit_device_tmo(ctx_config *conf, std::string &parm, enum PARM_
MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","device_tmo",_("device_tmo"));
}
+static void conf_edit_pause(ctx_config *conf, std::string &parm, int pact)
+{
+ if (pact == PARM_ACT_DFLT) {
+ conf->pause = false;
+ } else if (pact == PARM_ACT_SET) {
+ conf_edit_set_bool(conf->pause, parm);
+ } else if (pact == PARM_ACT_GET) {
+ conf_edit_get_bool(parm, conf->pause);
+ }
+ return;
+ MOTION_LOG(DBG, TYPE_ALL, NO_ERRNO,"%s:%s","pause",_("pause"));
+}
+
static void conf_edit_config_dir(ctx_config *conf, std::string &parm, enum PARM_ACT pact)
{
if (pact == PARM_ACT_DFLT) {
@@ -2981,6 +2995,7 @@ static void conf_edit_cat01(ctx_config *conf, std::string parm_nm
} else if (parm_nm == "device_name") { conf_edit_device_name(conf, parm_val, pact);
} else if (parm_nm == "device_id") { conf_edit_device_id(conf, parm_val, pact);
} else if (parm_nm == "device_tmo") { conf_edit_device_tmo(conf, parm_val, pact);
+ } else if (parm_nm == "pause") { conf_edit_pause(conf, parm_val, pact);
} else if (parm_nm == "target_dir") { conf_edit_target_dir(conf, parm_val, pact);
} else if (parm_nm == "watchdog_tmo") { conf_edit_watchdog_tmo(conf, parm_val, pact);
} else if (parm_nm == "watchdog_kill") { conf_edit_watchdog_kill(conf, parm_val, pact);
diff --git a/src/conf.hpp b/src/conf.hpp
index 0430f538..5770d9e5 100644
--- a/src/conf.hpp
+++ b/src/conf.hpp
@@ -44,6 +44,7 @@
int watchdog_tmo;
int watchdog_kill;
int device_tmo;
+ bool pause;
/* Capture device configuration parameters */
std::string v4l2_device;
diff --git a/src/motion_loop.cpp b/src/motion_loop.cpp
index 4ba2fdb8..615ae0da 100644
--- a/src/motion_loop.cpp
+++ b/src/motion_loop.cpp
@@ -563,6 +563,11 @@ static void mlp_init_values(ctx_dev *cam)
MOTION_LOG(WRN, TYPE_ALL, NO_ERRNO,_("Pass-through processing disabled."));
cam->movie_passthrough = false;
}
+ if (cam->motapp->pause) {
+ cam->pause = true;
+ } else {
+ cam->pause = cam->conf->pause;
+ }
}
/* start the camera */
@@ -903,7 +908,7 @@ static void mlp_detection(ctx_dev *cam)
return;
}
- if ( !cam->pause ) {
+ if (cam->pause == false) {
alg_diff(cam);
} else {
cam->current_image->diffs = 0;
@@ -975,7 +980,7 @@ static void mlp_overlay(ctx_dev *cam)
}
if (cam->conf->text_changes) {
- if (!cam->pause) {
+ if (cam->pause == false) {
sprintf(tmp, "%d", cam->current_image->diffs);
} else {
sprintf(tmp, "-");