#ifndef TimeKeeper_HPP #define TimeKeeper_HPP #ifndef WIN32 #include #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