Mercurial > hg > audiostuff
annotate spandsp-0.0.6pre17/tests/dtmf_tx_tests.c @ 4:26cd8f1ef0b1
import spandsp-0.0.6pre17
| author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> | 
|---|---|
| date | Fri, 25 Jun 2010 15:50:58 +0200 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 4 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 1 /* | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 2 * SpanDSP - a series of DSP components for telephony | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 3 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 4 * dtmf_tx_tests.c - Test the DTMF generator. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 5 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 6 * Written by Steve Underwood <steveu@coppice.org> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 7 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 8 * Copyright (C) 2003 Steve Underwood | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 9 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 10 * All rights reserved. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 11 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 12 * This program is free software; you can redistribute it and/or modify | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 13 * it under the terms of the GNU General Public License version 2, as | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 14 * published by the Free Software Foundation. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 15 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 16 * This program is distributed in the hope that it will be useful, | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 19 * GNU General Public License for more details. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 20 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 21 * You should have received a copy of the GNU General Public License | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 22 * along with this program; if not, write to the Free Software | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 24 * | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 25 * $Id: dtmf_tx_tests.c,v 1.23 2009/05/30 15:23:13 steveu Exp $ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 26 */ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 27 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 28 /*! \file */ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 29 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 30 /*! \page dtmf_tx_tests_page DTMF generation tests | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 31 \section dtmf_tx_tests_page_sec_1 What does it do? | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 32 ???. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 33 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 34 \section dtmf_tx_tests_page_sec_2 How does it work? | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 35 ???. | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 36 */ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 37 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 38 #if defined(HAVE_CONFIG_H) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 39 #include "config.h" | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 40 #endif | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 41 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 42 #include <stdlib.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 43 #include <string.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 44 #include <stdio.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 45 #include <fcntl.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 46 #include <time.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 47 #include <sndfile.h> | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 48 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 49 //#if defined(WITH_SPANDSP_INTERNALS) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 50 #define SPANDSP_EXPOSE_INTERNAL_STRUCTURES | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 51 //#endif | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 52 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 53 #include "spandsp.h" | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 54 #include "spandsp-sim.h" | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 55 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 56 #define OUTPUT_FILE_NAME "dtmf.wav" | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 57 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 58 int main(int argc, char *argv[]) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 59 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 60 dtmf_tx_state_t *gen; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 61 int16_t amp[16384]; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 62 int len; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 63 SNDFILE *outhandle; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 64 int outframes; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 65 int add_digits; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 66 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 67 if ((outhandle = sf_open_telephony_write(OUTPUT_FILE_NAME, 1)) == NULL) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 68 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 69 fprintf(stderr, " Cannot open audio file '%s'\n", OUTPUT_FILE_NAME); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 70 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 71 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 72 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 73 gen = dtmf_tx_init(NULL); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 74 len = dtmf_tx(gen, amp, 16384); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 75 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 76 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 77 if (dtmf_tx_put(gen, "123", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 78 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 79 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 80 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 81 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 82 len = dtmf_tx(gen, amp, 16384); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 83 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 84 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 85 if (dtmf_tx_put(gen, "456", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 86 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 87 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 88 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 89 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 90 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 91 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 92 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 93 if (dtmf_tx_put(gen, "789", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 94 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 95 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 96 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 97 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 98 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 99 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 100 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 101 if (dtmf_tx_put(gen, "*#", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 102 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 103 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 104 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 105 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 106 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 107 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 108 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 109 add_digits = 1; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 110 do | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 111 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 112 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 113 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 114 if (len > 0) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 115 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 116 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 117 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 118 if (add_digits) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 119 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 120 if (dtmf_tx_put(gen, "1234567890", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 121 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 122 printf("Digit buffer full\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 123 add_digits = 0; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 124 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 125 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 126 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 127 while (len > 0); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 128 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 129 dtmf_tx_init(gen); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 130 len = dtmf_tx(gen, amp, 16384); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 131 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 132 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 133 if (dtmf_tx_put(gen, "123", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 134 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 135 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 136 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 137 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 138 len = dtmf_tx(gen, amp, 16384); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 139 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 140 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 141 if (dtmf_tx_put(gen, "456", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 142 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 143 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 144 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 145 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 146 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 147 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 148 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 149 if (dtmf_tx_put(gen, "789", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 150 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 151 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 152 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 153 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 154 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 155 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 156 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 157 if (dtmf_tx_put(gen, "0*#", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 158 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 159 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 160 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 161 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 162 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 163 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 164 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 165 if (dtmf_tx_put(gen, "ABCD", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 166 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 167 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 168 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 169 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 170 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 171 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 172 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 173 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 174 /* Try modifying the level and length of the digits */ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 175 printf("Try different levels and timing\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 176 dtmf_tx_set_level(gen, -20, 5); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 177 dtmf_tx_set_timing(gen, 100, 200); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 178 if (dtmf_tx_put(gen, "123", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 179 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 180 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 181 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 182 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 183 do | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 184 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 185 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 186 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 187 if (len > 0) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 188 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 189 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 190 while (len > 0); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 191 printf("Restore normal levels and timing\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 192 dtmf_tx_set_level(gen, -10, 0); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 193 dtmf_tx_set_timing(gen, 50, 55); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 194 if (dtmf_tx_put(gen, "A", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 195 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 196 printf("Ooops\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 197 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 198 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 199 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 200 add_digits = TRUE; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 201 do | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 202 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 203 len = dtmf_tx(gen, amp, 160); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 204 printf("Generated %d samples\n", len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 205 if (len > 0) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 206 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 207 outframes = sf_writef_short(outhandle, amp, len); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 208 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 209 if (add_digits) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 210 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 211 if (dtmf_tx_put(gen, "1234567890", -1)) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 212 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 213 printf("Digit buffer full\n"); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 214 add_digits = FALSE; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 215 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 216 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 217 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 218 while (len > 0); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 219 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 220 if (sf_close(outhandle) != 0) | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 221 { | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 222 fprintf(stderr, " Cannot close audio file '%s'\n", OUTPUT_FILE_NAME); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 223 exit(2); | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 224 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 225 | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 226 return 0; | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 227 } | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 228 /*- End of function --------------------------------------------------------*/ | 
| 
26cd8f1ef0b1
import spandsp-0.0.6pre17
 Peter Meerwald <pmeerw@cosy.sbg.ac.at> parents: diff
changeset | 229 /*- End of file ------------------------------------------------------------*/ | 
