41 lines
912 B
C++
41 lines
912 B
C++
#ifndef octosnake_h
|
|
#define octosnake_h
|
|
|
|
#ifndef PI
|
|
#define PI 3.14159
|
|
#endif
|
|
|
|
class Oscillator{
|
|
|
|
public:
|
|
Oscillator();
|
|
float refresh();
|
|
void reset();
|
|
void start();
|
|
void start(unsigned long ref_time);
|
|
void stop();
|
|
float time_to_radians(double time);
|
|
float degrees_to_radians(float degrees);
|
|
float degrees_to_time(float degrees);
|
|
void setPeriod(int period);
|
|
void setAmplitude(int amplitude);
|
|
void setPhase(int phase);
|
|
void setOffset(int offset);
|
|
void setTime(unsigned long ref);
|
|
float getOutput();
|
|
float getPhaseProgress();
|
|
unsigned long getTime();
|
|
|
|
private:
|
|
int _period;
|
|
int _amplitude;
|
|
int _phase;
|
|
int _offset;
|
|
float _output;
|
|
bool _stop;
|
|
unsigned long _ref_time = 0;
|
|
float _delta_time = 0;
|
|
};
|
|
|
|
#endif
|