Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
oslec.h
Go to the documentation of this file.
1 /*
2  * OSLEC - A line echo canceller. This code is being developed
3  * against and partially complies with G168. Using code from SpanDSP
4  *
5  * Written by Steve Underwood <[email protected]>
6  * and David Rowe <david_at_rowetel_dot_com>
7  *
8  * Copyright (C) 2001 Steve Underwood and 2007-2008 David Rowe
9  *
10  * All rights reserved.
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License version 2, as
14  * published by the Free Software Foundation.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  *
25  */
26 
27 #ifndef __OSLEC_H
28 #define __OSLEC_H
29 
30 /* Mask bits for the adaption mode */
31 #define ECHO_CAN_USE_ADAPTION 0x01
32 #define ECHO_CAN_USE_NLP 0x02
33 #define ECHO_CAN_USE_CNG 0x04
34 #define ECHO_CAN_USE_CLIP 0x08
35 #define ECHO_CAN_USE_TX_HPF 0x10
36 #define ECHO_CAN_USE_RX_HPF 0x20
37 #define ECHO_CAN_DISABLE 0x40
38 
44 struct oslec_state;
45 
52 struct oslec_state *oslec_create(int len, int adaption_mode);
53 
58 void oslec_free(struct oslec_state *ec);
59 
64 void oslec_flush(struct oslec_state *ec);
65 
71 void oslec_adaption_mode(struct oslec_state *ec, int adaption_mode);
72 
73 void oslec_snapshot(struct oslec_state *ec);
74 
84 
93 
94 #endif /* __OSLEC_H */