#ifndef PULSELENGTHSTAT_SIMULATION_DATA_GENERATOR
#define PULSELENGTHSTAT_SIMULATION_DATA_GENERATOR

#include <SimulationChannelDescriptor.h>

class PulseLengthStatAnalyzerSettings;

class PulseLengthStatSimulationDataGenerator
{
public:
	PulseLengthStatSimulationDataGenerator();
	~PulseLengthStatSimulationDataGenerator();

	void Initialize(U32 simulation_sample_rate, PulseLengthStatAnalyzerSettings* settings);
	U32 GenerateSimulationData(U64 newest_sample_requested, U32 sample_rate, SimulationChannelDescriptor** simulation_channel);

protected:
	PulseLengthStatAnalyzerSettings* mSettings;
	U32 mSimulationSampleRateHz;
	SimulationChannelDescriptor mSimChannel;

	void EmitIdle(U32 samples);
	void EmitLow(U32 samples);
	void EmitHigh(U32 samples);
};

#endif
