From 3ccd293f4aa25ff9bf97d76161afe0e9366e8227 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Thu, 12 Dec 2024 17:09:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=91=84=E5=83=8F=E6=9C=BA?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=BB=B6=E6=97=B6=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 14 ++++++++++++++ app/src/main/cpp/PhoneDevice.h | 1 + 2 files changed, 15 insertions(+) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index d487d119..43874da9 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -439,6 +439,7 @@ CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPa m_lastTime = 0; m_shouldStopWaiting = false; m_collecting = false; + localDelayTime = GetMicroTimeStamp(); RegisterHandlerForSignal(SIGUSR2); @@ -1835,6 +1836,16 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector< bool CPhoneDevice::OpenPTZSensors(int sec) { + unsigned long wid = RequestWakelock(0); + unsigned long long time_now = GetMicroTimeStamp(); + if(time_now < localDelayTime-1000) + { + std::lock_guard lock(m_cameraLocker); + m_sensorsStatus = true; + m_cameraStatus = true; + OpenSensors(MAIN_POWER_OPEN); + OpenSensors(CAMERA_SENSOR_OPEN); + } { std::lock_guard lock(m_cameraLocker); // std::unique_lock lock(m_cameraLocker); @@ -1876,6 +1887,7 @@ bool CPhoneDevice::OpenPTZSensors(int sec) m_cameraStatus = true; } } + ReleaseWakelock(wid); return m_cameraStatus; @@ -1884,6 +1896,8 @@ bool CPhoneDevice::OpenPTZSensors(int sec) bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime) { + localDelayTime = GetMicroTimeStamp() + delayedCloseTime*1000; + if(m_sensorsStatus && !m_cameraStatus) { m_shouldStopWaiting.store(true); diff --git a/app/src/main/cpp/PhoneDevice.h b/app/src/main/cpp/PhoneDevice.h index 02883e40..1ed11fa3 100644 --- a/app/src/main/cpp/PhoneDevice.h +++ b/app/src/main/cpp/PhoneDevice.h @@ -405,6 +405,7 @@ protected: mutable std::mutex m_collectDataLocker; std::condition_variable m_CollectDatacv; std::atomic m_collecting; + unsigned long long localDelayTime; };