/* FilterButterworthLowpass.h */

#ifndef Included_FilterButterworthLowpass_h
#define Included_FilterButterworthLowpass_h

/* FilterButterworthLowpass module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* Memory */
/* FloatingPoint */

struct ButterworthLowpassRec;
typedef struct ButterworthLowpassRec ButterworthLowpassRec;

/* flush free list */
void											FlushCachedButterworthLowpassStuff(void);

/* create a new filter record */
ButterworthLowpassRec*		NewButterworthLowpass(void);

/* dispose filter record */
void											DisposeButterworthLowpass(ButterworthLowpassRec* Filter);

/* adjust filter coefficients */
void											SetButterworthLowpassCoefficients(ButterworthLowpassRec* Filter,
														float Cutoff, long SamplingRate);

/* apply filter to a sample value */
float											ApplyButterworthLowpass(ButterworthLowpassRec* Filter, float Xin);

#endif
