diff --git a/Sources/App.General.Lib/App.General.Lib.aps b/Sources/App.General.Lib/App.General.Lib.aps index 371d735..94975a9 100644 Binary files a/Sources/App.General.Lib/App.General.Lib.aps and b/Sources/App.General.Lib/App.General.Lib.aps differ diff --git a/Sources/App.General.Lib/App.General.Lib.rc b/Sources/App.General.Lib/App.General.Lib.rc index a788225..daf41b6 100644 Binary files a/Sources/App.General.Lib/App.General.Lib.rc and b/Sources/App.General.Lib/App.General.Lib.rc differ diff --git a/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.cpp b/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.cpp index 004c640..a892fd3 100644 --- a/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.cpp +++ b/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.cpp @@ -7,7 +7,6 @@ #include "afxdialogex.h" #include "waifu2x-ncnn-vulkanDlg.h" -#define WM_USER_COMPLETE_MAIN (WM_USER + 0x10) // DELETEDIALOG ダイアログ @@ -41,7 +40,6 @@ void DELETEDIALOG::DoDataExchange(CDataExchange* pDX) BEGIN_MESSAGE_MAP(DELETEDIALOG, CDialogEx) ON_WM_TIMER() ON_WM_DESTROY() - ON_MESSAGE(WM_USER_COMPLETE_MAIN, DELETEDIALOG::OnCompleteMainThread) END_MESSAGE_MAP() @@ -78,51 +76,8 @@ BOOL DELETEDIALOG::OnInitDialog() hDCStatic = ::GetDC(this->m_Static); this->m_Static.GetClientRect(&rc); - CWinThread* pMainThread = NULL; - pMainThread = AfxBeginThread(MainThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pMainThread) - { - pMainThread->m_pMainWnd = this; - pMainThread->m_bAutoDelete = TRUE; - pMainThread->ResumeThread(); - } - return TRUE; } -UINT DELETEDIALOG::MainThread(LPVOID pParam) -{ - DELETEDIALOG* pFileView = dynamic_cast(reinterpret_cast(pParam)); - if (pFileView) - { - pFileView->MainThread(); - } - return 0; -} - -void DELETEDIALOG::MainThread() -{ - INT cur, max; - - xv_Progress.GetRange(cur, max); - while (max >= static_cast(Cwaifu2xncnnvulkanDlg::DELETECURCOUNT)) { - if (max <= static_cast(Cwaifu2xncnnvulkanDlg::DELETECURCOUNT)) { - Sleep(1000); - break; - } - if (ExceptionCounter > 20) { - Cwaifu2xncnnvulkanDlg::DeleteExceptionFlag = 1; - MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); - break; - } - } - PostMessage(WM_USER_COMPLETE_MAIN); -} - -LRESULT DELETEDIALOG::OnCompleteMainThread(WPARAM wParam, LPARAM lParam) -{ - PostMessage(WM_CLOSE); - return 0; -} void DELETEDIALOG::UpdateProgressText() { @@ -204,6 +159,9 @@ void DELETEDIALOG::OnTimer(UINT_PTR nIDEvent) // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 if (nIDEvent == m_TimerID) { + INT cur{}, max{}; + + xv_Progress.GetRange(cur, max); xv_Progress.SetPos(Cwaifu2xncnnvulkanDlg::DELETECURCOUNT); UpdateProgressText(); if (ValueFlag != Cwaifu2xncnnvulkanDlg::DELETECURCOUNT) { @@ -212,6 +170,13 @@ void DELETEDIALOG::OnTimer(UINT_PTR nIDEvent) else { ExceptionCounter++; } + if (static_cast(max) <= Cwaifu2xncnnvulkanDlg::DELETECURCOUNT) { + PostMessage(WM_CLOSE); + } + if (ExceptionCounter > 20) { + Cwaifu2xncnnvulkanDlg::DeleteExceptionFlag = 1; + PostMessage(WM_CLOSE); + } } if (nIDEvent == m_hTimerID) { ValueFlag = CUR_POS; diff --git a/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.h b/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.h index 0c59453..09c53a7 100644 --- a/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.h +++ b/Sources/waifu2x-ncnn-vulkan/DELETEDIALOG.h @@ -10,9 +10,6 @@ class DELETEDIALOG : public CDialogEx public: DELETEDIALOG(CWnd* pParent = nullptr); // 標準コンストラクター virtual ~DELETEDIALOG(); - static UINT MainThread(LPVOID pParam); - void MainThread(); - void UpdateProgressText(); // ダイアログ データ #ifdef AFX_DESIGN_TIME @@ -23,6 +20,7 @@ class DELETEDIALOG : public CDialogEx virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート virtual BOOL OnInitDialog(); afx_msg void OnDestroy(); + afx_msg void OnTimer(UINT_PTR nIDEvent); virtual BOOL PreTranslateMessage(MSG* pMsg); NEW_CORE; @@ -31,7 +29,9 @@ class DELETEDIALOG : public CDialogEx HDC hDCBackBuffer; HDC hDCStatic; HBRUSH m_Hbrush; + CProgressCtrl xv_Progress; CRect rc; + CStatic m_Static; CString MAX; CString POS; CString PROGRESSTEXT; @@ -41,9 +41,5 @@ class DELETEDIALOG : public CDialogEx UINT CUR_POS; UINT ExceptionCounter; UINT ValueFlag; -public: - afx_msg void OnTimer(UINT_PTR nIDEvent); - afx_msg LRESULT OnCompleteMainThread(WPARAM wParam, LPARAM lParam); - CProgressCtrl xv_Progress; - CStatic m_Static; + void UpdateProgressText(); }; diff --git a/Sources/waifu2x-ncnn-vulkan/DLDIALOG.cpp b/Sources/waifu2x-ncnn-vulkan/DLDIALOG.cpp index 5080300..e914269 100644 --- a/Sources/waifu2x-ncnn-vulkan/DLDIALOG.cpp +++ b/Sources/waifu2x-ncnn-vulkan/DLDIALOG.cpp @@ -7,7 +7,6 @@ #include "DLDIALOG.h" #include "afxdialogex.h" -#define WM_USER_COMPLETE_MAIN (WM_USER + 0x30) // DLDIALOG ダイアログ @@ -41,7 +40,6 @@ void DLDIALOG::DoDataExchange(CDataExchange* pDX) BEGIN_MESSAGE_MAP(DLDIALOG, CDialogEx) ON_WM_TIMER() ON_WM_DESTROY() - ON_MESSAGE(WM_USER_COMPLETE_MAIN, DLDIALOG::OnCompleteMainThread) END_MESSAGE_MAP() @@ -51,7 +49,7 @@ BOOL DLDIALOG::OnInitDialog() { CDialogEx::OnInitDialog(); - UINT Lang; + UINT Lang{}; Lang = GetPrivateProfileInt(L"LANGUAGE", L"0x0000", INFINITE, L".\\settings.ini"); if (Lang == 0) { Core->LoadJPNLangLibrary(); @@ -79,63 +77,15 @@ BOOL DLDIALOG::OnInitDialog() hDCStatic = ::GetDC(this->m_Static); this->m_Static.GetClientRect(&rc); - CWinThread* pMainThread = NULL; - pMainThread = AfxBeginThread(MainThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pMainThread) - { - pMainThread->m_pMainWnd = this; - pMainThread->m_bAutoDelete = TRUE; - pMainThread->ResumeThread(); - } - return TRUE; } -UINT DLDIALOG::MainThread(LPVOID pParam) -{ - DLDIALOG* pFileView = dynamic_cast(reinterpret_cast(pParam)); - if (pFileView) - { - pFileView->MainThread(); - } - return 0; -} - - -void DLDIALOG::MainThread() -{ - INT cur, max; - CFileFind find; - - xv_Progress1.GetRange(cur, max); - while (max >= static_cast(Cwaifu2xncnnvulkanDlg::DLCount)) { - if (max <= static_cast(Cwaifu2xncnnvulkanDlg::DLCount)) { - Sleep(1000); - break; - } - if (ExceptionCounter > 40) { - Cwaifu2xncnnvulkanDlg::DLErrorFlag = 1; - MessageBox(_T("An error occurred while downloading.\nPlease make sure that you have an Internet connection."), _T("Error"), MB_ICONWARNING | MB_OK); - break; - } - } - PostMessage(WM_USER_COMPLETE_MAIN); -} - - -LRESULT DLDIALOG::OnCompleteMainThread(WPARAM wParam, LPARAM lParam) -{ - PostMessage(WM_CLOSE); - return 0; -} - - void DLDIALOG::UpdateProgressText() { - HDC hdc; - PAINTSTRUCT ps; - UINT Lang; + HDC hdc{}; + PAINTSTRUCT ps{}; + UINT Lang{}; Lang = GetPrivateProfileInt(L"LANGUAGE", L"0x0000", INFINITE, L".\\settings.ini"); CUR_POS = Cwaifu2xncnnvulkanDlg::DLCount; @@ -199,6 +149,7 @@ void DLDIALOG::OnDestroy() FreeLibrary(Core->Lang_hinst); SAFE_DELETE(CORE_FUNC); + SAFE_DELETE(COREUTIL_FUNC); KillTimer(m_TimerID); KillTimer(m_hTimerID); m_TimerID = 0; @@ -214,6 +165,9 @@ void DLDIALOG::OnTimer(UINT_PTR nIDEvent) // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 if (nIDEvent == m_TimerID) { + INT cur{}, max{}; + + xv_Progress1.GetRange(cur, max); xv_Progress1.SetPos(Cwaifu2xncnnvulkanDlg::DLCount); UpdateProgressText(); if (ValueFlag != Cwaifu2xncnnvulkanDlg::DLCount) { @@ -222,6 +176,13 @@ void DLDIALOG::OnTimer(UINT_PTR nIDEvent) else { ExceptionCounter++; } + if (static_cast(max) <= Cwaifu2xncnnvulkanDlg::DLCount) { + PostMessage(WM_CLOSE); + } + if (ExceptionCounter > 40) { + Cwaifu2xncnnvulkanDlg::DLErrorFlag = 1; + PostMessage(WM_CLOSE); + } } if (nIDEvent == m_hTimerID) { ValueFlag = CUR_POS; diff --git a/Sources/waifu2x-ncnn-vulkan/DLDIALOG.h b/Sources/waifu2x-ncnn-vulkan/DLDIALOG.h index f7c8a6a..b58e2b5 100644 --- a/Sources/waifu2x-ncnn-vulkan/DLDIALOG.h +++ b/Sources/waifu2x-ncnn-vulkan/DLDIALOG.h @@ -10,9 +10,6 @@ class DLDIALOG : public CDialogEx public: DLDIALOG(CWnd* pParent = nullptr); // 標準コンストラクター virtual ~DLDIALOG(); - static UINT MainThread(LPVOID pParam); - void MainThread(); - void UpdateProgressText(); // ダイアログ データ #ifdef AFX_DESIGN_TIME @@ -23,6 +20,7 @@ class DLDIALOG : public CDialogEx virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート virtual BOOL OnInitDialog(); virtual BOOL PreTranslateMessage(MSG* pMsg); + afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnDestroy(); NEW_CORE; NEW_COREUTIL; @@ -32,7 +30,9 @@ class DLDIALOG : public CDialogEx HDC hDCBackBuffer; HDC hDCStatic; HBRUSH m_Hbrush; + CProgressCtrl xv_Progress1; CRect rc; + CStatic m_Static; CString MAX; CString POS; CString PROGRESSTEXT; @@ -42,9 +42,5 @@ class DLDIALOG : public CDialogEx UINT CUR_POS; UINT ExceptionCounter; UINT ValueFlag; -public: - afx_msg void OnTimer(UINT_PTR nIDEvent); - afx_msg LRESULT OnCompleteMainThread(WPARAM wParam, LPARAM lParam); - CProgressCtrl xv_Progress1; - CStatic m_Static; + void UpdateProgressText(); }; diff --git a/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.cpp b/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.cpp index 86bb197..c305af4 100644 --- a/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.cpp +++ b/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.cpp @@ -8,7 +8,6 @@ #include "waifu2x-ncnn-vulkanDlg.h" #include "CThreadWaitDlgThread.h" -#define WM_USER_COMPLETE_MAIN (WM_USER + 0x20) // THREADWAITDIALOG ダイアログ @@ -43,7 +42,6 @@ BEGIN_MESSAGE_MAP(THREADWAITDIALOG, CDialogEx) ON_WM_TIMER() ON_WM_DESTROY() ON_BN_CLICKED(IDC_BUTTON_CANCEL, &THREADWAITDIALOG::OnBnClickedButtonCancel) - ON_MESSAGE(WM_USER_COMPLETE_MAIN, THREADWAITDIALOG::OnCompleteMainThread) END_MESSAGE_MAP() @@ -85,54 +83,9 @@ BOOL THREADWAITDIALOG::OnInitDialog() hDCStatic = ::GetDC(this->m_Static); this->m_Static.GetClientRect(&rc); - CWinThread* pMainThread = NULL; - pMainThread = AfxBeginThread(MainThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pMainThread) - { - pMainThread->m_pMainWnd = this; - pMainThread->m_bAutoDelete = TRUE; - pMainThread->ResumeThread(); - } - return TRUE; } -UINT THREADWAITDIALOG::MainThread(LPVOID pParam) -{ - THREADWAITDIALOG* pFileView = dynamic_cast(reinterpret_cast(pParam)); - if (pFileView) - { - pFileView->MainThread(); - } - return 0; -} - -void THREADWAITDIALOG::MainThread() -{ - INT cur, max; - - xv_Progress.GetRange(cur, max); - while (max >= static_cast(Cwaifu2xncnnvulkanDlg::UPSCALE_COUNT)) { - if (Cwaifu2xncnnvulkanDlg::SuspendFlag == 1) { - break; - } - if (max <= static_cast(Cwaifu2xncnnvulkanDlg::UPSCALE_COUNT)) { - Sleep(1000); - break; - } - if (ExceptionCounter > 50) { - Cwaifu2xncnnvulkanDlg::UpscaleExceptionFlag = 1; - MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nCheck the waifu2x conversion settings."), _T("Error"), MB_ICONERROR | MB_OK); - break; - } - } - PostMessage(WM_USER_COMPLETE_MAIN); -} -LRESULT THREADWAITDIALOG::OnCompleteMainThread(WPARAM wParam, LPARAM lParam) -{ - PostMessage(WM_CLOSE); - return 0; -} void THREADWAITDIALOG::UpdateProgressText() { @@ -263,6 +216,9 @@ void THREADWAITDIALOG::OnTimer(UINT_PTR nIDEvent) { // TODO: ここにメッセージ ハンドラー コードを追加するか、既定の処理を呼び出します。 if (nIDEvent == m_TimerID) { + INT cur{}, max{}; + + xv_Progress.GetRange(cur, max); xv_Progress.SetPos(Cwaifu2xncnnvulkanDlg::UPSCALE_COUNT); UpdateProgressText(); if (ValueFlag != Cwaifu2xncnnvulkanDlg::UPSCALE_COUNT) { @@ -271,6 +227,16 @@ void THREADWAITDIALOG::OnTimer(UINT_PTR nIDEvent) else { ExceptionCounter++; } + if (Cwaifu2xncnnvulkanDlg::SuspendFlag == 1) { + PostMessage(WM_CLOSE); + } + if (static_cast(max) <= Cwaifu2xncnnvulkanDlg::UPSCALE_COUNT) { + PostMessage(WM_CLOSE); + } + if (ExceptionCounter > 50) { + Cwaifu2xncnnvulkanDlg::UpscaleExceptionFlag = 1; + PostMessage(WM_CLOSE); + } } if (nIDEvent == m_hTimerID) { ValueFlag = CUR_POS; diff --git a/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.h b/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.h index 1c3cefd..44e4664 100644 --- a/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.h +++ b/Sources/waifu2x-ncnn-vulkan/THREADWAITDIALOG.h @@ -11,9 +11,6 @@ class THREADWAITDIALOG : public CDialogEx public: THREADWAITDIALOG(CWnd* pParent = nullptr); // 標準コンストラクター virtual ~THREADWAITDIALOG(); - static UINT MainThread(LPVOID pParam); - void MainThread(); - void UpdateProgressText(); // ダイアログ データ #ifdef AFX_DESIGN_TIME @@ -24,18 +21,19 @@ class THREADWAITDIALOG : public CDialogEx virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート virtual BOOL OnInitDialog(); afx_msg void OnDestroy(); + afx_msg void OnTimer(UINT_PTR nIDEvent); virtual BOOL PreTranslateMessage(MSG* pMsg); NEW_CORE; DECLARE_MESSAGE_MAP() -public: - CProgressCtrl xv_Progress; - CStatic m_Static; private: + CWinThread* pMainThread{}; HDC hDCBackBuffer; HDC hDCStatic; HBRUSH m_Hbrush; + CProgressCtrl xv_Progress; CRect rc; + CStatic m_Static; CString MAX; CString POS; CString PROGRESSTEXT; @@ -45,8 +43,6 @@ class THREADWAITDIALOG : public CDialogEx UINT CUR_POS; UINT ExceptionCounter; UINT ValueFlag; -public: - afx_msg void OnTimer(UINT_PTR nIDEvent); - afx_msg LRESULT OnCompleteMainThread(WPARAM wParam, LPARAM lParam); + void UpdateProgressText(); afx_msg void OnBnClickedButtonCancel(); }; diff --git a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkan.vcxproj b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkan.vcxproj index aaf4b9f..bcecdd2 100644 --- a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkan.vcxproj +++ b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkan.vcxproj @@ -184,7 +184,7 @@ true _WINDOWS;NDEBUG;%(PreprocessorDefinitions) pch.h - $(SolutionDir)include, ../GUI.ResourcePack.Main/ + ../App.General.Lib/ MultiThreadedDLL Default diff --git a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.cpp b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.cpp index 65bdff7..bbbe4bc 100644 --- a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.cpp +++ b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.cpp @@ -419,9 +419,8 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() SetWindowText(_T("waifu2x-ncnn-vulkan GUI Edition [") + APP_VERSION + _T(", Feb. 22, 2021]")); Utility->GetGPUInfo(); - - MSG msg; + MSG msg{}; CString resdir = _T("\\Resources"); CString init1 = _T("\\Resources\\ffmpeg\\ffmpeg.exe"); CString init2 = _T("\\Resources\\waifu2x-ncnn-vulkan\\waifu2x-ncnn-vulkan.exe"); @@ -511,6 +510,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() if (ret == IDYES) { Utility->DeleteDirectory(_T(".\\Resources\\ffmpeg")); bool ret; + POPUPDlg* DIALOG = new POPUPDlg; DIALOG->Create(IDD_POPUP); DIALOG->ShowWindow(SW_SHOW); @@ -521,6 +521,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() break; } } + CString STATUSCODE; STATUSCODE.Format(_T("%d\n"), Utility->FFmpegServerCheck()); OutputDebugString(_T("Server connecting...\nHTTP Status code:") + STATUSCODE); @@ -549,18 +550,11 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() } if (DLErrorFlag == 1) { + MessageBox(_T("An error occurred while downloading.\nPlease make sure that you have an Internet connection."), _T("Error"), MB_ICONWARNING | MB_OK); DeleteFile(_T(".\\Resources\\ffmpeg.zip")); DLErrorFlag = 0; } - while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { - if (!AfxGetApp()->PumpMessage()) - { - ::PostQuitMessage(0); - break; - } - } - if (ret) { DIALOG->DestroyWindow(); SAFE_DELETE(DIALOG); @@ -656,6 +650,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() if (ret == IDYES) { Utility->DeleteDirectory(_T(".\\Resources\\ffmpeg")); bool ret; + POPUPDlg* DIALOG = new POPUPDlg; DIALOG->Create(IDD_POPUP); DIALOG->ShowWindow(SW_SHOW); @@ -666,6 +661,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() break; } } + CString STATUSCODE; STATUSCODE.Format(_T("%d\n"), Utility->FFmpegServerCheck()); OutputDebugString(_T("Server connecting...\nHTTP Status code:") + STATUSCODE); @@ -694,18 +690,11 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() } if (DLErrorFlag == 1) { + MessageBox(_T("An error occurred while downloading.\nPlease make sure that you have an Internet connection."), _T("Error"), MB_ICONWARNING | MB_OK); DeleteFile(_T(".\\Resources\\ffmpeg.zip")); DLErrorFlag = 0; } - while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { - if (!AfxGetApp()->PumpMessage()) - { - ::PostQuitMessage(0); - break; - } - } - if (ret) { DIALOG->DestroyWindow(); SAFE_DELETE(DIALOG); @@ -808,6 +797,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() if (sel == IDYES) { bool ret; + POPUPDlg* DIALOG = new POPUPDlg; DIALOG->Create(IDD_POPUP); DIALOG->ShowWindow(SW_SHOW); @@ -818,6 +808,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() break; } } + CString STATUSCODE; STATUSCODE.Format(_T("%d\n"), Utility->FFmpegServerCheck()); OutputDebugString(_T("Server connecting...\nHTTP Status code:") + STATUSCODE); @@ -828,6 +819,7 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() PostMessage(WM_COMMAND, IDCANCEL); return FALSE; } + OutputDebugString(_T("Server connected.\n")); ret = Utility->DownloadFile(DOWNLOAD_URL_STRING, _T(".\\Resources\\ffmpeg.zip"), 4096); DLCurCount = Utility->GetFileSizeStat(_T(".\\Resources\\ffmpeg.zip")); @@ -846,18 +838,11 @@ BOOL Cwaifu2xncnnvulkanDlg::OnInitDialog() } if (DLErrorFlag == 1) { + MessageBox(_T("An error occurred while downloading.\nPlease make sure that you have an Internet connection."), _T("Error"), MB_ICONWARNING | MB_OK); DeleteFile(_T(".\\Resources\\ffmpeg.zip")); DLErrorFlag = 0; } - while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { - if (!AfxGetApp()->PumpMessage()) - { - ::PostQuitMessage(0); - break; - } - } - if (ret) { DIALOG->DestroyWindow(); SAFE_DELETE(DIALOG); @@ -1212,6 +1197,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton1() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -1259,83 +1249,21 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton1() pWaifu2xCountThread->m_pMainWnd = this; pWaifu2xCountThread->m_bAutoDelete = TRUE; pWaifu2xCountThread->ResumeThread(); + THREADWAITDIALOG DLG; + DLG.DoModal(); } - CThreadWaitDlgThread* pThread = DYNAMIC_DOWNCAST(CThreadWaitDlgThread, AfxBeginThread(RUNTIME_CLASS(CThreadWaitDlgThread), 0, 0, CREATE_SUSPENDED)); - pThread->m_bAutoDelete = TRUE; - pThread->ResumeThread(); - while (pThread->m_Dlg.m_hWnd == 0) { - Sleep(0); - } - - while (ProgressThreadFlag != TRUE) { - if (SuspendFlag == TRUE) { - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; - } - } - if (PathFileExists(currentPath)) { - OutputDebugString(_T("Path: '") + currentPath + _T("' file exists.\n")); - DELETEPATH = currentPath; - DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DELETEPATH.GetString()); - pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pDeleteThread) - { - pDeleteThread->m_pMainWnd = this; - pDeleteThread->m_bAutoDelete = TRUE; - if (DeleteFileThreadFlag != FALSE) { - DeleteFileThreadFlag = FALSE; - } - pDeleteThread->ResumeThread(); - - DELETEDIALOG DIALOG; - DIALOG.DoModal(); - } - } - else { - OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); - } - - MessageBox(WARN_ABORT, INFO_TITLE, MB_ICONWARNING | MB_OK); - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); - button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); - this->xv_Static_File.SetWindowText(STATIC_NOTREAD); - this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); - CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); - static1->InvalidateRect(NULL, 1); - if (Waifu2xThreadFlag != FALSE) { - Waifu2xThreadFlag = FALSE; - } - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; - } - return; - } + UINT Suspcheck = SuspendCheck(currentPath, 0); + if (Suspcheck == 1) { + return; } - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; + else { + if (ProgressThreadFlag != FALSE) { + ProgressThreadFlag = FALSE; + } + if (SuspendFlag != FALSE) { + SuspendFlag = FALSE; } - } - - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; } if (EXT == L"JPG") { @@ -1359,37 +1287,26 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton1() ShellExecute(NULL, L"open", L"cmd.exe", renameCom, CURRENT_PATH + L"\\Resources\\takeout\\_temp-project\\image-frames2x\\", SW_SHOWNORMAL); } - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON6); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON2); - button1->EnableWindow(FALSE); - button2->EnableWindow(TRUE); - button3->EnableWindow(TRUE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - if (Waifu2xThreadFlag != FALSE) { Waifu2xThreadFlag = FALSE; } - if (UpscaleExceptionFlag == 1) { - UpscaleExceptionFlag = 0; + UINT err = UpscaleExceptionCheck(); + if (err == 1) { + return; + } + else { CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON6); CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON2); button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); + button2->EnableWindow(TRUE); + button3->EnableWindow(TRUE); button4->EnableWindow(FALSE); button5->EnableWindow(FALSE); - MessageBox(ERROR_UPSCALE, ERROR_UPSCALE_TITLE, MB_ICONINFORMATION | MB_OK); - return; - } - else { + if (PathFileExists(w2xout)) { CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); @@ -1496,6 +1413,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton3() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -1554,87 +1476,36 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton3() pWaifu2xCountThread->m_pMainWnd = this; pWaifu2xCountThread->m_bAutoDelete = TRUE; pWaifu2xCountThread->ResumeThread(); - } - CThreadWaitDlgThread* pThread = DYNAMIC_DOWNCAST(CThreadWaitDlgThread, AfxBeginThread(RUNTIME_CLASS(CThreadWaitDlgThread), 0, 0, CREATE_SUSPENDED)); - pThread->m_bAutoDelete = TRUE; - pThread->ResumeThread(); - while (pThread->m_Dlg.m_hWnd == 0) { - Sleep(0); - } - - while (ProgressThreadFlag != TRUE) { - if (SuspendFlag == TRUE) { - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; - } - } - if (PathFileExists(current)) { - OutputDebugString(_T("Path: '") + current + _T("' file exists.\n")); - DELETEPATH = current; - DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DELETEPATH.GetString()); - pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pDeleteThread) - { - pDeleteThread->m_pMainWnd = this; - pDeleteThread->m_bAutoDelete = TRUE; - if (DeleteFileThreadFlag != FALSE) { - DeleteFileThreadFlag = FALSE; - } - pDeleteThread->ResumeThread(); - - DELETEDIALOG DIALOG; - DIALOG.DoModal(); - } - } - else { - OutputDebugString(_T("Path: '") + current + _T("' file doesn't exist.\n")); - } + THREADWAITDIALOG DLG; + DLG.DoModal(); + } - MessageBox(WARN_ABORT, INFO_TITLE, MB_ICONWARNING | MB_OK); - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); - button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); - this->xv_Static_File.SetWindowText(STATIC_NOTREAD); - this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); - CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); - static1->InvalidateRect(NULL, 1); - if (Waifu2xThreadFlag != FALSE) { - Waifu2xThreadFlag = FALSE; - } - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (Waifu2xReUpscalingFlag != FALSE) { - Waifu2xReUpscalingFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; - } - return; - } + UINT Suspcheck = SuspendCheck(current, 0); + if (Suspcheck == 1) { + return; } - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; + else { + if (ProgressThreadFlag != FALSE) { + ProgressThreadFlag = FALSE; + } + if (SuspendFlag != FALSE) { + SuspendFlag = FALSE; + } + if (Waifu2xReUpscalingFlag != FALSE) { + Waifu2xReUpscalingFlag = FALSE; + } + if (Waifu2xThreadFlag != FALSE) { + Waifu2xThreadFlag = FALSE; } } - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; - } + /*CThreadWaitDlgThread* pThread = DYNAMIC_DOWNCAST(CThreadWaitDlgThread, AfxBeginThread(RUNTIME_CLASS(CThreadWaitDlgThread), 0, 0, CREATE_SUSPENDED)); + pThread->m_bAutoDelete = TRUE; + pThread->ResumeThread(); + while (pThread->m_Dlg.m_hWnd == 0) { + Sleep(0); + }*/ if (EXT == L"JPG") { CString prenameCom = L"/c ren *.png.jpg *.\nexit 0"; @@ -1653,31 +1524,8 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton3() ShellExecute(NULL, L"open", L"cmd.exe", prenameComext, CURRENT_PATH + L"\\Resources\\takeout\\_temp-project\\image-frames2x\\", SW_HIDE); } - if (Waifu2xReUpscalingFlag != FALSE) { - Waifu2xReUpscalingFlag = FALSE; - } - if (Waifu2xThreadFlag != FALSE) { - Waifu2xThreadFlag = FALSE; - } - - if (UpscaleExceptionFlag == 1) { - UpscaleExceptionFlag = 0; - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); - button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); - this->xv_Static_File.SetWindowText(STATIC_NOTREAD); - this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); - CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); - static1->InvalidateRect(NULL, 1); - MessageBox(ERROR_REUPSCALE, ERROR_REUPSCALE_TITLE, MB_ICONINFORMATION | MB_OK); + UINT err = UpscaleExceptionCheck(); + if (err == 1) { return; } else { @@ -1881,6 +1729,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton4() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -1962,6 +1815,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton4() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -2330,6 +2188,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton2() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } } else { @@ -2394,6 +2257,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton2() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } } else { @@ -2464,122 +2332,26 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton2() pWaifu2xCountThread->m_pMainWnd = this; pWaifu2xCountThread->m_bAutoDelete = TRUE; pWaifu2xCountThread->ResumeThread(); - } - CThreadWaitDlgThread* pThread = DYNAMIC_DOWNCAST(CThreadWaitDlgThread, AfxBeginThread(RUNTIME_CLASS(CThreadWaitDlgThread), 0, 0, CREATE_SUSPENDED)); - pThread->m_bAutoDelete = TRUE; - pThread->ResumeThread(); - while (pThread->m_Dlg.m_hWnd == 0) { - Sleep(0); + THREADWAITDIALOG DLG; + DLG.DoModal(); } - while (ProgressThreadFlag != TRUE) { - if (SuspendFlag == TRUE) { - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; - } - } - if (PathFileExists(currentPath)) { - OutputDebugString(_T("Path: '") + currentPath + _T("' file exists.\n")); - DELETEPATH = currentPath; - DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DELETEPATH.GetString()); - if (DELETEMAINCOUNT <= 500) { - Utility->DeleteDirectory(DELETEPATH); - } - else { - pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pDeleteThread) - { - pDeleteThread->m_pMainWnd = this; - pDeleteThread->m_bAutoDelete = TRUE; - if (DeleteFileThreadFlag != FALSE) { - DeleteFileThreadFlag = FALSE; - } - pDeleteThread->ResumeThread(); - - DELETEDIALOG DIALOG; - DIALOG.DoModal(); - } - } - } - else { - OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); - } - - if (PathFileExists(OutPath)) { - OutputDebugString(_T("Path: '") + OutPath + _T("' file exists.\n")); - DELETEPATH = OutPath + _T("\\*.*"); - DELETEMAINCOUNT = Utility->GetDirectoryFileCount(OutPath.GetString()); - if (DELETEMAINCOUNT <= 500) { - Utility->DeleteALLFiles(DELETEPATH); - } - else { - pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); - if (pDeleteThread) - { - pDeleteThread->m_pMainWnd = this; - pDeleteThread->m_bAutoDelete = TRUE; - if (DeleteFileThreadFlag != FALSE) { - DeleteFileThreadFlag = FALSE; - } - pDeleteThread->ResumeThread(); - - DELETEDIALOG DIALOG; - DIALOG.DoModal(); - } - } - } - else { - OutputDebugString(_T("Path: '") + OutPath + _T("' file doesn't exist.\n")); - } - - MessageBox(WARN_ABORT2, INFO_TITLE, MB_ICONWARNING | MB_OK); - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); - button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); - this->xv_Static_File.SetWindowText(STATIC_NOTREAD); - this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); - CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); - static1->InvalidateRect(NULL, 1); - SAFE_FREE(InPathT); - SAFE_FREE(OutPathT); - if (ImageUpScaleFlag != FALSE) { - ImageUpScaleFlag = FALSE; - } - if (Waifu2xThreadFlag != FALSE) { - Waifu2xThreadFlag = FALSE; - } - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; - } - return; - } + UINT Suspcheck = SuspendCheckMulti(currentPath, OutPath); + if (Suspcheck == 1) { + SAFE_FREE(InPathT); + SAFE_FREE(OutPathT); + return; } - while (pThread->m_Dlg.m_hWnd) { - if (pThread->m_Dlg.m_hWnd == 0) { - break; + else { + if (ProgressThreadFlag != FALSE) { + ProgressThreadFlag = FALSE; + } + if (ImageUpScaleFlag != FALSE) { + ImageUpScaleFlag = FALSE; + } + if (SuspendFlag != FALSE) { + SuspendFlag = FALSE; } - } - - if (ProgressThreadFlag != FALSE) { - ProgressThreadFlag = FALSE; - } - if (ImageUpScaleFlag != FALSE) { - ImageUpScaleFlag = FALSE; - } - if (SuspendFlag != FALSE) { - SuspendFlag = FALSE; } if (EXT == L"JPG") { @@ -2640,6 +2412,11 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton2() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } } else { @@ -2648,32 +2425,23 @@ void Cwaifu2xncnnvulkanDlg::OnBnClickedButton2() SAFE_FREE(InPathT); - CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); - CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); - CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); - CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); - CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); - button1->EnableWindow(FALSE); - button2->EnableWindow(FALSE); - button3->EnableWindow(FALSE); - button4->EnableWindow(FALSE); - button5->EnableWindow(FALSE); - - if (UpscaleExceptionFlag == 1) { - UpscaleExceptionFlag = 0; + UINT err = UpscaleExceptionCheck(); + if (err == 1) { SAFE_FREE(OutPathT); - MessageBox(INFO_SUCCESS, INFO_TITLE, MB_ICONINFORMATION | MB_OK); - this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); - this->xv_Static_File.SetWindowText(STATIC_NOTREAD); - this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); - CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); - static1->InvalidateRect(NULL, 1); - if (Waifu2xThreadFlag != FALSE) { - Waifu2xThreadFlag = FALSE; - } return; } else { + CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); + CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); + CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); + CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); + CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); + button1->EnableWindow(FALSE); + button2->EnableWindow(FALSE); + button3->EnableWindow(FALSE); + button4->EnableWindow(FALSE); + button5->EnableWindow(FALSE); + if (PathIsDirectoryEmpty(OutPathT)) { SAFE_FREE(OutPathT); MessageBox(ERROR_FAILED, ERROR_TITLE, MB_ICONERROR | MB_OK); @@ -2924,6 +2692,11 @@ void Cwaifu2xncnnvulkanDlg::OnFileAlldelete() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -3001,16 +2774,7 @@ void Cwaifu2xncnnvulkanDlg::OnVideoresize() } } - STARTUPINFO si/* = { sizeof(STARTUPINFO) }*/; - memset(&si, 0, sizeof(STARTUPINFO)); - PROCESS_INFORMATION pi; - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - si.dwFlags = STARTF_USESHOWWINDOW; - si.wShowWindow = SW_SHOW; - ::CreateProcess(NULL, ffmpegcmdT, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); - CloseHandle(pi.hThread); - WaitForSingleObject(pi.hProcess, INFINITE); - CloseHandle(pi.hProcess); + Utility->RunProcess(ffmpegcmdT, SW_SHOW); waitDlg->DestroyWindow(); SAFE_DELETE(waitDlg); @@ -3113,16 +2877,7 @@ void Cwaifu2xncnnvulkanDlg::OnVideoaudioexport() } } - STARTUPINFO si/* = { sizeof(STARTUPINFO) }*/; - memset(&si, 0, sizeof(STARTUPINFO)); - PROCESS_INFORMATION pi; - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - si.dwFlags = STARTF_USESHOWWINDOW; - si.wShowWindow = SW_SHOW; - ::CreateProcess(NULL, ffmpegcmdT, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); - CloseHandle(pi.hThread); - WaitForSingleObject(pi.hProcess, INFINITE); - CloseHandle(pi.hProcess); + Utility->RunProcess(ffmpegcmdT, SW_SHOW); waitDlg->DestroyWindow(); SAFE_DELETE(waitDlg); @@ -3312,18 +3067,7 @@ void Cwaifu2xncnnvulkanDlg::waifu2xThread() _tcscpy_s(&lpPath[0], 512, waifu2x_param); } - STARTUPINFO si; - memset(&si, 0, sizeof(STARTUPINFO)); - PROCESS_INFORMATION pi; - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - si.dwFlags = STARTF_USESHOWWINDOW; - si.wShowWindow = SW_HIDE; - ::CreateProcess(NULL, lpPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); - OutputDebugString(_T("Process created.\n")); - - CloseHandle(pi.hThread); - WaitForSingleObject(pi.hProcess, INFINITE); - CloseHandle(pi.hProcess); + Utility->RunProcess(lpPath, SW_HIDE); SetCurrentDirectory(CURRENT_PATH); @@ -3486,12 +3230,6 @@ void Cwaifu2xncnnvulkanDlg::waifu2xCountThread() void Cwaifu2xncnnvulkanDlg::waifu2xCountDlgThread() { - CFrameWnd* pWnd = new CFrameWnd; - pWnd->Create(NULL, L"CWinThread Test"); - THREADWAITDIALOG* dlg = new THREADWAITDIALOG(CWnd::FromHandle(pWnd->GetSafeHwnd())); - dlg->DoModal(); - - SAFE_DELETE(dlg); this->PostMessage(WM_USER_COMPLETE_COUNT_DLG_THREAD); } @@ -3529,7 +3267,7 @@ void Cwaifu2xncnnvulkanDlg::DLCountThread() } } - this->PostMessage(WM_USER_COMPLETE_DOWNLOAD_LOAD_XML); + this->PostMessage(WM_USER_COMPLETE_DOWNLOAD_COUNT_LOAD_XML); OutputDebugString(_T("DLCountThread Ended.\n")); } @@ -3592,8 +3330,7 @@ afx_msg LRESULT Cwaifu2xncnnvulkanDlg::OnCompleteFFmpegThread(WPARAM wParam, LPA afx_msg LRESULT Cwaifu2xncnnvulkanDlg::OnCompleteWaifu2xCountThread(WPARAM wParam, LPARAM lParam) { OutputDebugString(_T("Thread: OnCompleteWaifu2xCountThread\n")); - UPSCALE_COUNT = 0; - ProgressThreadFlag = FALSE; + return 0; } @@ -3806,6 +3543,11 @@ void Cwaifu2xncnnvulkanDlg::OnDestroy() DELETEDIALOG DIALOG; DIALOG.DoModal(); } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } } else { OutputDebugString(_T("Path: '") + currentPath + _T("' file doesn't exist.\n")); @@ -3995,6 +3737,222 @@ void Cwaifu2xncnnvulkanDlg::OnLanguageEnglish() } +UINT Cwaifu2xncnnvulkanDlg::SuspendCheck(LPCTSTR Path1, UINT Flag) +{ + CString DP = Path1; + if (SuspendFlag == TRUE) { + if (PathFileExists(DP)) { + OutputDebugString(_T("Path: '") + DP + _T("' file exists.\n")); + if (Flag == 0) { + DELETEPATH = DP; + } + else { + DELETEPATH = DP + _T("\\*.*"); + } + DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DP.GetString()); + pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); + if (pDeleteThread) + { + pDeleteThread->m_pMainWnd = this; + pDeleteThread->m_bAutoDelete = TRUE; + if (DeleteFileThreadFlag != FALSE) { + DeleteFileThreadFlag = FALSE; + } + pDeleteThread->ResumeThread(); + + DELETEDIALOG DIALOG; + DIALOG.DoModal(); + } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } + } + else { + OutputDebugString(_T("Path: '") + DP + _T("' file doesn't exist.\n")); + } + + MessageBox(WARN_ABORT, INFO_TITLE, MB_ICONWARNING | MB_OK); + CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); + CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); + CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); + CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); + CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); + button1->EnableWindow(FALSE); + button2->EnableWindow(FALSE); + button3->EnableWindow(FALSE); + button4->EnableWindow(FALSE); + button5->EnableWindow(FALSE); + this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); + this->xv_Static_File.SetWindowText(STATIC_NOTREAD); + this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); + CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); + static1->InvalidateRect(NULL, 1); + if (Waifu2xThreadFlag != FALSE) { + Waifu2xThreadFlag = FALSE; + } + if (ProgressThreadFlag != FALSE) { + ProgressThreadFlag = FALSE; + } + if (Waifu2xReUpscalingFlag != FALSE) { + Waifu2xReUpscalingFlag = FALSE; + } + if (SuspendFlag != FALSE) { + SuspendFlag = FALSE; + } + return 1; + } + else { + return 0; + } +} + + +UINT Cwaifu2xncnnvulkanDlg::SuspendCheckMulti(LPCTSTR Path1, LPCTSTR Path2) +{ + CString DP1 = Path1, DP2 = Path2; + if (SuspendFlag == TRUE) { + if (PathFileExists(DP1)) { + OutputDebugString(_T("Path: '") + DP1 + _T("' file exists.\n")); + DELETEPATH = DP1; + DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DELETEPATH.GetString()); + if (DELETEMAINCOUNT <= 500) { + Utility->DeleteDirectory(DELETEPATH); + } + else { + pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); + if (pDeleteThread) + { + pDeleteThread->m_pMainWnd = this; + pDeleteThread->m_bAutoDelete = TRUE; + if (DeleteFileThreadFlag != FALSE) { + DeleteFileThreadFlag = FALSE; + } + pDeleteThread->ResumeThread(); + + DELETEDIALOG DIALOG; + DIALOG.DoModal(); + } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } + } + } + else { + OutputDebugString(_T("Path: '") + DP1 + _T("' file doesn't exist.\n")); + } + + if (PathFileExists(DP2)) { + OutputDebugString(_T("Path: '") + DP2 + _T("' file exists.\n")); + DELETEPATH = DP2 + _T("\\*.*"); + DELETEMAINCOUNT = Utility->GetDirectoryFileCount(DP2.GetString()); + if (DELETEMAINCOUNT <= 500) { + Utility->DeleteALLFiles(DELETEPATH); + } + else { + pDeleteThread = AfxBeginThread(DeleteThread, (LPVOID)this, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); + if (pDeleteThread) + { + pDeleteThread->m_pMainWnd = this; + pDeleteThread->m_bAutoDelete = TRUE; + if (DeleteFileThreadFlag != FALSE) { + DeleteFileThreadFlag = FALSE; + } + pDeleteThread->ResumeThread(); + + DELETEDIALOG DIALOG; + DIALOG.DoModal(); + } + UINT dexp = DeleteExceptionCheck(); + if (dexp == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nSome files failed to be deleted."), _T("Error"), MB_ICONWARNING | MB_OK); + DeleteExceptionFlag = 0; + } + } + } + else { + OutputDebugString(_T("Path: '") + DP2 + _T("' file doesn't exist.\n")); + } + + MessageBox(WARN_ABORT2, INFO_TITLE, MB_ICONWARNING | MB_OK); + CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); + CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); + CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); + CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); + CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); + button1->EnableWindow(FALSE); + button2->EnableWindow(FALSE); + button3->EnableWindow(FALSE); + button4->EnableWindow(FALSE); + button5->EnableWindow(FALSE); + this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); + this->xv_Static_File.SetWindowText(STATIC_NOTREAD); + this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); + CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); + static1->InvalidateRect(NULL, 1); + if (ImageUpScaleFlag != FALSE) { + ImageUpScaleFlag = FALSE; + } + if (Waifu2xThreadFlag != FALSE) { + Waifu2xThreadFlag = FALSE; + } + if (ProgressThreadFlag != FALSE) { + ProgressThreadFlag = FALSE; + } + if (SuspendFlag != FALSE) { + SuspendFlag = FALSE; + } + return 1; + } + else { + return 0; + } +} + + +UINT Cwaifu2xncnnvulkanDlg::DeleteExceptionCheck() +{ + if (DeleteExceptionFlag == TRUE) { + return 1; + } + else { + return 0; + } +} + + +UINT Cwaifu2xncnnvulkanDlg::UpscaleExceptionCheck() +{ + if (UpscaleExceptionFlag == 1) { + MessageBox(_T("An unexpected error has occurred.\nA static variable stopped with an unexpected value.\nCheck the waifu2x conversion settings."), _T("Error"), MB_ICONERROR | MB_OK); + UpscaleExceptionFlag = 0; + CButton* button1 = (CButton*)GetDlgItem(IDC_BUTTON1); + CButton* button2 = (CButton*)GetDlgItem(IDC_BUTTON3); + CButton* button3 = (CButton*)GetDlgItem(IDC_BUTTON4); + CButton* button4 = (CButton*)GetDlgItem(IDC_BUTTON2); + CButton* button5 = (CButton*)GetDlgItem(IDC_BUTTON6); + button1->EnableWindow(FALSE); + button2->EnableWindow(FALSE); + button3->EnableWindow(FALSE); + button4->EnableWindow(FALSE); + button5->EnableWindow(FALSE); + this->xv_Static_ReadStatus.SetWindowText(STATIC_NOTREAD); + this->xv_Static_File.SetWindowText(STATIC_NOTREAD); + this->xv_Static_FilePath.SetWindowText(STATIC_NOTREAD); + CStatic* static1 = (CStatic*)GetDlgItem(IDC_STATIC_READSTATUS); + static1->InvalidateRect(NULL, 1); + MessageBox(ERROR_EXCEPTION, ERROR_TITLE, MB_ICONINFORMATION | MB_OK); + return 1; + } + else { + return 0; + } +} + + void Cwaifu2xncnnvulkanDlg::LoadDlgStr() { UINT Lang; diff --git a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.h b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.h index cc1db8b..55afda0 100644 --- a/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.h +++ b/Sources/waifu2x-ncnn-vulkan/waifu2x-ncnn-vulkanDlg.h @@ -110,6 +110,10 @@ class Cwaifu2xncnnvulkanDlg : public CDialogEx CEdit xv_CPUINFO; CEdit xv_GPUINFO; + UINT SuspendCheck(LPCTSTR Path1, UINT Flag); + UINT SuspendCheckMulti(LPCTSTR Path1, LPCTSTR Path2); + UINT DeleteExceptionCheck(); + UINT UpscaleExceptionCheck(); void LoadDlgStr(); afx_msg LRESULT OnCompleteWaifu2xThread(WPARAM wParam, LPARAM lParam); afx_msg LRESULT OnCompleteFFmpegThread(WPARAM wParam, LPARAM lParam); diff --git a/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.aps b/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.aps index bcf11f0..5d9c09d 100644 Binary files a/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.aps and b/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.aps differ diff --git a/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.rc b/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.rc index cc042bd..39dddb8 100644 Binary files a/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.rc and b/Sources/waifu2x-ncnn-vulkan/waifu2xncnnvulkan.rc differ