[zaptel-commits] kpfleming: branch 1.4 r2333 - in /branches/1.4: ./
hpec/
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Thu Mar 22 18:41:31 MST 2007
Author: kpfleming
Date: Thu Mar 22 20:41:31 2007
New Revision: 2333
URL: http://svn.digium.com/view/zaptel?view=rev&rev=2333
Log:
bring in the rest of the support needed for HPEC
Modified:
branches/1.4/hpec/hpec_zaptel.h
branches/1.4/kb1ec.h
branches/1.4/mec.h
branches/1.4/mec2.h
branches/1.4/mec3.h
branches/1.4/mg2ec.h
branches/1.4/sec-2.h
branches/1.4/sec.h
branches/1.4/zaptel-base.c
branches/1.4/zaptel.h
Modified: branches/1.4/hpec/hpec_zaptel.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/hpec/hpec_zaptel.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/hpec/hpec_zaptel.h (original)
+++ branches/1.4/hpec/hpec_zaptel.h Thu Mar 22 20:41:31 2007
@@ -63,6 +63,11 @@
{
printk("Zaptel Echo Canceller: Digium High-Performance Echo Canceller\n");
hpec_init(logger, debug, ZT_CHUNKSIZE, memalloc, memfree);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "HPEC", len);
}
static void echo_can_shutdown(void)
Modified: branches/1.4/kb1ec.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/kb1ec.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/kb1ec.h (original)
+++ branches/1.4/kb1ec.h Thu Mar 22 20:41:31 2007
@@ -140,6 +140,20 @@
#endif
};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: KB1%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "KB1", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
Modified: branches/1.4/mec.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/mec.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/mec.h (original)
+++ branches/1.4/mec.h Thu Mar 22 20:41:31 2007
@@ -97,6 +97,20 @@
#define MALLOC(a) malloc(a)
#define FREE(a) free(a)
#endif
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "MARK2", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static INLINE struct echo_can_state *echo_can_create(int len, int adaption_mode)
{
Modified: branches/1.4/mec2.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/mec2.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/mec2.h (original)
+++ branches/1.4/mec2.h Thu Mar 22 20:41:31 2007
@@ -51,7 +51,7 @@
// class definition
//
-struct echo_can_state {
+struct echo_can_state {
/* Echo canceller definition */
/* absolute time */
@@ -87,6 +87,20 @@
int max_y_tilde_pos;
};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "MARK2", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
Modified: branches/1.4/mec3.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/mec3.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/mec3.h (original)
+++ branches/1.4/mec3.h Thu Mar 22 20:41:31 2007
@@ -86,6 +86,20 @@
int pos; /* Position in curcular buffers */
int backup; /* Backup timer */
};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK3%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "MARK3", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void echo_can_free(struct echo_can_state *ec)
{
Modified: branches/1.4/mg2ec.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/mg2ec.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/mg2ec.h (original)
+++ branches/1.4/mg2ec.h Thu Mar 22 20:41:31 2007
@@ -166,6 +166,20 @@
#endif
};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MG2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "MG2", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
Modified: branches/1.4/sec-2.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/sec-2.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/sec-2.h (original)
+++ branches/1.4/sec-2.h Thu Mar 22 20:41:31 2007
@@ -100,6 +100,20 @@
static struct echo_can_state *echo_can_create(int len, int adaption_mode);
static void echo_can_free(struct echo_can_state *ec);
static int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx);
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: STEVE2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "STEVE2", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
/*
* According to Jim...
Modified: branches/1.4/sec.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/sec.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/sec.h (original)
+++ branches/1.4/sec.h Thu Mar 22 20:41:31 2007
@@ -99,6 +99,20 @@
adaption, or a code to indicate why adaption
was skipped, for test purposes */
};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: STEVE%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_identify(char *buf, size_t len)
+{
+ strncpy(buf, "STEVE", len);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static struct echo_can_state *echo_can_create(int len, int adaption_mode);
static void echo_can_free(struct echo_can_state *ec);
Modified: branches/1.4/zaptel-base.c
URL: http://svn.digium.com/view/zaptel/branches/1.4/zaptel-base.c?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/zaptel-base.c (original)
+++ branches/1.4/zaptel-base.c Thu Mar 22 20:41:31 2007
@@ -89,38 +89,6 @@
#include <linux/moduleparam.h>
#endif
-#ifdef AGGRESSIVE_SUPPRESSOR
-#define ZAPTEL_ECHO_AGGRESSIVE " (aggressive)"
-#else
-#define ZAPTEL_ECHO_AGGRESSIVE
-#endif
-
-#ifdef __KERNEL__
-/* Echo cancellation */
-#if defined(ECHO_CAN_STEVE)
-#define ZAPTEL_ECHO_CANCELLER "STEVE"
-#include "sec.h"
-#elif defined(ECHO_CAN_STEVE2)
-#define ZAPTEL_ECHO_CANCELLER "STEVE2"
-#include "sec-2.h"
-#elif defined(ECHO_CAN_MARK)
-#define ZAPTEL_ECHO_CANCELLER "MARK"
-#include "mec.h"
-#elif defined(ECHO_CAN_MARK2)
-#define ZAPTEL_ECHO_CANCELLER "MARK2"
-#include "mec2.h"
-#elif defined(ECHO_CAN_KB1)
-#define ZAPTEL_ECHO_CANCELLER "KB1"
-#include "kb1ec.h"
-#elif defined(ECHO_CAN_MG2)
-#define ZAPTEL_ECHO_CANCELLER "MG2"
-#include "mg2ec.h"
-#else
-#define ZAPTEL_ECHO_CANCELLER "MARK3"
-#include "mec3.h"
-#endif
-#endif
-
/* Get helper arithmetic */
#include "arith.h"
#if defined(CONFIG_ZAPTEL_MMX) || defined(ECHO_CAN_FP)
@@ -436,6 +404,31 @@
#define NUM_SIGS 10
+
+#ifdef AGGRESSIVE_SUPPRESSOR
+#define ZAPTEL_ECHO_AGGRESSIVE " (aggressive)"
+#else
+#define ZAPTEL_ECHO_AGGRESSIVE ""
+#endif
+
+/* Echo cancellation */
+#if defined(ECHO_CAN_HPEC)
+#include "hpec/hpec_zaptel.h"
+#elif defined(ECHO_CAN_STEVE)
+#include "sec.h"
+#elif defined(ECHO_CAN_STEVE2)
+#include "sec-2.h"
+#elif defined(ECHO_CAN_MARK)
+#include "mec.h"
+#elif defined(ECHO_CAN_MARK2)
+#include "mec2.h"
+#elif defined(ECHO_CAN_KB1)
+#include "kb1ec.h"
+#elif defined(ECHO_CAN_MG2)
+#include "mg2ec.h"
+#else
+#include "mec3.h"
+#endif
static inline void rotate_sums(void)
{
@@ -3576,11 +3569,11 @@
case ZT_GETVERSION:
memset(&vi, 0, sizeof(vi));
strncpy(vi.version, ZAPTEL_VERSION, sizeof(vi.version) - 1);
- strncpy(vi.echo_canceller, ZAPTEL_ECHO_CANCELLER, sizeof(vi.echo_canceller) - 1);
+ echo_can_identify(vi.echo_canceller, sizeof(vi.echo_canceller) - 1);
if (copy_to_user((struct zt_versioninfo *) data, &vi, sizeof(vi)))
return -EFAULT;
break;
- case ZT_MAINT: /* do maintence stuff */
+ case ZT_MAINT: /* do maintenance stuff */
/* get struct from user */
if (copy_from_user(&maint,(struct zt_maintinfo *) data, sizeof(maint)))
return -EFAULT;
@@ -3631,6 +3624,11 @@
return zt_dynamic_ioctl(cmd, data);
}
return -ENOSYS;
+#if defined(ECHO_CAN_HPEC)
+ case ZT_EC_LICENSE_CHALLENGE:
+ case ZT_EC_LICENSE_RESPONSE:
+ return hpec_license_ioctl(cmd, data);
+#endif /* defined(ECHO_CAN_HPEC) */
default:
return zt_common_ioctl(inode, file, cmd, data, 0);
}
@@ -5704,11 +5702,22 @@
rxchunk[x] = ZT_LIN2X((int)rxlin, ss);
}
} else {
+#if !defined(ZT_EC_ARRAY_UPDATE)
for (x=0;x<ZT_CHUNKSIZE;x++) {
rxlin = ZT_XLAW(rxchunk[x], ss);
rxlin = echo_can_update(ss->ec, ZT_XLAW(txchunk[x], ss), rxlin);
- rxchunk[x] = ZT_LIN2X((int)rxlin, ss);
- }
+ rxchunk[x] = ZT_LIN2X((int) rxlin, ss);
+ }
+#else /* defined(ZT_EC_ARRAY_UPDATE) */
+ short rxlins[ZT_CHUNKSIZE], txlins[ZT_CHUNKSIZE];
+ for (x = 0; x < ZT_CHUNKSIZE; x++) {
+ rxlins[x] = ZT_XLAW(rxchunk[x], ss);
+ txlins[x] = ZT_XLAW(txchunk[x], ss);
+ }
+ echo_can_array_update(ss->ec, rxlins, txlins);
+ for (x = 0; x < ZT_CHUNKSIZE; x++)
+ rxchunk[x] = ZT_LIN2X((int) rxlins[x], ss);
+#endif /* defined(ZT_EC_ARRAY_UPDATE) */
}
#if defined(CONFIG_ZAPTEL_MMX) || defined(ECHO_CAN_FP)
kernel_fpu_end();
@@ -7002,8 +7011,8 @@
mfv1_tones_continuous[i].next = mfv1_tones_continuous + i;
printk(KERN_INFO "Zapata Telephony Interface Registered on major %d\n", ZT_MAJOR);
- printk(KERN_INFO "Zaptel Version: %s Echo Canceller: %s\n", ZAPTEL_VERSION,
- ZAPTEL_ECHO_CANCELLER ZAPTEL_ECHO_AGGRESSIVE);
+ printk(KERN_INFO "Zaptel Version: %s\n", ZAPTEL_VERSION);
+ echo_can_init();
zt_conv_init();
tone_zone_init();
fasthdlc_precalc();
@@ -7060,6 +7069,8 @@
#ifdef CONFIG_ZAPTEL_WATCHDOG
watchdog_cleanup();
#endif
+
+ echo_can_shutdown();
}
module_init(zt_init);
Modified: branches/1.4/zaptel.h
URL: http://svn.digium.com/view/zaptel/branches/1.4/zaptel.h?view=diff&rev=2333&r1=2332&r2=2333
==============================================================================
--- branches/1.4/zaptel.h (original)
+++ branches/1.4/zaptel.h Thu Mar 22 20:41:31 2007
@@ -1057,6 +1057,20 @@
#endif
struct zt_chan *chan;
};
+#endif
+
+/* Echo cancellation */
+struct echo_can_state;
+#if 0
+/* echo can API consists of these functions */
+void echo_can_init(void);
+void echo_chan_shutdown(void);
+void echo_can_identify(char *buf, size_t len);
+struct echo_can_state *echo_can_create(int len, int adaption_mode);
+void echo_can_free(struct echo_can_state *ec);
+short echo_can_update(struct echo_can_state *ec, short iref, short isig);
+void echo_can_array_update(struct echo_can_state *ec, short *iref, short *isig);
+int echo_can_traintap(struct echo_can_state *ec, int pos, short val);
#endif
/* Conference queue stucture */
More information about the zaptel-commits
mailing list