You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.9 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "resource.h"
#include "afxcmn.h"
#include "ExtendSliderCtrl.h"
#include "BtnST.h"
#include "BitmapSlider.h"
#include "tlhelp32.h"
//读文件结构体
// 为保证初始读数速度为25fps此处计算得出速度为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; // 文件 长度
ULONGLONG curFilePos; // 当前读取文件当前内容位置
UINT FrameLen; // 每帧字节大小
BYTE Buffer[g_MaxReadLen]; // 从文件读取的数据每帧数据存放位置
struFileStru()
{
FileTotalLen = 0;
curFilePos = 0;
FrameLen = g_DefaultReadLen;
};
void ClearStru()
{
FileTotalLen = 0;
curFilePos = 0;
FrameLen = 8533;
}
};
// CShowReplayDlg 对话框
class CShowReplayDlg : public CDialogEx
{
DECLARE_DYNAMIC(CShowReplayDlg)
public:
CShowReplayDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CShowReplayDlg();
// 对话框数据
enum { IDD = IDD_DLG_REPLAY };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
private:
CString m_HFfilePath; //打开回放文件路径
CFile m_ReplayFile; //回放文件对象
BOOL m_bFileOpen; //文件是否打开成功
struFileStru m_FileInfo; // 回放文件信息
UINT m_TimerID; // 定时器编号
UINT m_TimerPeriod; // 定时器周期
BOOL m_bIsPlay; // 正在播放或者已经暂停
BOOL m_bPauseSliderReflect; // 暂停滑动条响应
BOOL m_bService; // 判断后台服务程序是否打开
// 美化视频回放界面按钮
CButtonST m_Btn_OpenFile; // 打开文件
CButtonST m_Btn_PlayPause; // 播放暂停
CButtonST m_Btn_Stop; // 停止播放
CButtonST m_Btn_SpeedUp; // 加速播放
CButtonST m_Btn_SpeedDown; // 减速播放
// 对话框半透明设置变量
BOOL m_bTransParent; // TRUE为半透明初始设置为FALSE
public:
//CExtendSliderCtrl m_SliderReplayRatio; // 滑动条关联变量
CBitmapSlider m_SliderReplayRatio; // 滑动条关联变量——加载bitmap
virtual BOOL OnInitDialog();
void StartTimer(); // 启动定时器
void StopTimer(); // 关闭定时器
void ReadAndPlay(); // 读取文件,并播放
void SetFileReplayRatio(double ratio); // 设置回放进度
afx_msg void OnBnClickedBtnOpenfile(); // 打开文件
// 播放及暂停视频
afx_msg void OnBnClickedBtnFileplaypause();
// 停止播放
afx_msg void OnBnClickedBtnFilestop();
// 播放进度变慢
afx_msg void OnBnClickedBtnFileslow();
// 播放进度变快
afx_msg void OnBnClickedBtnFilefast();
// 选择模式——实时/回放(默认实时)
afx_msg void OnCbnSelchangeComboxPlaytype();
// 关闭窗口时销毁
afx_msg void OnDestroy();
// afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
// 滑动条响应函数
afx_msg LRESULT OnBitmapSliderMoving(WPARAM wParam, LPARAM lParam);
// 判断进程是否正在运行函数 返回0说明没有运行
DWORD GetProcessIdFromName(LPCTSTR name);
virtual BOOL PreTranslateMessage(MSG* pMsg);
// CH92中修改DC为EO/IR
LRESULT ReturnPayloadTypeWarning(WPARAM wParam, LPARAM lParam);
};