| #ifndef TimeKeeper_HPP |
| #define TimeKeeper_HPP |
| |
| #ifndef WIN32 |
| #include <sys/time.h> |
| #endif |
| |
| #include "timer.h" |
| |
| #define HARD_CUT_DELAY 3 |
| |
| class TimeKeeper |
| { |
| |
| public: |
| |
| TimeKeeper(double presetDuration, double smoothDuration, double easterEgg); |
| |
| void UpdateTimers(); |
| |
| void StartPreset(); |
| void StartSmoothing(); |
| void EndSmoothing(); |
| |
| bool CanHardCut(); |
| |
| double SmoothRatio(); |
| bool IsSmoothing(); |
| |
| double GetRunningTime(); |
| |
| double PresetProgressA(); |
| double PresetProgressB(); |
| |
| int PresetFrameA(); |
| int PresetFrameB(); |
| |
| double sampledPresetDuration(); |
| |
| void ChangePresetDuration(int seconds) { _presetDuration = seconds; } |
| |
| #ifndef WIN32 |
| /* The first ticks value of the application */ |
| struct timeval startTime; |
| #else |
| long startTime; |
| #endif /** !WIN32 */ |
| |
| private: |
| |
| double _easterEgg; |
| double _presetDuration; |
| double _presetDurationA; |
| double _presetDurationB; |
| double _smoothDuration; |
| |
| double _currentTime; |
| double _presetTimeA; |
| double _presetTimeB; |
| int _presetFrameA; |
| int _presetFrameB; |
| |
| bool _isSmoothing; |
| |
| |
| }; |
| #endif |