[svn-commits] oej: trunk r89043 - in /trunk: ./ main/tdd.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Nov 6 13:04:29 CST 2007


Author: oej
Date: Tue Nov  6 13:04:29 2007
New Revision: 89043

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89043
Log:
Merged revisions 89042 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89042 | oej | 2007-11-06 19:53:37 +0100 (Tis, 06 Nov 2007) | 2 lines

Bug fixes to tdd support in zaptel. 

........

(Small changes for trunk)

Modified:
    trunk/   (props changed)
    trunk/main/tdd.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/main/tdd.c
URL: http://svn.digium.com/view/asterisk/trunk/main/tdd.c?view=diff&rev=89043&r1=89042&r2=89043
==============================================================================
--- trunk/main/tdd.c (original)
+++ trunk/main/tdd.c Tue Nov  6 13:04:29 2007
@@ -53,6 +53,7 @@
 	int pos;
 	int modo;
 	int mode;
+	int charnum;
 };
 
 static float dr[4], di[4];
@@ -67,10 +68,10 @@
 	                         '\n','D','R','J','N','F','C','K',
 	                         'T','Z','L','W','H','Y','P','Q',
 	                         'O','B','G','^','M','X','V','^' };
-	static char figs[32] = { '<','3','\n','-',' ',',','8','7',
-	                         '\n','$','4','\'',',','·',':','(',
-	                         '5','+',')','2','·','6','0','1',
-	                         '9','7','·','^','.','/','=','^' };
+	static char figs[32] = { '<','3','\n','-',' ','\'','8','7',
+	                         '\n','$','4','\'',',','!',':','(',
+	                         '5','\"',')','2','=','6','0','1',
+	                         '9','?','+','^','.','/',';','^' };
 	int d = 0;  /* return 0 if not decodeable */
 	switch (data) {
 	case 0x1f:
@@ -118,7 +119,8 @@
 		tdd->fskd.xi0  = 0;
 		tdd->fskd.state = 0;
 		tdd->pos = 0;
-		tdd->mode = 2;
+		tdd->mode = 0;
+		tdd->charnum = 0;
 		fskmodem_init(&tdd->fskd);
 	} else
 		ast_log(LOG_WARNING, "Out of memory\n");
@@ -187,7 +189,8 @@
 		tdd->oldlen = 0;
 	free(obuf);
 	if (res) {
-		tdd->mode = 2; /* put it in mode where it
+		tdd->mode = 2; 
+/* put it in mode where it
 			reliably puts teleprinter in correct shift mode */
 		return(c);
 	}
@@ -231,7 +234,7 @@
 } while(0)
 
 #define PUT_TDD_BAUD(bit) do { \
-	while(scont < tddsb) { \
+	while (scont < tddsb) { \
 		PUT_AUDIO_SAMPLE(tdd_getcarrier(&cr, &ci, bit)); \
 		scont += 1.0; \
 	} \
@@ -239,7 +242,7 @@
 } while(0)
 
 #define PUT_TDD_STOP do { \
-	while(scont < (tddsb * 1.5)) { \
+	while (scont < (tddsb * 1.5)) { \
 		PUT_AUDIO_SAMPLE(tdd_getcarrier(&cr, &ci, 1)); \
 		scont += 1.0; \
 	} \
@@ -266,13 +269,17 @@
 	/*! Baudot letters */
 	static unsigned char lstr[31] = "\000E\nA SIU\rDRJNFCKTZLWHYPQOBG\000MXV";
 	/*! Baudot figures */
-	static unsigned char fstr[31] = "\0003\n- \00787\r$4',!:(5\")2\0006019?&\000./;";
+	static unsigned char fstr[31] = "\0003\n- \00787\r$4',!:(5\")2\0006019?+\000./;";
 	/* Initial carriers (real/imaginary) */
 	float cr = 1.0;
 	float ci = 0.0;
 	float scont = 0.0;
 
 	for(x = 0; str[x]; x++) {
+		/* Do synch for each 72th character */
+		if ( (tdd->charnum++) % 72 == 0) 
+			PUT_TDD(tdd->mode ? 27 /* FIGS */ : 31 /* LTRS */);
+
 		c = toupper(str[x]);
 #if	0
 		printf("%c",c); fflush(stdout);




More information about the svn-commits mailing list