befb4ce756d2a49d4268d3c6dbecb0eb24445ef4
[platform/upstream/libvorbis.git] / lib / iir.h
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE.  *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
5  * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE.    *
6  * PLEASE READ THESE TERMS DISTRIBUTING.                            *
7  *                                                                  *
8  * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000             *
9  * by Monty <monty@xiph.org> and The XIPHOPHORUS Company            *
10  * http://www.xiph.org/                                             *
11  *                                                                  *
12  ********************************************************************
13
14   function: Direct Form I, II IIR filters, plus some specializations
15   last mod: $Id: iir.h,v 1.2 2000/10/12 03:12:52 xiphmont Exp $
16
17  ********************************************************************/
18
19 #ifndef _V_IIR_H_
20 #define _V_IIR_H_
21
22 typedef struct {
23   int stages;
24   float *coeff_A;
25   float *coeff_B;
26   float *z_A;
27   float *z_B;
28   int ring;
29   float gain;
30 } IIR_state;
31
32 void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B);
33 void IIR_clear(IIR_state *s);
34 float IIR_filter(IIR_state *s,float in);
35 float IIR_filter_ChebBand(IIR_state *s,float in);
36
37 #endif