/* FilterButterworthBandreject.h */

#ifndef Included_FilterButterworthBandreject_h
#define Included_FilterButterworthBandreject_h

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

struct ButterworthBandrejectRec;
typedef struct ButterworthBandrejectRec ButterworthBandrejectRec;

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

/* create a new filter record */
ButterworthBandrejectRec*	NewButterworthBandreject(void);

/* dispose filter record */
void											DisposeButterworthBandreject(ButterworthBandrejectRec* Filter);

/* adjust filter coefficients */
void											SetButterworthBandrejectCoefficients(ButterworthBandrejectRec* Filter,
														float Cutoff, float Bandwidth, long SamplingRate);

/* apply filter to a sample value */
float											ApplyButterworthBandreject(ButterworthBandrejectRec* Filter, float Xin);

#endif
