mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-02-09 09:05:32 +00:00
* Beat detect sensitivity fix. * Default: 1.0 * ReadMe beat sensitivity min/max. * Beat sensitivity from config or settings isn't initialized. * Smarter position. * Make PCMScale (vol_history) also impacted by beat_sensitivity. * Enhance and clarify Hard Cuts and better separate beat sensitivity. * Forgot one config. * Consistency with defaults. * Even more clear about the default for Beat Sensitivity.
73 lines
1.2 KiB
C++
73 lines
1.2 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 hardcutDuration, 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();
|
|
|
|
int PresetTimeA();
|
|
int PresetTimeB();
|
|
|
|
double sampledPresetDuration();
|
|
|
|
void ChangeHardcutDuration(int seconds) { _hardcutDuration = seconds; }
|
|
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 _hardcutDuration;
|
|
|
|
double _currentTime;
|
|
double _presetTimeA;
|
|
double _presetTimeB;
|
|
int _presetFrameA;
|
|
int _presetFrameB;
|
|
|
|
bool _isSmoothing;
|
|
|
|
|
|
};
|
|
#endif
|