summaryrefslogtreecommitdiff
path: root/wcte12xp
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-01-23 21:34:07 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-01-23 21:34:07 +0000
commit0a35ebf3e85a47802f2c49bfc932e53d1c17518f (patch)
treec024ff05ab55cf9cd05d4e63504fa82ab27d26a2 /wcte12xp
parent3a4c1b6609937577b92fa980e5e21bbc8807bc52 (diff)
Make some echo canceller related parameters adjustable via module parameter
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3730 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wcte12xp')
-rw-r--r--wcte12xp/base.c6
-rw-r--r--wcte12xp/vpmadt032.c16
2 files changed, 16 insertions, 6 deletions
diff --git a/wcte12xp/base.c b/wcte12xp/base.c
index 5c39da4..856bfa6 100644
--- a/wcte12xp/base.c
+++ b/wcte12xp/base.c
@@ -92,6 +92,9 @@ static int unchannelized = 0;
int vpmsupport = 1;
int vpmdtmfsupport = 0;
int vpmtsisupport = 0;
+int vpmnlptype = 1;
+int vpmnlpthresh = 24;
+int vpmnlpmaxsupp = 0;
#endif
struct t1 *ifaces[WC_MAX_IFACES];
@@ -2101,6 +2104,9 @@ MODULE_PARM(alarmdebounce, "i");
MODULE_PARM(vpmsupport, "i");
MODULE_PARM(vpmdtmfsupport, "i");
MODULE_PARM(vpmtsisupport, "i");
+MODULE_PARM(vpmnlptype, "i");
+MODULE_PARM(vpmnlpthresh, "i");
+MODULE_PARM(vpmnlpmaxsupp, "i");
#endif
#endif
diff --git a/wcte12xp/vpmadt032.c b/wcte12xp/vpmadt032.c
index 12adadc..3c2bfc6 100644
--- a/wcte12xp/vpmadt032.c
+++ b/wcte12xp/vpmadt032.c
@@ -42,6 +42,10 @@
extern struct t1 *ifaces[WC_MAX_IFACES];
+extern int vpmnlptype;
+extern int vpmnlpthresh;
+extern int vpmnlpmaxsupp;
+
#ifdef VPM_SUPPORT
inline void vpm150m_cmd_dequeue(struct t1 *wc, volatile unsigned char *writechunk, int whichframe)
@@ -1309,14 +1313,14 @@ int vpm150m_config_hw(struct t1 *wc)
chanconfig.FrameRate = rate10ms;
chanconfig.EcanParametersA.EcanTapLength = 1024;
- chanconfig.EcanParametersA.EcanNlpType = 1;
+ chanconfig.EcanParametersA.EcanNlpType = vpmnlptype;
chanconfig.EcanParametersA.EcanAdaptEnable = 1;
chanconfig.EcanParametersA.EcanG165DetEnable = 1;
chanconfig.EcanParametersA.EcanDblTalkThresh = 6;
- chanconfig.EcanParametersA.EcanNlpThreshold = 24;
+ chanconfig.EcanParametersA.EcanNlpThreshold = vpmnlpthresh;
chanconfig.EcanParametersA.EcanNlpConv = 0;
chanconfig.EcanParametersA.EcanNlpUnConv = 0;
- chanconfig.EcanParametersA.EcanNlpMaxSuppress = 0;
+ chanconfig.EcanParametersA.EcanNlpMaxSuppress = vpmnlpmaxsupp;
chanconfig.EcanParametersA.EcanCngThreshold = 43;
chanconfig.EcanParametersA.EcanAdaptLimit = 50;
chanconfig.EcanParametersA.EcanCrossCorrLimit = 15;
@@ -1324,14 +1328,14 @@ int vpm150m_config_hw(struct t1 *wc)
chanconfig.EcanParametersA.EcanFirSegmentLen = 64;
chanconfig.EcanParametersB.EcanTapLength = 1024;
- chanconfig.EcanParametersB.EcanNlpType = 1;
+ chanconfig.EcanParametersB.EcanNlpType = vpmnlptype;
chanconfig.EcanParametersB.EcanAdaptEnable = 1;
chanconfig.EcanParametersB.EcanG165DetEnable = 1;
chanconfig.EcanParametersB.EcanDblTalkThresh = 6;
- chanconfig.EcanParametersB.EcanNlpThreshold = 24;
+ chanconfig.EcanParametersB.EcanNlpThreshold = vpmnlpthresh;
chanconfig.EcanParametersB.EcanNlpConv = 0;
chanconfig.EcanParametersB.EcanNlpUnConv = 0;
- chanconfig.EcanParametersB.EcanNlpMaxSuppress = 0;
+ chanconfig.EcanParametersB.EcanNlpMaxSuppress = vpmnlpmaxsupp;
chanconfig.EcanParametersB.EcanCngThreshold = 43;
chanconfig.EcanParametersB.EcanAdaptLimit = 50;
chanconfig.EcanParametersB.EcanCrossCorrLimit = 15;