Files
soft/CristalDiskMark/source/CrystalDiskMark/DiskMarkDlg.h
T

293 lines
6.8 KiB
C++

/*---------------------------------------------------------------------------*/
// Author : hiyohiyo
// Mail : hiyohiyo@crystalmark.info
// Web : https://crystalmark.info/
// License : MIT License
/*---------------------------------------------------------------------------*/
#pragma once
#include "AboutDlg.h"
#include "SettingsDlg.h"
#include "FontSelectionDlg.h"
#include "DialogFx.h"
#include "MainDialogFx.h"
#include "ButtonFx.h"
#include "StaticFx.h"
#include "ComboBoxFx.h"
#include "EditFx.h"
#include "UtilityFx.h"
#include "OsInfoFx.h"
#include "DarkMode.h"
class CDiskMarkDlg : public CMainDialogFx
{
public:
CDiskMarkDlg(CWnd* pParent = NULL);
~CDiskMarkDlg();
enum { IDD = IDD_DISKMARK_DIALOG };
enum SCORE_UNIT
{
SCORE_MBS = 0,
SCORE_GBS,
SCORE_IOPS,
SCORE_US,
};
enum BENCH_TYPE
{
BENCH_SEQ = 0,
BENCH_RND,
};
volatile CWinThread* m_WinThread;
volatile BOOL m_DiskBenchStatus;
void InitScore();
void UpdateScore();
double m_ReadScore[9];
double m_WriteScore[9];
double m_ReadLatency[9];
double m_WriteLatency[9];
#ifdef MIX_MODE
double m_MixScore[9];
double m_MixLatency[9];
#endif
void SetMeter(CStaticFx* control, double score, double latency, int blockSize, int unit);
void ChangeLang(CString LangName);
void UpdateDialogSize();
void ChangeButtonStatus(BOOL status);
void SetScoreToolTip(CStaticFx* cx, double score, double latency, int blockSize);
void UpdateThemeInfo();
CString m_ValueTestUnit;
CString m_ValueTestCount;
CString m_ValueTestSize;
CString m_ValueTestDrive;
CString m_TestDriveInfo;
CString m_TestTargetPath;
long m_TestDriveLetter;
int m_MaxIndexTestDrive;
int m_IndexTestUnit;
int m_IndexTestCount;
int m_IndexTestSize;
int m_IndexTestDrive;
int m_IndexTestMix;
int m_BenchType[9];
int m_BenchSize[9];
int m_BenchQueues[9];
int m_BenchThreads[9];
int m_IntervalTime;
int m_MeasureTime;
int m_TestData;
int m_Profile;
int m_Benchmark;
int m_MarginButtonTop;
int m_MarginButtonLeft;
int m_MarginButtonBottom;
int m_MarginButtonRight;
int m_MarginMeterTop;
int m_MarginMeterLeft;
int m_MarginMeterBottom;
int m_MarginMeterRight;
int m_MarginCommentTop;
int m_MarginCommentLeft;
int m_MarginCommentBottom;
int m_MarginCommentRight;
int m_MarginDemoTop;
int m_MarginDemoLeft;
int m_MarginDemoBottom;
int m_MarginDemoRight;
BOOL m_AdminMode;
BOOL m_MixMode;
int m_MixRatio;
// Message //
CString m_MesDiskCapacityError;
CString m_MesDiskWriteError;
CString m_MesDiskReadError;
CString m_MesStopBenchmark;
CString m_MesDiskCreateFileError;
CString m_MesDiskSpdNotFound;
void SetWindowTitle(CString message);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
void OnAll();
void OnTest0();
void OnTest1();
void OnTest2();
void OnTest3();
void Stop();
void OnSequentialPeak();
void OnRandomPeak();
void OnSequentialReal();
void OnRandomReal();
void SelectDrive();
CString GetResultString(int type, double score, double latency, int size, int queues, int threads);
CString GetButtonText(int type, int size, int queues, int threads, int unit);
CString GetButtonToolTipText(int type, int size, int queues, int threads, int unit);
CString m_TitleTestDrive;
CString m_TitleTestCount;
CString m_TitleTestSize;
CString m_TitleTestQSize;
protected:
HICON m_hIcon;
HICON m_hIconMini;
HACCEL m_hAccelerator;
int m_SizeX;
int m_SizeY;
CAboutDlg* m_AboutDlg;
CSettingsDlg* m_SettingsDlg;
void SetControlFont();
void InitDrive();
void UpdateDriveToolTip();
BOOL CheckRadioZoomType(int id, int value);
void CheckRadioZoomType();
void CheckRadioPresetMode();
void UpdateQueuesThreads();
void EnableMenus();
void DisableMenus();
void SaveText(CString fileName);
void SetLayeredWindow(HWND hWnd, BYTE alpha);
void UpdateComboTooltip();
virtual BOOL CheckThemeEdition(CString name);
BOOL IsDefaultMode();
BOOL IsNVMe8Mode();
BOOL IsFlashMemoryMode();
#ifdef MIX_MODE
CStaticFx m_TestMix0;
CStaticFx m_TestMix1;
CStaticFx m_TestMix2;
CStaticFx m_TestMix3;
CStaticFx m_MixUnit;
CComboBoxFx m_ComboMix;
#endif
CButtonFx m_ButtonAll;
CButtonFx m_ButtonTest0;
CButtonFx m_ButtonTest1;
CButtonFx m_ButtonTest2;
CButtonFx m_ButtonTest3;
CStaticFx m_TestRead0;
CStaticFx m_TestRead1;
CStaticFx m_TestRead2;
CStaticFx m_TestRead3;
CStaticFx m_TestWrite0;
CStaticFx m_TestWrite1;
CStaticFx m_TestWrite2;
CStaticFx m_TestWrite3;
CEditFx m_Comment;
CComboBoxFx m_ComboCount;
CComboBoxFx m_ComboSize;
CComboBoxFx m_ComboDrive;
CComboBoxFx m_ComboUnit;
CStaticFx m_WriteUnit;
CStaticFx m_ReadUnit;
CStaticFx m_DemoSetting;
virtual BOOL OnInitDialog();
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual BOOL PreTranslateMessage(MSG* pMsg);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg LRESULT OnUpdateScore(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnUpdateMessage(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnExitBenchmark(WPARAM wParam, LPARAM lParam);
afx_msg void OnZoom100();
afx_msg void OnZoom125();
afx_msg void OnZoom150();
afx_msg void OnZoom200();
afx_msg void OnZoom250();
afx_msg void OnZoom300();
afx_msg void OnZoomAuto();
afx_msg void OnExit();
afx_msg void OnAbout();
afx_msg void OnFontSetting();
LRESULT OnQueryEndSession(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnCopy();
afx_msg void OnHelp();
afx_msg void OnCrystalDewWorld();
afx_msg void OnModeDefault();
afx_msg void OnModeAll0x00();
afx_msg void OnSettingDefault();
afx_msg void OnSettingNVMe8();
afx_msg void OnSettingFlashMemory();
afx_msg void OnProfileDefault();
afx_msg void OnProfilePeak();
afx_msg void OnProfileReal();
afx_msg void OnProfileDemo();
afx_msg void OnSaveText();
afx_msg void OnSaveImage();
afx_msg void OnSettingsQueuesThreads();
afx_msg void OnCbnSelchangeComboDrive();
afx_msg void OnCbnSelchangeComboUnit();
afx_msg void UpdateUnitLabel();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
void ProfileDefault();
void ProfilePeak();
void ProfileReal();
void ProfileDemo();
void SettingsQueuesThreads(int type);
#ifdef MIX_MODE
afx_msg void OnProfileDefaultMix();
afx_msg void OnProfilePeakMix();
afx_msg void OnProfileRealMix();
void ProfileDefaultMix();
void ProfilePeakMix();
void ProfileRealMix();
afx_msg void OnCbnSelchangeComboMix();
#endif
afx_msg void OnBenchmarkReadWrite();
afx_msg void OnBenchmarkReadOnly();
afx_msg void OnBenchmarkWriteOnly();
void BenchmarkReadWrite();
void BenchmarkReadOnly();
void BenchmarkWriteOnly();
};