proper header name and attribution (issue #5218)
[asterisk/asterisk.git] / fskmodem.c
index 554bb94..ddeffea 100755 (executable)
@@ -1,27 +1,41 @@
 /*
- * Asterisk -- A telephony toolkit for Linux.
+ * Asterisk -- An open source telephony toolkit.
  *
- * FSK Modulator/Demodulator 
+ * Copyright (C) 1999 - 2005, Digium, Inc.
+ *
+ * Mark Spencer <markster@digium.com>
  * 
- * Copyright (C) 1999, Mark Spencer
+ * Includes code and algorithms from the Zapata library.
  *
- * Mark Spencer <markster@linux-support.net>
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
  *
  * This program is free software, distributed under the terms of
- * the GNU General Public License.
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*
  *
- * Includes code and algorithms from the Zapata library.
+ * FSK Modulator/Demodulator 
  *
  */
 
-#include <asterisk/fskmodem.h>
-
 #include <stdio.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
+#include "asterisk/fskmodem.h"
+
 #define NBW    2
 #define BWLIST {75,800}
-#define        NF      4
-#define        FLIST {1400,1800,1200,2200}
+#define        NF      6
+#define        FLIST {1400,1800,1200,2200,1300,2100}
 
 #define STATE_SEARCH_STARTBIT  0
 #define STATE_SEARCH_STARTBIT2 1
@@ -234,10 +248,15 @@ search_startbit3:
 
 getbyte:
 
-       /* Need at least 80 samples to be sure we'll have a byte */
-       if (*len < 80)
-               return 0;
-
+       /* Need at least 80 samples (for 1200) or
+               1320 (for 45.5) to be sure we'll have a byte */
+       if (fskd->nbit < 8) {
+               if (*len < 1320)
+                       return 0;
+       } else {
+               if (*len < 80)
+                       return 0;
+       }
        /* Leemos ahora los bits de datos */
        j=fskd->nbit;
        for (a=n1=0;j;j--) {