f544b7eb4775000b6c9efc50cf4bc6014f0da3a5
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

1) /* Blinker
Stefan Schuermans implement frame rate limiter

Stefan Schuermans authored 10 years ago

2)    Copyright 2011-2014 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

6) #ifndef BLINKER_TIME_H
7) #define BLINKER_TIME_H
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

8) 
9) #include <stdint.h>
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

10) #include <sys/time.h>
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

11) #include <time.h>
12) 
13) namespace Blinker {
14) 
15) /// time, either point in time or duration
16) class Time
17) {
18) public:
19)   static const Time zero; ///< zero time
20) 
21) public:
22)   /**
23)    * @brief get current time
24)    * @return current time
25)    */
26)   static Time now();
27) 
28) public:
29)   /// constructor
30)   Time();
31) 
32)   /**
33)    * @brief constructor from seconds
34)    * @param[in] t time in seconds
35)    */
36)   Time(time_t t);
37) 
38) public:
39)   /// comparison
40)   //@{
41)   int compare(const Time &that) const;
42)   bool operator==(const Time &that) const;
43)   bool operator!=(const Time &that) const;
44)   bool operator<(const Time &that) const;
45)   bool operator>(const Time &that) const;
46)   bool operator<=(const Time &that) const;
47)   bool operator>=(const Time &that) const;
48)   //@}
49) 
50)   /// arithmetic
51)   //@{
52)   const Time & operator+=(const Time &that);
53)   const Time & operator-=(const Time &that);
54)   Time operator+(const Time &that) const;
55)   Time operator-(const Time &that) const;
56)   //@}
57) 
Stefan Schuermans implement frame rate limiter

Stefan Schuermans authored 10 years ago

58)   /**
59)    * @brief convert from floating point seconds
60)    * @param[in] s time in seconds
61)    */
62)   void fromFloatSec(float s);
63) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

64)   /**
65)    * @brief convert from milliseconds
66)    * @param[in] ms milliseconds
67)    */
68)   void fromMs(int ms);
69) 
70)   /**
71)    * @brief convert to seconds
72)    * @return seconds
73)    */
74)   time_t toSec() const;
75) 
Stefan Schuermans implement synchronization f...

Stefan Schuermans authored 10 years ago

76)   /**
77)    * @brief convert to floating point seconds
78)    * @return time in seconds
79)    */
80)   float toFloatSec();
81) 
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

82)   /**
83)    * @brief convert to struct timeval
84)    * @param[out] tv struct timeval
85)    */
86)   void toTimeval(struct timeval &tv) const;
87) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

88) public:
89)   /// sleep for duration
90)   void sleepFor() const;
91) 
92)   /// sleep until time
93)   void sleepUntil() const;
94) 
95) protected:
96)   /// fix internal time representation after calculation
97)   void fix();
98) 
99) protected:
Stefan Schuermans implement frame rate limiter

Stefan Schuermans authored 10 years ago

100) public:
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

101)   int64_t m_sec; ///< seconds
102)   int64_t m_ns;  ///< nanoseconds
103) }; // class Time
104) 
105) } // namespace Blinker
106) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

107) #endif // #ifndef BLINKER_TIME_H