#ifndef _INTERPOLATION_TIMINGGENERATOR_HPP_
#define _INTERPOLATION_TIMINGGENERATOR_HPP_

#pragma once

#include <radio/radio_types.h>
#include <cpp/radio/Vector.hpp>

#include <stddef.h>

namespace Radio
{
namespace Interpolation
{
class TimingGenerator
{
public:
	TimingGenerator();
	virtual ~TimingGenerator();

	size_t getAdv() const;
	radio_float_t getMu() const;

	virtual void process(ComplexScalar const &iq);
	void setOmega(radio_float_t omega);

private:
	radio_float_t m_omega;
	radio_float_t m_mu;
	size_t m_adv;
protected:
	void update(radio_float_t omega);

};
} // Interpolation
} // Radio

#endif // _INTERPOLATION_TIMINGGENERATOR_HPP_