⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logplayer.h

📁 The application wizard has created this SoccerDoctor application for you. This application not onl
💻 H
字号:
#ifndef _LOG_PLAYER_H
#define _LOG_PLAYER_H
#include "defines.h"
#include "LogParser.h" // CLogParser,CLogParserFactory
#include "afxmt.h" // CCriticalSection
#include "GZFile.h" // CGZFile
#include <vector>
#define MAX_CYCLES 18000
/************************************************************************/
/*                    CParserThread Class                               */
/************************************************************************/
class CParserThread : public CWinThread {
public:
	CParserThread(CGZFile *pLogFile,CLogParser *pParser) : 
	  _pLogFile(pLogFile),_pParser(pParser)	,_bAlive(false)
	  {
			m_bAutoDelete = false; 
	  }
	virtual int Run();
	virtual ~CParserThread();
	bool Alive() const { return _bAlive; }
protected:
	virtual BOOL InitInstance();
private:
	CGZFile* _pLogFile;
	CLogParser* _pParser;
	bool _bAlive;
};
/************************************************************************/
/*                   CLogPlayer Class                                   */
/************************************************************************/
enum LogPlayerCommand{
	CmdLoad,
	CmdOpen,
	CmdPlay,
	CmdStop,
	CmdForward,
	CmdBackward,
	CmdRewind,
	CmdJump,
	CmdReverse,
	CmdAccelerate,
	CmdDecelerate,
	CmdClean, // 清除所有的东西,停止所有的动作
	CmdSaveLog
};
class CMainFrame;
class CLogPlayer
{
public:
	CLogPlayer(void);
	~CLogPlayer(void);
	void init(CMainFrame* pMainFrame) { _pMainFrame = pMainFrame ; }
	bool DoCommand(LogPlayerCommand cmd,CString strValue=NULL);
	bool addDispInfo(const dispinfo_t2* pInfo);
	const cycle_info_t* GetDisplayInfo();
	const cycle_info_t* GetLastDispInfo();
	bool getCommandStatus(LogPlayerCommand cmd);
	void DisplayCycle(UINT nCycle);
	const server_params_t* getServerParam() const { return &m_ServerParams; }
	void  setServerParam(const server_params_t* p) { m_ServerParams = *p ; }
	const player_params_t* getPlayerParam() const { return &m_PlayerParams; }
	void  setPlayerParam(const player_params_t* p) { m_PlayerParams = *p ; }
	void  addOneCycle(const cycle_info_t& cInfo);
	const player_type_t* getPlayerType(UINT nType);
	void  addPlayerType(player_type_t* p) { m_player_types.push_back(*p); }
	void WriteStatus(CString str);
protected:
	void init();
	bool LoadLog();
	bool OpenLog(CString strFileName);
	bool ParseLog(CGZFile *pLogFile);
	bool SaveLog(void);	
	void PlayLog();
	void ReverseLog();
	void StopPlay();
	void TimerStart();
	void TimerStop();
	void Accelerate();
	void Decelerate();
	void RewindLog();
	void Backward();
	void Forward();
	void JumpTo();
private:
	const static int MAX_FREQ = 1000; // ms
	const static int MIN_FREQ = 10; // ms
	short GetMaxCycle();
	short GetMinCycle();
	short GetCurrentCycle();
	double	m_dFreq;
	UINT	m_nCurrent;
	int FindCyclePos(short nCycle);
	CLogParserFactory _LogParserFactory;
	CDispinfoParserFactory _DispinfoParserFactory;
	std::vector<cycle_info_t> m_cycle_infos;//(MAX_CYCLES);
	std::vector<player_type_t> m_player_types;
	server_params_t m_ServerParams;
	player_params_t m_PlayerParams;
	bool m_bReverse;
	bool m_bTimerAlive;
	CMainFrame* _pMainFrame;
	CParserThread* _pParserThread;
	CGZFile* _pGZFile;
	CCriticalSection _Mutex;
	cycle_info_t _CurrentCycle;
};
#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -