|
@@ -548,6 +548,9 @@ std::string CUB530View::CaptureSingleImageAutoName(LPCTSTR lpszDir, BOOL bIsJPG)
|
|
|
|
|
|
void CUB530View::CaptureMultiImage(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime)
|
|
void CUB530View::CaptureMultiImage(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime)
|
|
{
|
|
{
|
|
|
|
+ if (m_hVideoDevice == NULL)
|
|
|
|
+ return;
|
|
|
|
+
|
|
std::thread t([&](CUB530View* p, LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime) {
|
|
std::thread t([&](CUB530View* p, LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime) {
|
|
// 连续截图;
|
|
// 连续截图;
|
|
TCHAR szDir[MAX_PATH] = { 0 };
|
|
TCHAR szDir[MAX_PATH] = { 0 };
|
|
@@ -619,6 +622,9 @@ void CUB530View::CaptureSingleImageEx(LPTSTR lpszFileName, BOOL bIsJPG)
|
|
|
|
|
|
std::string CUB530View::CaptureSingleImageAutoNameEx(LPCTSTR lpszDir, BOOL bIsJPG)
|
|
std::string CUB530View::CaptureSingleImageAutoNameEx(LPCTSTR lpszDir, BOOL bIsJPG)
|
|
{
|
|
{
|
|
|
|
+ if (m_hVideoDevice == NULL)
|
|
|
|
+ return std::string();
|
|
|
|
+
|
|
// 等待截图完成;
|
|
// 等待截图完成;
|
|
std::unique_lock<std::mutex> lk(m_mut_saveImg);
|
|
std::unique_lock<std::mutex> lk(m_mut_saveImg);
|
|
{
|
|
{
|
|
@@ -681,6 +687,9 @@ std::string CUB530View::CaptureSingleImageAutoNameEx(LPCTSTR lpszDir, BOOL bIsJP
|
|
|
|
|
|
void CUB530View::CaptureMultiImageEx(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime)
|
|
void CUB530View::CaptureMultiImageEx(LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime)
|
|
{
|
|
{
|
|
|
|
+ if (m_hVideoDevice == NULL)
|
|
|
|
+ return;
|
|
|
|
+
|
|
std::thread t([&](CUB530View* p, LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime) {
|
|
std::thread t([&](CUB530View* p, LPCTSTR lpszDir, LPCTSTR lpszPrefix, BOOL bIsJPG, int nDurationTime) {
|
|
// 连续截图;
|
|
// 连续截图;
|
|
TCHAR szDir[MAX_PATH] = { 0 };
|
|
TCHAR szDir[MAX_PATH] = { 0 };
|
|
@@ -849,6 +858,10 @@ void CUB530View::CaptureImageThread(CUB530View* pView)
|
|
{
|
|
{
|
|
CString strFileName = _T("");
|
|
CString strFileName = _T("");
|
|
while (!pView->m_bAppQuit) {
|
|
while (!pView->m_bAppQuit) {
|
|
|
|
+ if (pView->m_hVideoDevice == NULL) {
|
|
|
|
+ Sleep(1000);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
std::unique_lock<std::mutex> lk(pView->m_mut_thread); // 这里使用unique_lock是为了后面方便解锁
|
|
std::unique_lock<std::mutex> lk(pView->m_mut_thread); // 这里使用unique_lock是为了后面方便解锁
|
|
#if 1 // 线程等待唤醒(避免线程虚假唤醒);
|
|
#if 1 // 线程等待唤醒(避免线程虚假唤醒);
|
|
pView->m_thread_cond.wait(lk, [&]() {return pView->m_pBuffer; });
|
|
pView->m_thread_cond.wait(lk, [&]() {return pView->m_pBuffer; });
|