00001 // Copyright (C) 2002-2012 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