Changeset 5547:3f5d08ba722e in roaraudio for roarclients/roardtmf.c


Ignore:
Timestamp:
06/17/12 16:17:06 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added an extended DTMF mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roardtmf.c

    r5546 r5547  
    4848        "  --rate  -R RATE    - Set sample rate\n" 
    4949        "  --help             - Show this help\n" 
     50        "  --mode-dtmf        - Use standard DTMF (default)\n" 
     51        "  --mode-roar        - Use RoarAudio extended DTMF\n" 
    5052       ); 
    5153 
     
    5355 
    5456int main (int argc, char * argv[]) { 
     57 enum { 
     58  MODE_DTMF, 
     59  MODE_ROAR 
     60 } mode = MODE_DTMF; 
    5561 int    rate     = ROAR_RATE_DEFAULT; 
    5662 const char * server   = NULL; 
     
    6571 size_t samples; 
    6672 size_t len; 
    67  char  c; 
     73 uint16_t c; 
    6874 int err; 
    6975 
     
    7581  } else if ( !strcmp(k, "--rate") || !strcmp(k, "-r") || !strcmp(k, "-R") ) { 
    7682   rate = roar_str2rate(argv[++i]); 
     83  } else if ( !strcmp(k, "--mode-dtmf") ) { 
     84   mode = MODE_DTMF; 
     85  } else if ( !strcmp(k, "--mode-roar") ) { 
     86   mode = MODE_ROAR; 
    7787  } else if ( !strcmp(k, "--help") ) { 
    7888   usage(); 
     
    95105 samples = len_break + len_tone; 
    96106 
     107/* 
    97108 printf("samples=%llu\n", (long long unsigned int)samples); 
    98 /* 
    99109 return 0; 
    100110*/ 
     
    112122  tones++; 
    113123 
    114   if ( c == '+' || c == '.' || c == '_' ) 
    115    continue; 
     124  if ( mode == MODE_DTMF ) { 
     125   if ( c == '+' || c == '.' || c == '_' ) 
     126    continue; 
     127  } else if ( mode == MODE_ROAR ) { 
     128   c = ROAR_DTMF_CHAR_ROAR(c); 
     129  } 
    116130 
    117   if ( c == ' ' ) { 
     131  if ( mode == MODE_DTMF && c == ' ' ) { 
    118132   roar_dtmf_break(buf, len_tone, rate, ROAR_DTMF_OPTIONS_NONE); 
    119133  } else { 
Note: See TracChangeset for help on using the changeset viewer.