362c1f4c3b5ce9e3fce11167a51fbe4cdb2174de
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

1) /* Blinker
Stefan Schuermans update copyright header

Stefan Schuermans authored 5 years ago

2)    Copyright 2011-2019 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 Time class: add toStr()

Stefan Schuermans authored 5 years ago

10) #include <string>
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 10 years ago

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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 10 years ago

77)   /**
78)    * @brief convert to floating point seconds
79)    * @return time in seconds
80)    */
Stefan Schuermans getting time is const

Stefan Schuermans authored 10 years ago

81)   float toFloatSec() const;
Stefan Schuermans implement synchronization f...

Stefan Schuermans authored 10 years ago

82) 
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

83)   /**
84)    * @brief convert to struct timeval
85)    * @param[out] tv struct timeval
86)    */
87)   void toTimeval(struct timeval &tv) const;
88) 
Stefan Schuermans Time class: add toStr()

Stefan Schuermans authored 5 years ago

89)   /**
90)    * @brief convert to human-readable string
91)    * @return human-readable string
92)    */
93)   std::string toStr() const;
94) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

95) public:
96)   /// sleep for duration
97)   void sleepFor() const;
98) 
99)   /// sleep until time
100)   void sleepUntil() const;
101) 
102) protected:
103)   /// fix internal time representation after calculation
104)   void fix();
105) 
106) protected:
Stefan Schuermans implement frame rate limiter

Stefan Schuermans authored 10 years ago

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

Stefan Schuermans authored 13 years ago

108)   int64_t m_sec; ///< seconds
109)   int64_t m_ns;  ///< nanoseconds
110) }; // class Time
111) 
112) } // namespace Blinker
113) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

114) #endif // #ifndef BLINKER_TIME_H