/*
 *  unnoise.h from ObjectProDSP 0.1
 *  Copyright (C) 1994, Mountain Math Software, All rights reserved.
 *  Licensed for free use and distribution under version 2 of the Gnu General
 *  Public License. Please see file COPYING for details and restrictions.
 *  
 *  ObjectProDSP is a trademark of Mountain Math Software.
 */

#ifndef UNNOISE_DOT_H
#define UNNOISE_DOT_H

#include "ObjProDSP/portable.h"
#include "ObjProDSP/entenm.h"
#include "ObjProGen/debug.h"
#include "ObjProUsr/sigbase.h"

class UniformNoise: public Signal {
#line 55 "../unnoise.usr"
 
	enum {state_size=256};
	char * state;
#line 24 "/usrb/dist/ftp/opd-0.1/src/include/ObjProDSPint/ObjProUsr/unnoise.h"
	double  Maximum_1;
	double  Minimum_2;
	int16  ElementSize_3;
	int32  Seed_4;
public:
	UniformNoise (const char * Name, double Maximum, double Minimum, 
		int16 ElementSize, int32 Seed);
	virtual ~UniformNoise();
	double GetMaximum() const {return Maximum_1;}
	double GetMinimum() const {return Minimum_2;}
	int16 GetElementSize() const {return ElementSize_3;}
	int32 GetSeed() const {return Seed_4;}
	virtual int CheckSafeDelete() ;
	virtual ErrCode DoNode(int32);
	void Describe(OutTokens& Out, ListEntity Option);
	virtual int CppList(OutTokens& Out, CppListCmds Cmd);
	virtual double TimeFirst(DfNodeInLink *,DfNodeOutLink *);
	void SetMaximum(double  Maximum) { Maximum_1 = Maximum; parameter_changed(); }
	void SetMinimum(double  Minimum) { Minimum_2 = Minimum; parameter_changed(); }
};

extern UniformNoise * UniformNoiseDef;


#endif /* #ifdef UNNOISE_DOT_H */
