|
|
|
|
#pragma once
|
|
|
|
|
#include "resource.h"
|
|
|
|
|
#include "afxcmn.h"
|
|
|
|
|
#include "ExtendSliderCtrl.h"
|
|
|
|
|
#include "BtnST.h"
|
|
|
|
|
#include "BitmapSlider.h"
|
|
|
|
|
#include "tlhelp32.h"
|
|
|
|
|
//<2F><><EFBFBD>ļ<EFBFBD><C4BC>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// Ϊ<><CEAA>֤<EFBFBD><D6A4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>Ϊ25fps<70><73><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>ٶ<EFBFBD>Ϊ8533
|
|
|
|
|
static const int g_DefaultReadLen = 6000; // 8k
|
|
|
|
|
static const int g_MaxReadLen = 20480; // 20k
|
|
|
|
|
static const int g_MinReadLen = 1024; // 1k
|
|
|
|
|
struct struFileStru
|
|
|
|
|
{
|
|
|
|
|
ULONGLONG FileTotalLen; // <20>ļ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
ULONGLONG curFilePos; // <20><>ǰ<EFBFBD><C7B0>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
UINT FrameLen; // ÿ֡<C3BF>ֽڴ<D6BD>С
|
|
|
|
|
BYTE Buffer[g_MaxReadLen]; // <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ֡<C3BF><D6A1><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
struFileStru()
|
|
|
|
|
{
|
|
|
|
|
FileTotalLen = 0;
|
|
|
|
|
curFilePos = 0;
|
|
|
|
|
FrameLen = g_DefaultReadLen;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void ClearStru()
|
|
|
|
|
{
|
|
|
|
|
FileTotalLen = 0;
|
|
|
|
|
curFilePos = 0;
|
|
|
|
|
FrameLen = 8533;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CShowReplayDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
class CShowReplayDlg : public CDialogEx
|
|
|
|
|
{
|
|
|
|
|
DECLARE_DYNAMIC(CShowReplayDlg)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
CShowReplayDlg(CWnd* pParent = NULL); // <20><><EFBFBD><D7BC><EFBFBD>캯<EFBFBD><ECBAAF>
|
|
|
|
|
virtual ~CShowReplayDlg();
|
|
|
|
|
|
|
|
|
|
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
enum { IDD = IDD_DLG_REPLAY };
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
|
|
|
|
|
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
CString m_HFfilePath; //<2F>ط<F2BFAABB><D8B7>ļ<EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
CFile m_ReplayFile; //<2F>ط<EFBFBD><D8B7>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
BOOL m_bFileOpen; //<2F>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7>ɹ<F2BFAAB3>
|
|
|
|
|
struFileStru m_FileInfo; // <20>ط<EFBFBD><D8B7>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
|
|
|
|
|
UINT m_TimerID; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
UINT m_TimerPeriod; // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
BOOL m_bIsPlay; // <20><><EFBFBD>ڲ<EFBFBD><DAB2>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>ͣ
|
|
|
|
|
BOOL m_bPauseSliderReflect; // <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
|
|
|
|
|
BOOL m_bService; // <20>жϺ<D0B6>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>طŽ<D8B7><C5BD>水ť
|
|
|
|
|
CButtonST m_Btn_OpenFile; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
CButtonST m_Btn_PlayPause; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ
|
|
|
|
|
CButtonST m_Btn_Stop; // ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
CButtonST m_Btn_SpeedUp; // <20><><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>
|
|
|
|
|
CButtonST m_Btn_SpeedDown; // <20><><EFBFBD>ٲ<EFBFBD><D9B2><EFBFBD>
|
|
|
|
|
|
|
|
|
|
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|
|
|
|
BOOL m_bTransParent; // TRUEΪ<45><CEAA><EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ΪFALSE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
//CExtendSliderCtrl m_SliderReplayRatio; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CBitmapSlider m_SliderReplayRatio; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bitmap
|
|
|
|
|
|
|
|
|
|
virtual BOOL OnInitDialog();
|
|
|
|
|
|
|
|
|
|
void StartTimer(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
void StopTimer(); // <20>رն<D8B1>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
|
|
|
|
void ReadAndPlay(); // <20><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
void SetFileReplayRatio(double ratio); // <20><><EFBFBD>ûطŽ<D8B7><C5BD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
afx_msg void OnBnClickedBtnOpenfile(); // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
// <20><><EFBFBD>ż<EFBFBD><C5BC><EFBFBD>ͣ<EFBFBD><CDA3>Ƶ
|
|
|
|
|
afx_msg void OnBnClickedBtnFileplaypause();
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
afx_msg void OnBnClickedBtnFilestop();
|
|
|
|
|
// <20><><EFBFBD>Ž<EFBFBD><C5BD>ȱ<EFBFBD><C8B1><EFBFBD>
|
|
|
|
|
afx_msg void OnBnClickedBtnFileslow();
|
|
|
|
|
// <20><><EFBFBD>Ž<EFBFBD><C5BD>ȱ<EFBFBD><C8B1><EFBFBD>
|
|
|
|
|
afx_msg void OnBnClickedBtnFilefast();
|
|
|
|
|
// ѡ<><D1A1>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ʵʱ/<2F>طţ<D8B7>Ĭ<EFBFBD><C4AC>ʵʱ<CAB5><CAB1>
|
|
|
|
|
afx_msg void OnCbnSelchangeComboxPlaytype();
|
|
|
|
|
// <20>رմ<D8B1><D5B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
afx_msg void OnDestroy();
|
|
|
|
|
// afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
afx_msg LRESULT OnBitmapSliderMoving(WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
|
|
|
|
// <20>жϽ<D0B6><CFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD> <20><><EFBFBD><EFBFBD>0˵<30><CBB5>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
DWORD GetProcessIdFromName(LPCTSTR name);
|
|
|
|
|
|
|
|
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
|
|
|
|
|
|
|
|
// CH92<39><32><EFBFBD><EFBFBD>DCΪEO/IR
|
|
|
|
|
LRESULT ReturnPayloadTypeWarning(WPARAM wParam, LPARAM lParam);
|
|
|
|
|
};
|