diff --git a/src/zm_monitor.cpp b/src/zm_monitor.cpp index 53fa21609..0fe2a8736 100644 --- a/src/zm_monitor.cpp +++ b/src/zm_monitor.cpp @@ -1952,7 +1952,7 @@ bool Monitor::Analyse() { Debug(4, "Triggered on ONVIF"); Event::StringSet noteSet; noteSet.insert("ONVIF"); - noteSet.insert(onvif->lastTopic() + '/' + onvif->lastValue()); + noteSet.insert(onvif->noteText()); noteSetMap[MOTION_CAUSE] = noteSet; cause += "ONVIF"; // If the camera isn't going to send an event close, we need to close it here, but only after it has actually triggered an alarm. diff --git a/src/zm_monitor.h b/src/zm_monitor.h index ef5d6258f..86b42be42 100644 --- a/src/zm_monitor.h +++ b/src/zm_monitor.h @@ -331,6 +331,7 @@ class Monitor : public std::enable_shared_from_this { std::string last_value; std::string last_active_topic; std::string last_active_value; + std::string GetNoteText(); #ifdef WITH_GSOAP struct soap *soap = nullptr; _tev__CreatePullPointSubscription request; @@ -353,6 +354,7 @@ class Monitor : public std::enable_shared_from_this { bool isHealthy() const { return healthy; }; const std::string &lastTopic() const { return last_active_topic; }; const std::string &lastValue() const { return last_active_value; }; + const std::string noteText() { return GetNoteText(); }; }; class AmcrestAPI { diff --git a/src/zm_monitor_onvif.cpp b/src/zm_monitor_onvif.cpp index c017ccc44..51fc8227a 100644 --- a/src/zm_monitor_onvif.cpp +++ b/src/zm_monitor_onvif.cpp @@ -285,3 +285,11 @@ int SOAP_ENV__Fault(struct soap *soap, char *faultcode, char *faultstring, char return soap_send_empty_response(soap, SOAP_OK); } #endif + +std::string Monitor::ONVIF::GetNoteText() { + std::string note = ""; + #ifdef WITH_GSOAP + note = last_active_topic + "/" + last_active_value; + #endif + return note; +} diff --git a/src/zm_monitorstream.cpp b/src/zm_monitorstream.cpp index cbfb15c62..329c07ab4 100644 --- a/src/zm_monitorstream.cpp +++ b/src/zm_monitorstream.cpp @@ -248,6 +248,7 @@ void MonitorStream::processCommand(const CmdMsg *msg) { bool enabled; bool forced; int score; + int analysing; } status_data; status_data.id = monitor->Id(); @@ -279,6 +280,7 @@ void MonitorStream::processCommand(const CmdMsg *msg) { status_data.buffer_level = (MOD_ADD( (temp_write_index-temp_read_index), 0, temp_image_buffer_count )*100)/temp_image_buffer_count; else status_data.buffer_level = 0; + status_data.analysing = monitor->shared_data->analysing; status_data.score = monitor->shared_data->last_frame_score; } status_data.delayed = delayed; diff --git a/web/skins/classic/js/skin.js b/web/skins/classic/js/skin.js index 6ea303142..725d56586 100644 --- a/web/skins/classic/js/skin.js +++ b/web/skins/classic/js/skin.js @@ -1284,7 +1284,7 @@ var doubleTouch = function(e) { }; function setButtonSizeOnStream() { - const elStream = document.querySelectorAll('[id ^= "liveStream"], [id ^= "evtStream"]'); + const elStream = document.querySelectorAll('[id ^= "liveStream"], [id ^= "evtStream"], [id = "videoobj"]'); Array.prototype.forEach.call(elStream, (el) => { //It is necessary to calculate the size for each Stream, because on the Montage page they can be of different sizes. const w = el.offsetWidth;