aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/fskmodem.h
diff options
context:
space:
mode:
authordbailey <dbailey@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-06 19:52:40 +0000
committerdbailey <dbailey@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-06 19:52:40 +0000
commitaea3c1d33fdb0f9909a1cd471bffc68344bd70e9 (patch)
treee0afd225c0798db143d3f9595132802a471ea894 /include/asterisk/fskmodem.h
parent59d1fbc49cc2b332bb825ea28da88dca25848a99 (diff)
Change the fsk filter used in CID and TDD decode to an integer based implementation
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@78227 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/fskmodem.h')
-rw-r--r--include/asterisk/fskmodem.h50
1 files changed, 30 insertions, 20 deletions
diff --git a/include/asterisk/fskmodem.h b/include/asterisk/fskmodem.h
index 3b350fb55..d50e8abde 100644
--- a/include/asterisk/fskmodem.h
+++ b/include/asterisk/fskmodem.h
@@ -31,30 +31,39 @@
#define NCOLA 0x4000
+/* new filter structure */
+struct filter_struct {
+
+ int icoefs[8];
+ int ip;
+ int ixv[8];
+ int iyv[8];
+};
+
typedef struct {
- float spb; /*!< Samples / Bit */
int nbit; /*!< Number of Data Bits (5,7,8) */
- float nstop; /*!< Number of Stop Bits 1,1.5,2 */
int parity; /*!< Parity 0=none 1=even 2=odd */
+ int instop; /*!< Number of Stop Bits */
int hdlc; /*!< Modo Packet */
- float x0;
- float x1;
- float x2;
- float cont;
- int bw; /*!< Bandwidth */
- double fmxv[8],fmyv[8]; /*!< filter stuff for M filter */
- int fmp; /*!< pointer for M filter */
- double fsxv[8],fsyv[8]; /*!< filter stuff for S filter */
- int fsp; /*!< pointer for S filter */
- double flxv[8],flyv[8]; /*!< filter stuff for L filter */
- int flp; /*!< pointer for L filter */
- int f_mark_idx; /*!< Mark frequency index (f_M-500)/5 */
- int f_space_idx; /*!< Space frequency index (f_S-500)/5 */
+ int xi0;
+ int xi1;
+ int xi2;
+
+ int ispb;
+ int icont;
+ int bw; /*!< Band Selector*/
+ int f_mark_idx; /*!< Mark Frequency Index (f_M-500)/5 */
+ int f_space_idx; /*!< Space Frequency Index (f_S-500)/5 */
int state;
- int pcola; /*!< Pointer to data queues */
- float cola_in[NCOLA]; /*!< Queue of input samples */
- float cola_filter[NCOLA]; /*!< Queue of samples after filters */
- float cola_demod[NCOLA]; /*!< Queue of demodulated samples */
+
+ int pllispb; /*!<Pll autosense */
+ int pllids;
+ int pllispb2;
+
+ struct filter_struct mark_filter;
+ struct filter_struct space_filter;
+ struct filter_struct demod_filter;
+
} fsk_data;
/* \brief Retrieve a serial byte into outbyte.
@@ -65,7 +74,8 @@ typedef struct {
\arg 0: Still looking for something...
\arg 1: An output byte was received and stored in outbyte
\arg -1: An error occured in the transmission
- He must be called with at least 80 bytes of buffer. */
+ This must be called with at least 80 bytes of buffer. */
int fsk_serial(fsk_data *fskd, short *buffer, int *len, int *outbyte);
+int fskmodem_init(fsk_data *fskd);
#endif /* _ASTERISK_FSKMODEM_H */