aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir@cohens.org.il>2008-10-12 00:03:14 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-22 12:56:33 -0400
commit17f8c114944de27e2fd9402fa2a75bccdac18502 (patch)
treeb5751d04df5ebdaf9ffe585dc70644f862ff714f /drivers/staging
parente88bd231e4f00f050c4cf385f7cb2fde12f2a101 (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.h53
-rw-r--r--drivers/staging/echo/oslec.h86
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*/
135typedef struct 127struct 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*/
185echo_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*/
190void 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*/
195void 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*/
201void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode);
202
203void 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*/
211int16_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*/
218int16_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*/
45typedef 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*/
51echo_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*/
56void 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*/
61void 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*/
67void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode);
68
69void 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*/
77int16_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*/
84int16_t echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx);
85
86#endif /* __OSLEC_H */