Files
CodeRepository/Apps/App_FastDiskAccessor/mainwindow.h
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

107 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QComboBox>
#include <QTimer>
#include <thread>
using namespace std;
#include "DiskAccessor.h"
#include "common/GCycleQueue.h"
namespace Ui {
class MainWindow;
}
#ifndef __byte_def__
#define __byte_def__
typedef unsigned char BYTE, Byte, byte;
#endif
const int c_nFRAME_SIZE = (32*1024*1024); // 32MB (当前常见最小硬盘Cache为64MB此处取一半)
enum enumExportStatus
{
ES_Exporting = 1,
ES_Finished = 2,
ES_Stoped = 3,
ES_Ready = 0,
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
bool eventFilter(QObject *obj, QEvent *event);
private slots:
void OnButtonClicked();
void OnComboxIndexChanged(int nIndex);
void OnTimer();
private:
void InitStyle();
void LoadConnect();
void UnloadConnect();
bool BrowseRawFile();
bool DoExportData();
void SwitchUI(bool bExport);
bool DoQueryExportDataAddr();
private:
typedef void (MainWindow::*ThreadRunFunPtr)();
static void ThreadEntry(ThreadRunFunPtr pRunFun, void* pOwner);
void ThreadFun_ExportData();
void ThreadFun_SaveData();
bool StartThread();
void StopThread();
private:
Ui::MainWindow *ui;
QPoint m_ptMouse;
bool m_bMousePressed;
bool m_bThreadRunning_ExportData;
std::thread* m_pThread_ExportData;
bool m_bThreadRunning_SaveData;
std::thread* m_pThread_SaveData;
bool m_bExportData;
bool m_bUpdateUI_ExportData;
QTimer m_varTimer;
int m_nExportDiskID;
LARGE_INTEGER m_varAddress_ExportData;
LARGE_INTEGER m_varSize_ExportData;
GCycleQueue m_varCycleQueue;
double m_dExportData_Speed;
double m_dExportData_Progress;
double m_dExportData_TimeCost;
enumExportStatus m_eExportStatus;
QString m_strFilePath_SaveData;
bool m_bIsStartExport;
};
#endif // MAINWINDOW_H