2016-05-05 18:49:54 +09:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#define _CRT_SECURE_NO_WARNINGS
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#include <tchar.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <thread>
|
|
|
|
|
#include <atomic>
|
|
|
|
|
#include <boost/filesystem.hpp>
|
|
|
|
|
#include <boost/optional.hpp>
|
2016-07-03 17:13:02 +09:00
|
|
|
|
#include "../common/waifu2x.h"
|
2016-05-05 18:49:54 +09:00
|
|
|
|
#include "resource.h"
|
|
|
|
|
#include "tstring.h"
|
|
|
|
|
#include "LangStringList.h"
|
|
|
|
|
|
|
|
|
|
#undef ERROR
|
|
|
|
|
|
|
|
|
|
#define WM_FAILD_CREATE_DIR (WM_APP + 5)
|
|
|
|
|
#define WM_ON_WAIFU2X_ERROR (WM_APP + 6)
|
2016-05-07 06:10:23 +09:00
|
|
|
|
#define WM_ON_WAIFU2X_NO_OVERWRITE (WM_APP + 8)
|
2016-05-05 18:49:54 +09:00
|
|
|
|
#define WM_END_THREAD (WM_APP + 7)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>_<EFBFBD>C<EFBFBD>A<EFBFBD><41><EFBFBD>O<EFBFBD>p
|
|
|
|
|
class DialogEvent
|
|
|
|
|
{
|
|
|
|
|
private:
|
2016-07-06 14:32:38 +09:00
|
|
|
|
static HWND dh;
|
|
|
|
|
|
|
|
|
|
static LangStringList langStringList;
|
2016-05-05 18:49:54 +09:00
|
|
|
|
|
|
|
|
|
boost::filesystem::path exeDir;
|
|
|
|
|
std::vector<int> CropSizeList;
|
|
|
|
|
|
|
|
|
|
tstring input_str;
|
|
|
|
|
std::vector<tstring> input_str_multi;
|
|
|
|
|
tstring output_str;
|
2016-07-03 17:13:02 +09:00
|
|
|
|
std::string modeStr;
|
|
|
|
|
Waifu2x::eWaifu2xModelType mode;
|
2016-05-05 18:49:54 +09:00
|
|
|
|
int noise_level;
|
|
|
|
|
double scale_ratio;
|
|
|
|
|
int scale_width;
|
|
|
|
|
int scale_height;
|
|
|
|
|
tstring model_dir;
|
|
|
|
|
std::string process;
|
|
|
|
|
tstring outputExt;
|
|
|
|
|
tstring inputFileExt;
|
|
|
|
|
|
|
|
|
|
bool use_tta;
|
|
|
|
|
|
|
|
|
|
boost::optional<int> output_quality;
|
|
|
|
|
int output_depth;
|
|
|
|
|
|
|
|
|
|
int crop_size;
|
|
|
|
|
int batch_size;
|
|
|
|
|
|
2016-06-08 11:11:36 +09:00
|
|
|
|
int gpu_no;
|
|
|
|
|
|
2016-05-05 18:49:54 +09:00
|
|
|
|
std::vector<tstring> extList;
|
|
|
|
|
|
|
|
|
|
std::thread processThread;
|
|
|
|
|
std::atomic_bool cancelFlag;
|
|
|
|
|
|
|
|
|
|
tstring autoSetAddName;
|
|
|
|
|
bool isLastError;
|
|
|
|
|
|
|
|
|
|
tstring logMessage;
|
|
|
|
|
|
|
|
|
|
tstring output_dir;
|
|
|
|
|
|
|
|
|
|
std::string usedProcess;
|
|
|
|
|
std::chrono::system_clock::duration cuDNNCheckTime;
|
|
|
|
|
std::chrono::system_clock::duration InitTime;
|
|
|
|
|
std::chrono::system_clock::duration ProcessTime;
|
|
|
|
|
|
|
|
|
|
enum eScaleType
|
|
|
|
|
{
|
|
|
|
|
eScaleTypeRatio,
|
|
|
|
|
eScaleTypeWidth,
|
|
|
|
|
eScaleTypeHeight,
|
2017-03-20 21:44:57 +09:00
|
|
|
|
eScaleTypeWidthHeight,
|
2016-05-05 18:49:54 +09:00
|
|
|
|
eScaleTypeEnd,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
eScaleType scaleType;
|
|
|
|
|
|
|
|
|
|
enum eModelType
|
|
|
|
|
{
|
|
|
|
|
eModelTypeRGB,
|
|
|
|
|
eModelTypePhoto,
|
|
|
|
|
eModelTypeY,
|
2016-05-17 00:44:38 +09:00
|
|
|
|
eModelTypeUpConvRGB,
|
2016-07-04 21:45:41 +09:00
|
|
|
|
eModelTypeUpConvPhoto,
|
2016-05-05 18:49:54 +09:00
|
|
|
|
eModelTypeEnd,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
eModelType modelType;
|
|
|
|
|
|
|
|
|
|
std::wstring LangName;
|
|
|
|
|
|
|
|
|
|
std::atomic<int64_t> TimeLeftThread;
|
|
|
|
|
std::atomic<DWORD> TimeLeftGetTimeThread;
|
|
|
|
|
|
|
|
|
|
bool isCommandLineStart;
|
|
|
|
|
|
|
|
|
|
tstring tAutoMode;
|
|
|
|
|
|
|
|
|
|
bool isArgStartAuto;
|
|
|
|
|
bool isArgStartSuccessFinish;
|
|
|
|
|
bool isOutputNoOverwrite;
|
|
|
|
|
tstring tInputDirFix;
|
|
|
|
|
tstring tOutputDirFix;
|
|
|
|
|
|
2016-05-07 17:04:03 +09:00
|
|
|
|
bool isNotSaveParam;
|
|
|
|
|
|
2016-07-10 20:08:22 +09:00
|
|
|
|
bool isSetInitCrop;
|
|
|
|
|
|
2016-05-05 18:49:54 +09:00
|
|
|
|
private:
|
|
|
|
|
tstring AddName() const;
|
|
|
|
|
|
|
|
|
|
bool SyncMember(const bool NotSyncCropSize, const bool silent = false);
|
|
|
|
|
|
|
|
|
|
void SetCropSizeList(const boost::filesystem::path &input_path);
|
|
|
|
|
|
|
|
|
|
static boost::filesystem::path GetFileName(const boost::filesystem::path &input_path)
|
|
|
|
|
{
|
|
|
|
|
if (boost::filesystem::is_directory(input_path))
|
|
|
|
|
return input_path.stem();
|
|
|
|
|
else
|
|
|
|
|
return input_path.filename();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ProcessWaifu2x();
|
|
|
|
|
|
|
|
|
|
void ReplaceAddString();
|
|
|
|
|
|
|
|
|
|
void AddLogMessage(const TCHAR *msg);
|
|
|
|
|
|
|
|
|
|
void Waifu2xTime();
|
|
|
|
|
|
|
|
|
|
void SaveIni(const bool isSyncMember = true);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>̓p<CD83>X<EFBFBD><58><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static UINT_PTR CALLBACK OFNHookProcIn(
|
|
|
|
|
_In_ HWND hdlg,
|
|
|
|
|
_In_ UINT uiMsg,
|
|
|
|
|
_In_ WPARAM wParam,
|
|
|
|
|
_In_ LPARAM lParam
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// <20>o<EFBFBD>̓p<CD83>X<EFBFBD><58><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
static UINT_PTR CALLBACK OFNHookProcOut(
|
|
|
|
|
_In_ HWND hdlg,
|
|
|
|
|
_In_ UINT uiMsg,
|
|
|
|
|
_In_ WPARAM wParam,
|
|
|
|
|
_In_ LPARAM lParam
|
|
|
|
|
);
|
|
|
|
|
|
2016-07-06 14:32:38 +09:00
|
|
|
|
static void LogFatalFunc();
|
|
|
|
|
|
2016-05-05 18:49:54 +09:00
|
|
|
|
public:
|
|
|
|
|
DialogEvent();
|
|
|
|
|
|
|
|
|
|
void Exec(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void WaitThreadExit(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void Timer(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void OnDialogEnd(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void OnFaildCreateDir(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void OnWaifu2xError(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
2016-05-07 06:10:23 +09:00
|
|
|
|
void OnWaifu2xNoOverwrite(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
2016-05-05 18:49:54 +09:00
|
|
|
|
void SetWindowTextLang();
|
|
|
|
|
|
|
|
|
|
void SetDepthAndQuality(const bool SetDefaultQuality = true);
|
|
|
|
|
|
|
|
|
|
void Create(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void Cancel(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void UpdateAddString(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
2016-05-07 07:51:09 +09:00
|
|
|
|
void OnModeChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
2016-05-05 18:49:54 +09:00
|
|
|
|
void ScaleRadio(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void CheckCUDNN(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
LRESULT OnSetInputFilePath(const TCHAR *tPath);
|
|
|
|
|
|
|
|
|
|
LRESULT OnSetInputFilePath();
|
|
|
|
|
|
|
|
|
|
LRESULT OnSetOutputFilePath(const TCHAR *tPath);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>œn<C593><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>hWnd<6E><64>IDC_EDIT<49><54>HWND(<28>R<EFBFBD><52><EFBFBD>g<EFBFBD><67><EFBFBD>[<5B><><EFBFBD>̃C<CC83>x<EFBFBD><78><EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
LRESULT DropInput(HWND hWnd, WPARAM wParam, LPARAM lParam, WNDPROC OrgSubWnd, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>œn<C593><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>hWnd<6E><64>IDC_EDIT<49><54>HWND(<28>R<EFBFBD><52><EFBFBD>g<EFBFBD><67><EFBFBD>[<5B><><EFBFBD>̃C<CC83>x<EFBFBD><78><EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
LRESULT DropOutput(HWND hWnd, WPARAM wParam, LPARAM lParam, WNDPROC OrgSubWnd, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
LRESULT TextInput(HWND hWnd, WPARAM wParam, LPARAM lParam, WNDPROC OrgSubWnd, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void InputRef(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void OutputRef(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void LangChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void OutExtChange(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void ClearOutputDir(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
|
|
|
|
|
void AppSetting(HWND hWnd, WPARAM wParam, LPARAM lParam, LPVOID lpData);
|
|
|
|
|
};
|
|
|
|
|
|