#pragma once
|
|
#include "akCoreLinker.h"
|
#include <Windows.h>
|
|
|
namespace akCore
|
{
|
class AKCORE_DLLSPEC CakTimeManager
|
{
|
public:
|
enum PlayMode
|
{
|
Play,
|
Stop,
|
Pause,
|
Playing,
|
PlayEnd,
|
SettingTime
|
};
|
public:
|
CakTimeManager(void);
|
virtual ~CakTimeManager(void);
|
|
//½ÃÀÛ ÁßÁö(±¸¹öÀü) //¹è¼Ó Àû¿ë ¾È¹ÞÀ½
|
inline void SetBegin();
|
inline void SetEnd();
|
inline double GetRunTimeSec(); //½ÃÀ۽ð£ ÀúÀåÇϰí Á¾·á½Ã°£±îÁöÀÇ Å¸ÀÓ(ÃÊ´ÜÀ§)
|
inline double GetRunTimeMsec(); //½ÃÀ۽ð£ ÀúÀåÇϰí Á¾·á½Ã°£±îÁöÀÇ Å¸ÀÓ(ÃÊ´ÜÀ§)
|
inline double GetFrameRate();
|
|
//Ç÷¹À̹٠±â´É(½Å¹öÀü)
|
void SetInit();//Ãʱ⠼³Á¤À¸·Î µÇµ¹¸²
|
virtual inline void SetPlay();
|
virtual inline void SetStop();
|
virtual inline void SetTime(int msec);
|
virtual inline void SetPause();
|
|
|
virtual inline double GetTime(int type=0); //0=Sec, 1=MSec
|
virtual inline void GetTime(int* h, int* m, int* s, int* ms);
|
virtual inline PlayMode GetPlayMode();
|
virtual inline void SetSpeedRate(double speedrate); //¹è¼Ó ¼³Á¤(0º¸´Ù Å« ½Ç¼ö ÀԷ°¡´É)
|
virtual inline double GetSpeedRate(); //¹è¼Ó ¼³Á¤°ª Àбâ
|
|
protected:
|
LARGE_INTEGER m_Frequency;
|
LARGE_INTEGER m_BeginTime;
|
LARGE_INTEGER m_Endtime;
|
|
double m_PauseTime;
|
double m_LastTime;
|
PlayMode m_PlayState;
|
double m_SpeedRate; //¹è¼Ó
|
|
//ÄÝ¹é µ¥ÀÌÅÍ °ü¸®
|
public:
|
typedef void (*MsgCallbackFunc) (int msg, void*);
|
void setMsgCallbackFunc(MsgCallbackFunc userFunc, void* data = NULL)
|
{
|
m_msgCallbackFunc = userFunc;
|
m_MsgCallbackFuncData = data;
|
};
|
protected:
|
void* m_MsgCallbackFuncData;
|
MsgCallbackFunc m_msgCallbackFunc;
|
int m_nSyncObject;
|
};
|
|
class AKCORE_DLLSPEC CakTimeManagerAdv : public CakTimeManager
|
{
|
public:
|
CakTimeManagerAdv(void);
|
virtual ~CakTimeManagerAdv(void);
|
|
public:
|
virtual inline void SetPlay();
|
virtual inline void SetTime(int msec);
|
virtual inline void SetStop();
|
protected:
|
void setEnd();//Ç÷¹ÀÌ ½Ã°£ÀÌ ÃÖ´ë ½Ã°£À» ³Ñ¾úÀ» °æ¿ì È£Ãâ
|
public:
|
double m_timeMax;
|
|
public:
|
static void threadPlayer(void* arg);
|
int m_flagThreadPlayer;
|
|
private:
|
bool m_bPlaying;
|
|
};
|
}
|