IrrlichtEngine
ITimer.h
Go to the documentation of this file.
00001 // Copyright (C) 2002-2011 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_TIMER_H_INCLUDED__
00006 #define __I_TIMER_H_INCLUDED__
00007 
00008 #include "IReferenceCounted.h"
00009 
00010 namespace irr
00011 {
00012 
00014 class ITimer : public virtual IReferenceCounted
00015 {
00016 public:
00018 
00022         virtual u32 getRealTime() const = 0;
00023 
00024         enum EWeekday
00025         {
00026                 EWD_SUNDAY=0,
00027                 EWD_MONDAY,
00028                 EWD_TUESDAY,
00029                 EWD_WEDNESDAY,
00030                 EWD_THURSDAY,
00031                 EWD_FRIDAY,
00032                 EWD_SATURDAY
00033         };
00034 
00035         struct RealTimeDate
00036         {
00037                 // Hour of the day, from 0 to 23
00038                 u32 Hour;
00039                 // Minute of the hour, from 0 to 59
00040                 u32 Minute;
00041                 // Second of the minute, due to extra seconds from 0 to 61
00042                 u32 Second;
00043                 // Year of the gregorian calender
00044                 s32 Year;
00045                 // Month of the year, from 1 to 12
00046                 u32 Month;
00047                 // Day of the month, from 1 to 31
00048                 u32 Day;
00049                 // Weekday for the current day
00050                 EWeekday Weekday;
00051                 // Day of the year, from 1 to 366
00052                 u32 Yearday;
00053                 // Whether daylight saving is on
00054                 bool IsDST;             
00055         };
00056 
00057         virtual RealTimeDate getRealTimeAndDate() const = 0;
00058 
00060 
00064         virtual u32 getTime() const = 0;
00065 
00067         virtual void setTime(u32 time) = 0;
00068 
00070 
00073         virtual void stop() = 0;
00074 
00076 
00079         virtual void start() = 0;
00080 
00082 
00084         virtual void setSpeed(f32 speed = 1.0f) = 0;
00085 
00087 
00089         virtual f32 getSpeed() const = 0;
00090 
00092         virtual bool isStopped() const = 0;
00093 
00095 
00098         virtual void tick() = 0;
00099 };
00100 
00101 } // end namespace irr
00102 
00103 #endif