RSS Git Download  Clone
Raw Blame History
/*******************************************************************************
 *	Gen.h		TMS State Table Generator
 *			T.Barnaby,	BEAM Ltd,	2007-03-15
 *******************************************************************************
 */

#ifndef Gen_h
#define Gen_h	1

#include <BError.h>
#include <BFile.h>
#include <BNameValue.h>
#include <SigGen.h>
#include <TmsLib.h>

typedef BNameValue<BString>	NameValue;

class NameValueList : public BNameValueList<BString> {
public:
	BString		getValue(BString name);
	void		setValue(BString name, BString value);
};


class Gen {
public:
				Gen(BString name);
	virtual			~Gen();
	
	virtual BString		name();
	virtual BString		info();
	virtual BError		init(NameValueList& params);
	virtual void		close();
	virtual BError		run();
	virtual BError		output();

protected:
	void			outputPhaseDelay();
	void			outputState(int num, Tms::TmsState state, int lo0, int bunchSet0, int lo1, int bunchSet1, int capture);
	
	BString			oname;
	BString			oinfo;
	NameValueList		oparams;
	NameValueList		ooutput;
	BFile			ofile;
	
	BString			ofileName;
	double			osampleRate;
	double			ofref;
	int			ophaseTableFile;
	int			ouseMsbFref;
	int			opllInitialFrequencyDelay;
};

class GenBeam1 : public Gen {
public:
			GenBeam1();

	BError		run();
};

class GenBeam2 : public Gen {
public:
			GenBeam2();

	BError		run();
};

class GenBeam3 : public Gen {
public:
			GenBeam3();

	BError		run();
};

BList<Gen*>&	genInit();

#endif