SDC C-Project CF Review 프로그램
LYW
2021-07-29 bd13fa3f9396f1f681759f4623c55d5f91d74a9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#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;
        
    };
}