#ifndef TWOSF2WAV_INTERPOLATOR_H #define TWOSF2WAV_INTERPOLATOR_H #include #include class IInterpolator { public: virtual ~IInterpolator() {} virtual int32_t interpolate(const std::vector& data, double time) const = 0; static IInterpolator* allInterpolators[4]; }; class LinearInterpolator : public IInterpolator { public: virtual int32_t interpolate(const std::vector& data, double time) const; }; class CosineInterpolator : public IInterpolator { public: CosineInterpolator(); virtual int32_t interpolate(const std::vector& data, double time) const; private: double lut[8192]; }; class SharpIInterpolator : public IInterpolator { public: virtual int32_t interpolate(const std::vector& data, double time) const; }; #endif