#include "Record.h" #include template class Record; template class Record; template class Record; template class Record; template Record::Record(T* RecordBuffer, float Frequency, float Period) { Init(RecordBuffer, Frequency, Period); } template void Record::Init(T* RecordBuffer, float Frequency, float Period) { Freq = Frequency; Buffer = RecordBuffer; Count = (float)(Frequency * Period + 1.0f); } template T Record::Past(float Time) const { unsigned long move = (float)(Time * Freq); if (move >= Count) move = Count - 1; if (Index >= move) move = Index - move; else move = Index + (Count - move); return Buffer[move]; } template void Record::Add(const T& Value) { Index++; if (Index >= Count) Index = 0; Buffer[Index] = Value; } template void Record::Mix(const T& Shift) { for (unsigned int a = 0; a < Count; a++) Buffer[a] += Shift; }