Irrlicht 3D Engine
ITimer.h
Go to the documentation of this file.
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