Files
projectm/src/libprojectM/TimeKeeper.hpp
ximion 24b03c9d2d Add API to change projectM preset duration
Required by some media players such as Clementine


git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@1352 6778bc44-b910-0410-a7a0-be141de4315d
2011-04-10 14:04:19 +00:00

68 lines
1.0 KiB
C++

#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