diff options
author | Tzafrir Cohen <tzafrir@cohens.org.il> | 2008-10-12 00:03:14 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-10-22 12:56:33 -0400 |
commit | 17f8c114944de27e2fd9402fa2a75bccdac18502 (patch) | |
tree | b5751d04df5ebdaf9ffe585dc70644f862ff714f /drivers/staging | |
parent | e88bd231e4f00f050c4cf385f7cb2fde12f2a101 (diff) |
Staging: echo: A separate oslec.h for external interface
Split out the external interface to a separate file called oslec.h .
Give the struct a name while we're at it.
Signed-off-by: Tzafrir Cohen <tzafrir@cohens.org.il>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/echo/echo.h | 53 | ||||
-rw-r--r-- | drivers/staging/echo/oslec.h | 86 |
2 files changed, 89 insertions, 50 deletions
diff --git a/drivers/staging/echo/echo.h b/drivers/staging/echo/echo.h index 7a91b4390f3b..5c8b5153b199 100644 --- a/drivers/staging/echo/echo.h +++ b/drivers/staging/echo/echo.h | |||
@@ -118,21 +118,13 @@ a minor burden. | |||
118 | */ | 118 | */ |
119 | 119 | ||
120 | #include "fir.h" | 120 | #include "fir.h" |
121 | 121 | #include "oslec.h" | |
122 | /* Mask bits for the adaption mode */ | ||
123 | #define ECHO_CAN_USE_ADAPTION 0x01 | ||
124 | #define ECHO_CAN_USE_NLP 0x02 | ||
125 | #define ECHO_CAN_USE_CNG 0x04 | ||
126 | #define ECHO_CAN_USE_CLIP 0x08 | ||
127 | #define ECHO_CAN_USE_TX_HPF 0x10 | ||
128 | #define ECHO_CAN_USE_RX_HPF 0x20 | ||
129 | #define ECHO_CAN_DISABLE 0x40 | ||
130 | 122 | ||
131 | /*! | 123 | /*! |
132 | G.168 echo canceller descriptor. This defines the working state for a line | 124 | G.168 echo canceller descriptor. This defines the working state for a line |
133 | echo canceller. | 125 | echo canceller. |
134 | */ | 126 | */ |
135 | typedef struct | 127 | struct echo_can_state |
136 | { | 128 | { |
137 | int16_t tx,rx; | 129 | int16_t tx,rx; |
138 | int16_t clean; | 130 | int16_t clean; |
@@ -176,45 +168,6 @@ typedef struct | |||
176 | 168 | ||
177 | /* snapshot sample of coeffs used for development */ | 169 | /* snapshot sample of coeffs used for development */ |
178 | int16_t *snapshot; | 170 | int16_t *snapshot; |
179 | } echo_can_state_t; | 171 | }; |
180 | |||
181 | /*! Create a voice echo canceller context. | ||
182 | \param len The length of the canceller, in samples. | ||
183 | \return The new canceller context, or NULL if the canceller could not be created. | ||
184 | */ | ||
185 | echo_can_state_t *echo_can_create(int len, int adaption_mode); | ||
186 | |||
187 | /*! Free a voice echo canceller context. | ||
188 | \param ec The echo canceller context. | ||
189 | */ | ||
190 | void echo_can_free(echo_can_state_t *ec); | ||
191 | |||
192 | /*! Flush (reinitialise) a voice echo canceller context. | ||
193 | \param ec The echo canceller context. | ||
194 | */ | ||
195 | void echo_can_flush(echo_can_state_t *ec); | ||
196 | |||
197 | /*! Set the adaption mode of a voice echo canceller context. | ||
198 | \param ec The echo canceller context. | ||
199 | \param adapt The mode. | ||
200 | */ | ||
201 | void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode); | ||
202 | |||
203 | void echo_can_snapshot(echo_can_state_t *ec); | ||
204 | |||
205 | /*! Process a sample through a voice echo canceller. | ||
206 | \param ec The echo canceller context. | ||
207 | \param tx The transmitted audio sample. | ||
208 | \param rx The received audio sample. | ||
209 | \return The clean (echo cancelled) received sample. | ||
210 | */ | ||
211 | int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx); | ||
212 | |||
213 | /*! Process to high pass filter the tx signal. | ||
214 | \param ec The echo canceller context. | ||
215 | \param tx The transmitted auio sample. | ||
216 | \return The HP filtered transmit sample, send this to your D/A. | ||
217 | */ | ||
218 | int16_t echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx); | ||
219 | 172 | ||
220 | #endif /* __ECHO_H */ | 173 | #endif /* __ECHO_H */ |
diff --git a/drivers/staging/echo/oslec.h b/drivers/staging/echo/oslec.h new file mode 100644 index 000000000000..913fc51d857f --- /dev/null +++ b/drivers/staging/echo/oslec.h | |||
@@ -0,0 +1,86 @@ | |||
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 <steveu@coppice.org> | ||
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 | /* TODO: document interface */ | ||
31 | |||
32 | /* Mask bits for the adaption mode */ | ||
33 | #define ECHO_CAN_USE_ADAPTION 0x01 | ||
34 | #define ECHO_CAN_USE_NLP 0x02 | ||
35 | #define ECHO_CAN_USE_CNG 0x04 | ||
36 | #define ECHO_CAN_USE_CLIP 0x08 | ||
37 | #define ECHO_CAN_USE_TX_HPF 0x10 | ||
38 | #define ECHO_CAN_USE_RX_HPF 0x20 | ||
39 | #define ECHO_CAN_DISABLE 0x40 | ||
40 | |||
41 | /*! | ||
42 | G.168 echo canceller descriptor. This defines the working state for a line | ||
43 | echo canceller. | ||
44 | */ | ||
45 | typedef struct echo_can_state echo_can_state_t; | ||
46 | |||
47 | /*! Create a voice echo canceller context. | ||
48 | \param len The length of the canceller, in samples. | ||
49 | \return The new canceller context, or NULL if the canceller could not be created. | ||
50 | */ | ||
51 | echo_can_state_t *echo_can_create(int len, int adaption_mode); | ||
52 | |||
53 | /*! Free a voice echo canceller context. | ||
54 | \param ec The echo canceller context. | ||
55 | */ | ||
56 | void echo_can_free(echo_can_state_t *ec); | ||
57 | |||
58 | /*! Flush (reinitialise) a voice echo canceller context. | ||
59 | \param ec The echo canceller context. | ||
60 | */ | ||
61 | void echo_can_flush(echo_can_state_t *ec); | ||
62 | |||
63 | /*! Set the adaption mode of a voice echo canceller context. | ||
64 | \param ec The echo canceller context. | ||
65 | \param adapt The mode. | ||
66 | */ | ||
67 | void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode); | ||
68 | |||
69 | void echo_can_snapshot(echo_can_state_t *ec); | ||
70 | |||
71 | /*! Process a sample through a voice echo canceller. | ||
72 | \param ec The echo canceller context. | ||
73 | \param tx The transmitted audio sample. | ||
74 | \param rx The received audio sample. | ||
75 | \return The clean (echo cancelled) received sample. | ||
76 | */ | ||
77 | int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx); | ||
78 | |||
79 | /*! Process to high pass filter the tx signal. | ||
80 | \param ec The echo canceller context. | ||
81 | \param tx The transmitted auio sample. | ||
82 | \return The HP filtered transmit sample, send this to your D/A. | ||
83 | */ | ||
84 | int16_t echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx); | ||
85 | |||
86 | #endif /* __OSLEC_H */ | ||