From cb67c91cb04b63655866ef0199451460178fe4c9 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Wed, 21 Nov 2007 18:52:19 +0000 Subject: Remove obsolete OLD_DSP_ROUTINES code. Also, remove the FAX_DETECT define and only do the calculations if fax detection is enabled on the dsp. (closes issue #11331) Reported by: dimas Patches: dsp.patch uploaded by dimas (license 88) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89490 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/dsp.c | 393 +++---------------------------------------------------------- 1 file changed, 14 insertions(+), 379 deletions(-) diff --git a/main/dsp.c b/main/dsp.c index f744ab5fc..c98ee7f6c 100644 --- a/main/dsp.c +++ b/main/dsp.c @@ -117,9 +117,6 @@ enum busy_detect { /*! Remember last 15 units */ #define DSP_HISTORY 15 -/*! Define if you want the fax detector -- NOT RECOMMENDED IN -STABLE */ -#define FAX_DETECT - #define TONE_THRESH 10.0 /*!< How much louder the tone should be than channel energy */ #define TONE_MIN_THRESH 1e8 /*!< How much tone there should be at least to attempt */ @@ -162,17 +159,9 @@ enum gsamp_thresh { #define DTMF_2ND_HARMONIC_COL 63.1 /* 18dB */ #define DTMF_TO_TOTAL_ENERGY 42.0 -#ifdef OLD_DSP_ROUTINES -#define MF_THRESHOLD 8.0e7 -#define MF_NORMAL_TWIST 5.3 /* 8dB */ -#define MF_REVERSE_TWIST 4.0 /* was 2.5 */ -#define MF_RELATIVE_PEAK 5.3 /* 8dB */ -#define MF_2ND_HARMONIC 1.7 /* was 2.5 */ -#else #define BELL_MF_THRESHOLD 1.6e9 #define BELL_MF_TWIST 4.0 /* 6dB */ #define BELL_MF_RELATIVE_PEAK 12.6 /* 11dB */ -#endif #if !defined(BUSYDETECT_MARTIN) && !defined(BUSYDETECT) && !defined(BUSYDETECT_TONEONLY) && !defined(BUSYDETECT_COMPARE_TONE_AND_SILENCE) #define BUSYDETECT_MARTIN @@ -183,9 +172,7 @@ typedef struct { int v3; int chunky; int fac; -#ifndef OLD_DSP_ROUTINES int samples; -#endif } goertzel_state_t; typedef struct { @@ -197,22 +184,8 @@ typedef struct { goertzel_state_t row_out[4]; goertzel_state_t col_out[4]; -#ifdef FAX_DETECT goertzel_state_t fax_tone; -#endif -#ifdef OLD_DSP_ROUTINES - goertzel_state_t row_out2nd[4]; - goertzel_state_t col_out2nd[4]; -#ifdef FAX_DETECT - goertzel_state_t fax_tone2nd; -#endif - int hit1; - int hit2; - int hit3; - int hit4; -#else int lasthit; -#endif int mhit; float energy; int current_sample; @@ -223,25 +196,14 @@ typedef struct int detected_digits; int lost_digits; int digit_hits[16]; -#ifdef FAX_DETECT int fax_hits; -#endif } dtmf_detect_state_t; typedef struct { goertzel_state_t tone_out[6]; int mhit; -#ifdef OLD_DSP_ROUTINES - int hit1; - int hit2; - int hit3; - int hit4; - goertzel_state_t tone_out2nd[6]; - float energy; -#else int hits[5]; -#endif int current_sample; char digits[MAX_DTMF_DIGITS + 1]; @@ -249,9 +211,6 @@ typedef struct int current_digits; int detected_digits; int lost_digits; -#ifdef FAX_DETECT - int fax_hits; -#endif } mf_detect_state_t; static float dtmf_row[] = @@ -268,24 +227,11 @@ static float mf_tones[] = 700.0, 900.0, 1100.0, 1300.0, 1500.0, 1700.0 }; -#ifdef FAX_DETECT static float fax_freq = 1100.0; -#endif static char dtmf_positions[] = "123A" "456B" "789C" "*0#D"; -#ifdef OLD_DSP_ROUTINES -static char mf_hit[6][6] = { - /* 700 + */ { 0, '1', '2', '4', '7', 'C' }, - /* 900 + */ { '1', 0, '3', '5', '8', 'A' }, - /* 1100 + */ { '2', '3', 0, '6', '9', '*' }, - /* 1300 + */ { '4', '5', '6', 0, '0', 'B' }, - /* 1500 + */ { '7', '8', '9', '0', 0, '#' }, - /* 1700 + */ { 'C', 'A', '*', 'B', '#', 0 }, -}; -#else static char bell_mf_positions[] = "1247C-358A--69*---0B----#"; -#endif static inline void goertzel_sample(goertzel_state_t *s, short sample) { @@ -326,9 +272,7 @@ static inline void goertzel_init(goertzel_state_t *s, float freq, int samples) { s->v2 = s->v3 = s->chunky = 0.0; s->fac = (int)(32768.0 * 2.0 * cos(2.0 * M_PI * (freq / 8000.0))); -#ifndef OLD_DSP_ROUTINES s->samples = samples; -#endif } static inline void goertzel_reset(goertzel_state_t *s) @@ -369,33 +313,15 @@ static void ast_dtmf_detect_init (dtmf_detect_state_t *s) { int i; -#ifdef OLD_DSP_ROUTINES - s->hit1 = - s->mhit = - s->hit3 = - s->hit4 = - s->hit2 = 0; -#else s->lasthit = 0; -#endif for (i = 0; i < 4; i++) { goertzel_init (&s->row_out[i], dtmf_row[i], 102); goertzel_init (&s->col_out[i], dtmf_col[i], 102); -#ifdef OLD_DSP_ROUTINES - goertzel_init (&s->row_out2nd[i], dtmf_row[i] * 2.0, 102); - goertzel_init (&s->col_out2nd[i], dtmf_col[i] * 2.0, 102); -#endif s->energy = 0.0; } -#ifdef FAX_DETECT /* Same for the fax dector */ goertzel_init (&s->fax_tone, fax_freq, 102); -#ifdef OLD_DSP_ROUTINES - /* Same for the fax dector 2nd harmonic */ - goertzel_init (&s->fax_tone2nd, fax_freq * 2.0, 102); -#endif -#endif /* FAX_DETECT */ s->current_sample = 0; s->detected_digits = 0; s->current_digits = 0; @@ -407,18 +333,9 @@ static void ast_dtmf_detect_init (dtmf_detect_state_t *s) static void ast_mf_detect_init (mf_detect_state_t *s) { int i; -#ifdef OLD_DSP_ROUTINES - s->hit1 = - s->hit2 = 0; -#else s->hits[0] = s->hits[1] = s->hits[2] = s->hits[3] = s->hits[4] = 0; -#endif for (i = 0; i < 6; i++) { goertzel_init (&s->tone_out[i], mf_tones[i], 160); -#ifdef OLD_DSP_ROUTINES - goertzel_init (&s->tone_out2nd[i], mf_tones[i] * 2.0, 160); - s->energy = 0.0; -#endif } s->current_digits = 0; memset(&s->digits, 0, sizeof(s->digits)); @@ -434,12 +351,7 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, { float row_energy[4]; float col_energy[4]; -#ifdef FAX_DETECT - float fax_energy; -#ifdef OLD_DSP_ROUTINES - float fax_energy_2nd; -#endif -#endif /* FAX_DETECT */ + float fax_energy = 0.0; float famp; int i; int j; @@ -456,16 +368,6 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, limit = sample + (102 - s->current_sample); else limit = samples; -#if defined(USE_3DNOW) - _dtmf_goertzel_update (s->row_out, amp + sample, limit - sample); - _dtmf_goertzel_update (s->col_out, amp + sample, limit - sample); -#ifdef OLD_DSP_ROUTINES - _dtmf_goertzel_update (s->row_out2nd, amp + sample, limit2 - sample); - _dtmf_goertzel_update (s->col_out2nd, amp + sample, limit2 - sample); -#endif - /* XXX Need to fax detect for 3dnow too XXX */ - #warning "Fax Support Broken" -#else /* The following unrolled loop takes only 35% (rough estimate) of the time of a rolled loop on the machine on which it was developed */ for (j = sample; j < limit; j++) { @@ -481,44 +383,11 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, goertzel_sample(s->col_out + 2, amp[j]); goertzel_sample(s->row_out + 3, amp[j]); goertzel_sample(s->col_out + 3, amp[j]); -#ifdef FAX_DETECT + /* Update fax tone */ - goertzel_sample(&s->fax_tone, amp[j]); -#endif /* FAX_DETECT */ -#ifdef OLD_DSP_ROUTINES - v1 = s->col_out2nd[0].v2; - s->col_out2nd[0].v2 = s->col_out2nd[0].v3; - s->col_out2nd[0].v3 = s->col_out2nd[0].fac*s->col_out2nd[0].v2 - v1 + famp; - v1 = s->row_out2nd[0].v2; - s->row_out2nd[0].v2 = s->row_out2nd[0].v3; - s->row_out2nd[0].v3 = s->row_out2nd[0].fac*s->row_out2nd[0].v2 - v1 + famp; - v1 = s->col_out2nd[1].v2; - s->col_out2nd[1].v2 = s->col_out2nd[1].v3; - s->col_out2nd[1].v3 = s->col_out2nd[1].fac*s->col_out2nd[1].v2 - v1 + famp; - v1 = s->row_out2nd[1].v2; - s->row_out2nd[1].v2 = s->row_out2nd[1].v3; - s->row_out2nd[1].v3 = s->row_out2nd[1].fac*s->row_out2nd[1].v2 - v1 + famp; - v1 = s->col_out2nd[2].v2; - s->col_out2nd[2].v2 = s->col_out2nd[2].v3; - s->col_out2nd[2].v3 = s->col_out2nd[2].fac*s->col_out2nd[2].v2 - v1 + famp; - v1 = s->row_out2nd[2].v2; - s->row_out2nd[2].v2 = s->row_out2nd[2].v3; - s->row_out2nd[2].v3 = s->row_out2nd[2].fac*s->row_out2nd[2].v2 - v1 + famp; - v1 = s->col_out2nd[3].v2; - s->col_out2nd[3].v2 = s->col_out2nd[3].v3; - s->col_out2nd[3].v3 = s->col_out2nd[3].fac*s->col_out2nd[3].v2 - v1 + famp; - v1 = s->row_out2nd[3].v2; - s->row_out2nd[3].v2 = s->row_out2nd[3].v3; - s->row_out2nd[3].v3 = s->row_out2nd[3].fac*s->row_out2nd[3].v2 - v1 + famp; -#ifdef FAX_DETECT - /* Update fax tone */ - v1 = s->fax_tone.v2; - s->fax_tone2nd.v2 = s->fax_tone2nd.v3; - s->fax_tone2nd.v3 = s->fax_tone2nd.fac*s->fax_tone2nd.v2 - v1 + famp; -#endif /* FAX_DETECT */ -#endif + if (faxdetect) + goertzel_sample(&s->fax_tone, amp[j]); } -#endif s->current_sample += (limit - sample); if (s->current_sample < 102) { if (hit && !((digitmode & DSP_DIGITMODE_NOQUELCH))) { @@ -530,10 +399,9 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, } continue; } -#ifdef FAX_DETECT /* Detect the fax energy, too */ - fax_energy = goertzel_result(&s->fax_tone); -#endif + if (faxdetect) + fax_energy = goertzel_result(&s->fax_tone); /* We are at the end of a DTMF detection block */ /* Find the peak row and the peak column */ row_energy[0] = goertzel_result (&s->row_out[0]); @@ -562,17 +430,9 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, break; } } -#ifdef OLD_DSP_ROUTINES - /* ... and second harmonic test */ - if (i >= 4 && - (row_energy[best_row] + col_energy[best_col]) > 42.0*s->energy && - goertzel_result(&s->col_out2nd[best_col])*DTMF_2ND_HARMONIC_COL < col_energy[best_col] - && goertzel_result(&s->row_out2nd[best_row])*DTMF_2ND_HARMONIC_ROW < row_energy[best_row]) { -#else /* ... and fraction of total energy test */ if (i >= 4 && (row_energy[best_row] + col_energy[best_col]) > DTMF_TO_TOTAL_ENERGY*s->energy) { -#endif /* Got a hit */ hit = dtmf_positions[(best_row << 2) + best_col]; if (!(digitmode & DSP_DIGITMODE_NOQUELCH)) { @@ -581,30 +441,9 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, amp[i] = 0; *writeback = 1; } -#ifdef OLD_DSP_ROUTINES - /* Look for two successive similar results */ - /* The logic in the next test is: - We need two successive identical clean detects, with - something different preceeding it. This can work with - back to back differing digits. More importantly, it - can work with nasty phones that give a very wobbly start - to a digit */ - if (hit == s->hit3 && s->hit3 != s->hit2) { - s->mhit = hit; - s->digit_hits[(best_row << 2) + best_col]++; - s->detected_digits++; - if (s->current_digits < MAX_DTMF_DIGITS) { - s->digits[s->current_digits++] = hit; - s->digits[s->current_digits] = '\0'; - } else { - s->lost_digits++; - } - } -#endif } } -#ifndef OLD_DSP_ROUTINES /* Look for two successive similar results */ /* The logic in the next test is: We need two successive identical clean detects, with @@ -625,15 +464,9 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, } s->mhit = hit; } -#endif -#ifdef FAX_DETECT - if (!hit && (fax_energy >= FAX_THRESHOLD) && - (fax_energy >= DTMF_TO_TOTAL_ENERGY*s->energy) && - (faxdetect)) { -#if 0 - printf("Fax energy/Second Harmonic: %f\n", fax_energy); -#endif + if (!hit && faxdetect && (fax_energy >= FAX_THRESHOLD) && + (fax_energy >= DTMF_TO_TOTAL_ENERGY*s->energy)) { /* XXX Probably need better checking than just this the energy XXX */ hit = 'f'; s->fax_hits++; @@ -651,64 +484,29 @@ static int dtmf_detect (dtmf_detect_state_t *s, int16_t amp[], int samples, } s->fax_hits = 0; } -#endif /* FAX_DETECT */ -#ifdef OLD_DSP_ROUTINES - s->hit1 = s->hit2; - s->hit2 = s->hit3; - s->hit3 = hit; -#else s->lasthit = hit; -#endif /* Reinitialise the detector for the next block */ for (i = 0; i < 4; i++) { goertzel_reset(&s->row_out[i]); goertzel_reset(&s->col_out[i]); -#ifdef OLD_DSP_ROUTINES - goertzel_reset(&s->row_out2nd[i]); - goertzel_reset(&s->col_out2nd[i]); -#endif } -#ifdef FAX_DETECT - goertzel_reset (&s->fax_tone); -#ifdef OLD_DSP_ROUTINES - goertzel_reset (&s->fax_tone2nd); -#endif -#endif + if (faxdetect) + goertzel_reset (&s->fax_tone); s->energy = 0.0; s->current_sample = 0; } -#ifdef OLD_DSP_ROUTINES - if ((!s->mhit) || (s->mhit != hit)) { - s->mhit = 0; - return(0); - } - return (hit); -#else return (s->mhit); /* return the debounced hit */ -#endif } /* MF goertzel size */ -#ifdef OLD_DSP_ROUTINES -#define MF_GSIZE 160 -#else #define MF_GSIZE 120 -#endif static int mf_detect (mf_detect_state_t *s, int16_t amp[], int samples, int digitmode, int *writeback) { -#ifdef OLD_DSP_ROUTINES - float tone_energy[6]; - int best1; - int best2; - float max; - int sofarsogood; -#else float energy[6]; int best; int second_best; -#endif float famp; int i; int j; @@ -723,23 +521,10 @@ static int mf_detect (mf_detect_state_t *s, int16_t amp[], limit = sample + (MF_GSIZE - s->current_sample); else limit = samples; -#if defined(USE_3DNOW) - _dtmf_goertzel_update (s->row_out, amp + sample, limit - sample); - _dtmf_goertzel_update (s->col_out, amp + sample, limit - sample); -#ifdef OLD_DSP_ROUTINES - _dtmf_goertzel_update (s->row_out2nd, amp + sample, limit2 - sample); - _dtmf_goertzel_update (s->col_out2nd, amp + sample, limit2 - sample); -#endif - /* XXX Need to fax detect for 3dnow too XXX */ - #warning "Fax Support Broken" -#else /* The following unrolled loop takes only 35% (rough estimate) of the time of a rolled loop on the machine on which it was developed */ for (j = sample; j < limit; j++) { famp = amp[j]; -#ifdef OLD_DSP_ROUTINES - s->energy += famp*famp; -#endif /* With GCC 2.95, the following unrolled code seems to take about 35% (rough estimate) as long as a neat little 0-3 loop */ goertzel_sample(s->tone_out, amp[j]); @@ -748,28 +533,7 @@ static int mf_detect (mf_detect_state_t *s, int16_t amp[], goertzel_sample(s->tone_out + 3, amp[j]); goertzel_sample(s->tone_out + 4, amp[j]); goertzel_sample(s->tone_out + 5, amp[j]); -#ifdef OLD_DSP_ROUTINES - v1 = s->tone_out2nd[0].v2; - s->tone_out2nd[0].v2 = s->tone_out2nd[0].v3; - s->tone_out2nd[0].v3 = s->tone_out2nd[0].fac*s->tone_out2nd[0].v2 - v1 + famp; - v1 = s->tone_out2nd[1].v2; - s->tone_out2nd[1].v2 = s->tone_out2nd[1].v3; - s->tone_out2nd[1].v3 = s->tone_out2nd[1].fac*s->tone_out2nd[1].v2 - v1 + famp; - v1 = s->tone_out2nd[2].v2; - s->tone_out2nd[2].v2 = s->tone_out2nd[2].v3; - s->tone_out2nd[2].v3 = s->tone_out2nd[2].fac*s->tone_out2nd[2].v2 - v1 + famp; - v1 = s->tone_out2nd[3].v2; - s->tone_out2nd[3].v2 = s->tone_out2nd[3].v3; - s->tone_out2nd[3].v3 = s->tone_out2nd[3].fac*s->tone_out2nd[3].v2 - v1 + famp; - v1 = s->tone_out2nd[4].v2; - s->tone_out2nd[4].v2 = s->tone_out2nd[4].v3; - s->tone_out2nd[4].v3 = s->tone_out2nd[4].fac*s->tone_out2nd[2].v2 - v1 + famp; - v1 = s->tone_out2nd[3].v2; - s->tone_out2nd[5].v2 = s->tone_out2nd[6].v3; - s->tone_out2nd[5].v3 = s->tone_out2nd[6].fac*s->tone_out2nd[3].v2 - v1 + famp; -#endif } -#endif s->current_sample += (limit - sample); if (s->current_sample < MF_GSIZE) { if (hit && !((digitmode & DSP_DIGITMODE_NOQUELCH))) { @@ -781,99 +545,6 @@ static int mf_detect (mf_detect_state_t *s, int16_t amp[], } continue; } -#ifdef OLD_DSP_ROUTINES - /* We're at the end of an MF detection block. Go ahead and calculate - all the energies. */ - for (i=0;i<6;i++) { - tone_energy[i] = goertzel_result(&s->tone_out[i]); - } - /* Find highest */ - best1 = 0; - max = tone_energy[0]; - for (i=1;i<6;i++) { - if (tone_energy[i] > max) { - max = tone_energy[i]; - best1 = i; - } - } - - /* Find 2nd highest */ - if (best1) { - max = tone_energy[0]; - best2 = 0; - } else { - max = tone_energy[1]; - best2 = 1; - } - - for (i=0;i<6;i++) { - if (i == best1) continue; - if (tone_energy[i] > max) { - max = tone_energy[i]; - best2 = i; - } - } - hit = 0; - if (best1 != best2) - sofarsogood=1; - else - sofarsogood=0; - /* Check for relative energies */ - for (i=0;i<6;i++) { - if (i == best1) - continue; - if (i == best2) - continue; - if (tone_energy[best1] < tone_energy[i] * MF_RELATIVE_PEAK) { - sofarsogood = 0; - break; - } - if (tone_energy[best2] < tone_energy[i] * MF_RELATIVE_PEAK) { - sofarsogood = 0; - break; - } - } - - if (sofarsogood) { - /* Check for 2nd harmonic */ - if (goertzel_result(&s->tone_out2nd[best1]) * MF_2ND_HARMONIC > tone_energy[best1]) - sofarsogood = 0; - else if (goertzel_result(&s->tone_out2nd[best2]) * MF_2ND_HARMONIC > tone_energy[best2]) - sofarsogood = 0; - } - if (sofarsogood) { - hit = mf_hit[best1][best2]; - if (!(digitmode & DSP_DIGITMODE_NOQUELCH)) { - /* Zero out frame data if this is part DTMF */ - for (i=sample;ihit3) && (s->hit3 != s->hit2)) { - s->mhit = hit; - s->detected_digits++; - if (s->current_digits < MAX_DTMF_DIGITS - 2) { - s->digits[s->current_digits++] = hit; - s->digits[s->current_digits] = '\0'; - } else { - s->lost_digits++; - } - } - } - - s->hit1 = s->hit2; - s->hit2 = s->hit3; - s->hit3 = hit; - /* Reinitialise the detector for the next block */ - for (i = 0; i < 6; i++) { - goertzel_reset(&s->tone_out[i]); - goertzel_reset(&s->tone_out2nd[i]); - } - s->energy = 0.0; - s->current_sample = 0; - } -#else /* We're at the end of an MF detection block. */ /* Find the two highest energies. The spec says to look for two tones and two tones only. Taking this literally -ie @@ -957,7 +628,6 @@ static int mf_detect (mf_detect_state_t *s, int16_t amp[], goertzel_reset(&s->tone_out[i]); s->current_sample = 0; } -#endif if ((!s->mhit) || (s->mhit != hit)) { s->mhit = 0; return(0); @@ -1064,11 +734,6 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) float hz[7]; for (y=0;y<7;y++) hz[y] = goertzel_result(&dsp->freqs[y]); -#if 0 - printf("\n350: 425: 440: 480: 620: 950: 1400: 1800: Energy: \n"); - printf("%.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e %.2e\n", - hz[HZ_350], hz[HZ_425], hz[HZ_440], hz[HZ_480], hz[HZ_620], hz[HZ_950], hz[HZ_1400], hz[HZ_1800], dsp->genergy); -#endif switch (dsp->progmode) { case PROG_MODE_NA: if (pair_there(hz[HZ_480], hz[HZ_620], hz[HZ_350], hz[HZ_440], dsp->genergy)) { @@ -1148,17 +813,13 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) break; } if (dsp->ringtimeout==THRESH_RING2ANSWER) { -#if 0 - ast_log(LOG_NOTICE, "Consider call as answered because of timeout after last ring\n"); -#endif + ast_debug(1, "Consider call as answered because of timeout after last ring\n"); res = AST_CONTROL_ANSWER; dsp->features &= ~DSP_FEATURE_CALL_PROGRESS; } } else { -#if 0 - ast_log(LOG_NOTICE, "Stop state %d with duration %d\n", dsp->tstate, dsp->tcount); - ast_log(LOG_NOTICE, "Start state %d\n", newstate); -#endif + ast_debug(5, "Stop state %d with duration %d\n", dsp->tstate, dsp->tcount); + ast_debug(5, "Start state %d\n", newstate); dsp->tstate = newstate; dsp->tcount = 1; } @@ -1170,10 +831,7 @@ static int __ast_dsp_call_progress(struct ast_dsp *dsp, short *s, int len) dsp->genergy = 0.0; } } -#if 0 - if (res) - printf("Returning %d\n", res); -#endif + return res; } @@ -1328,11 +986,9 @@ int ast_dsp_busydetect(struct ast_dsp *dsp) } #endif #ifndef BUSYDETECT_TONEONLY -#if 1 if (res) { ast_debug(1, "ast_dsp_busydetect detected busy, avgtone: %d, avgsilence %d\n", avgtone, avgsilence); } -#endif #endif return res; } @@ -1665,16 +1321,8 @@ void ast_dsp_digitreset(struct ast_dsp *dsp) /* Reinitialise the detector for the next block */ for (i = 0; i < 6; i++) { goertzel_reset(&dsp->td.mf.tone_out[i]); -#ifdef OLD_DSP_ROUTINES - goertzel_reset(&dsp->td.mf.tone_out2nd[i]); -#endif } -#ifdef OLD_DSP_ROUTINES - dsp->td.mf.energy = 0.0; - dsp->td.mf.hit1 = dsp->td.mf.hit2 = dsp->td.mf.hit3 = dsp->td.mf.hit4 = dsp->td.mf.mhit = 0; -#else dsp->td.mf.hits[4] = dsp->td.mf.hits[3] = dsp->td.mf.hits[2] = dsp->td.mf.hits[1] = dsp->td.mf.hits[0] = dsp->td.mf.mhit = 0; -#endif dsp->td.mf.current_sample = 0; } else { memset(dsp->td.dtmf.digits, 0, sizeof(dsp->td.dtmf.digits)); @@ -1683,22 +1331,9 @@ void ast_dsp_digitreset(struct ast_dsp *dsp) for (i = 0; i < 4; i++) { goertzel_reset(&dsp->td.dtmf.row_out[i]); goertzel_reset(&dsp->td.dtmf.col_out[i]); -#ifdef OLD_DSP_ROUTINES - goertzel_reset(&dsp->td.dtmf.row_out2nd[i]); - goertzel_reset(&dsp->td.dtmf.col_out2nd[i]); -#endif } -#ifdef FAX_DETECT goertzel_reset (&dsp->td.dtmf.fax_tone); -#endif -#ifdef OLD_DSP_ROUTINES -#ifdef FAX_DETECT - goertzel_reset (&dsp->td.dtmf.fax_tone2nd); -#endif - dsp->td.dtmf.hit1 = dsp->td.dtmf.hit2 = dsp->td.dtmf.hit3 = dsp->td.dtmf.hit4 = dsp->td.dtmf.mhit = 0; -#else dsp->td.dtmf.lasthit = dsp->td.dtmf.mhit = 0; -#endif dsp->td.dtmf.energy = 0.0; dsp->td.dtmf.current_sample = 0; } -- cgit v1.2.3