diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-21 20:59:03 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-21 20:59:03 +0000 |
commit | 42899d3f859d2dcc376a848e2909c6c53e992138 (patch) | |
tree | f99dbf0794b599bc588c4e06a937f22371480a6c /main/tdd.c | |
parent | b714462a52590ebcbf027e7f06127dbe2c64ff3e (diff) |
Optionally build integer-based routines for FSK tone decoding (but default
to the more accurate float-based routines).
(Closes issue #11679)
(Step 1 of 2)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@132510 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/tdd.c')
-rw-r--r-- | main/tdd.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/main/tdd.c b/main/tdd.c index e07d5b0d1..8cbe18837 100644 --- a/main/tdd.c +++ b/main/tdd.c @@ -99,6 +99,7 @@ struct tdd_state *tdd_new(void) struct tdd_state *tdd; tdd = calloc(1, sizeof(*tdd)); if (tdd) { +#ifdef INTEGER_CALLERID tdd->fskd.ispb = 176; /* 45.5 baud */ /* Set up for 45.5 / 8000 freq *32 to allow ints */ tdd->fskd.pllispb = (int)((8000 * 32 * 2) / 90); @@ -115,8 +116,24 @@ struct tdd_state *tdd_new(void) tdd->fskd.state = 0; tdd->pos = 0; tdd->mode = 0; - tdd->charnum = 0; fskmodem_init(&tdd->fskd); +#else + tdd->fskd.spb = 176; /* 45.5 baud */ + tdd->fskd.hdlc = 0; /* Async */ + tdd->fskd.nbit = 5; /* 5 bits */ + tdd->fskd.nstop = 1.5; /* 1.5 stop bits */ + tdd->fskd.parity = 0; /* No parity */ + tdd->fskd.bw=0; /* Filter 75 Hz */ + tdd->fskd.f_mark_idx = 0; /* 1400 Hz */ + tdd->fskd.f_space_idx = 1; /* 1800 Hz */ + tdd->fskd.pcola = 0; /* No clue */ + tdd->fskd.cont = 0; /* Digital PLL reset */ + tdd->fskd.x0 = 0.0; + tdd->fskd.state = 0; + tdd->pos = 0; + tdd->mode = 2; +#endif + tdd->charnum = 0; } else ast_log(LOG_WARNING, "Out of memory\n"); return tdd; |