Merge infrastructure work; full books
[platform/upstream/libvorbis.git] / lib / iir.h
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
5  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
7  *                                                                  *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             *
9  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
10
11  ********************************************************************
12
13   function: Direct Form I, II IIR filters, plus some specializations
14   last mod: $Id: iir.h,v 1.7 2001/02/26 03:50:41 xiphmont Exp $
15
16  ********************************************************************/
17
18 #ifndef _V_IIR_H_
19 #define _V_IIR_H_
20
21 typedef struct {
22   int stages;
23   float *coeff_A;
24   float *coeff_B;
25   float *z_A;
26   int ring;
27   float gain;
28 } IIR_state;
29
30 extern void IIR_init(IIR_state *s,int stages,float gain, float *A, float *B);
31 extern void IIR_clear(IIR_state *s);
32 extern float IIR_filter(IIR_state *s,float in);
33 extern float IIR_filter_Band(IIR_state *s,float in);
34 extern void IIR_reset(IIR_state *s);
35
36 #endif