/* FilterFirstOrderHighpass.h */

#ifndef Included_FilterFirstOrderHighpass_h
#define Included_FilterFirstOrderHighpass_h

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

struct FirstOrderHighpassRec;
typedef struct FirstOrderHighpassRec FirstOrderHighpassRec;

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

/* create a new filter record */
FirstOrderHighpassRec*		NewFirstOrderHighpass(void);

/* dispose filter record */
void											DisposeFirstOrderHighpass(FirstOrderHighpassRec* Filter);

/* adjust filter coefficients */
void											SetFirstOrderHighpassCoefficients(FirstOrderHighpassRec* Filter,
														float Cutoff, long SamplingRate);

/* apply filter to a sample value */
float											ApplyFirstOrderHighpass(FirstOrderHighpassRec* Filter, float Xin);

#endif
