Changeset 5533:42f48072307c in roaraudio for roarclients/roarmon.c


Ignore:
Timestamp:
06/12/12 14:39:40 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Fixed usage of -R/-B/-C/-E as well as --aiprofile in roarclients (Closes: #176)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarmon.c

    r5381 r5533  
    3737        "  --bits  -B BITS      - Set bits per sample\n" 
    3838        "  --chans -C CHANNELS  - Set number of channels\n" 
    39         "  --codec    CODEC     - Set the codec\n" 
     39        "  --codec -E CODEC     - Set the codec\n" 
     40        "  --aiprofile PROFILE  - Set audio profile\n" 
    4041        "  --record             - Run in record mode (Wave Audio only)\n" 
    4142        "  --wave               - Output Wave Audio (PCM)\n" 
     
    5455 
    5556int main (int argc, char * argv[]) { 
    56  int    rate     = -1; 
    57  int    bits     = -1; 
    58  int    channels = -1; 
    59  int    codec    = -1; 
     57 struct roar_audio_info info = { 
     58  .rate = ROAR_AUDIO_INFO_INVALID, 
     59  .bits = ROAR_AUDIO_INFO_INVALID, 
     60  .channels = ROAR_AUDIO_INFO_INVALID, 
     61  .codec = ROAR_AUDIO_INFO_INVALID}; 
    6062 int    dir      = ROAR_DIR_MONITOR; 
    6163 int    rel_id   = -1; 
     
    8486   server = argv[++i]; 
    8587  } else if ( !strcmp(k, "--rate") || !strcmp(k, "-r") || !strcmp(k, "-R") ) { 
    86    rate = roar_str2rate(argv[++i]); 
     88   info.rate = roar_str2rate(argv[++i]); 
    8789  } else if ( !strcmp(k, "--bits") || !strcmp(k, "-B") ) { 
    88    bits = roar_str2bits(argv[++i]); 
     90   info.bits = roar_str2bits(argv[++i]); 
    8991  } else if ( !strcmp(k, "-b") ) { 
    90    bits = 8; 
     92   info.bits = 8; 
    9193  } else if ( !strcmp(k, "--channels") || !strcmp(k, "--chans") || !strcmp(k, "-C") ) { 
    92    channels = roar_str2channels(argv[++i]); 
     94   info.channels = roar_str2channels(argv[++i]); 
    9395  } else if ( !strcmp(k, "-m") ) { 
    94    channels = 1; 
    95   } else if ( !strcmp(k, "--codec") ) { 
    96    if ( (codec = roar_str2codec(argv[++i])) == -1 ) { 
     96   info.channels = 1; 
     97  } else if ( !strcmp(k, "--codec") || !strcmp(k, "-E") ) { 
     98   if ( (info.codec = roar_str2codec(argv[++i])) == ROAR_AUDIO_INFO_INVALID ) { 
    9799    fprintf(stderr, "Error: Unknown codec: %s\n", argv[i]); 
     100    return 1; 
     101   } 
     102 
     103  } else if ( !strcmp(k, "--aiprofile") ) { 
     104   if ( roar_profile2info(&info, argv[++i]) == -1 ) { 
     105    fprintf(stderr, "Error: Can not load audio profile: %s: %s\n", argv[i], roar_error2str(roar_error)); 
    98106    return 1; 
    99107   } 
     
    140148  case ROAR_DIR_MONITOR: 
    141149  case ROAR_DIR_RECORD: 
    142     if ( rate     == -1 ) rate     = ROAR_RATE_DEFAULT; 
    143     if ( bits     == -1 ) bits     = ROAR_BITS_DEFAULT; 
    144     if ( channels == -1 ) channels = ROAR_CHANNELS_DEFAULT; 
    145     if ( codec    == -1 ) codec    = ROAR_CODEC_DEFAULT; 
     150    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = ROAR_RATE_DEFAULT; 
     151    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = ROAR_BITS_DEFAULT; 
     152    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_CHANNELS_DEFAULT; 
     153    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_CODEC_DEFAULT; 
    146154   break; 
    147155  case ROAR_DIR_MIDI_OUT: 
    148     if ( rate     == -1 ) rate     = 0; 
    149     if ( bits     == -1 ) bits     = ROAR_MIDI_BITS; 
    150     if ( channels == -1 ) channels = ROAR_MIDI_CHANNELS_DEFAULT; 
    151     if ( codec    == -1 ) codec    = ROAR_CODEC_MIDI; 
     156    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = 0; 
     157    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = ROAR_MIDI_BITS; 
     158    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_MIDI_CHANNELS_DEFAULT; 
     159    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_CODEC_MIDI; 
    152160   break; 
    153161  case ROAR_DIR_LIGHT_OUT: 
    154     if ( rate     == -1 ) rate     = 0; 
    155     if ( bits     == -1 ) bits     = ROAR_LIGHT_BITS; 
    156     if ( channels == -1 ) channels = 0; 
    157     if ( codec    == -1 ) codec    = ROAR_CODEC_DMX512; 
     162    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = 0; 
     163    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = ROAR_LIGHT_BITS; 
     164    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = 0; 
     165    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_CODEC_DMX512; 
    158166   break; 
    159167  case ROAR_DIR_COMPLEX_OUT: 
    160     if ( rate     == -1 ) rate     = ROAR_COMPLEX_RATE; 
    161     if ( bits     == -1 ) bits     = ROAR_COMPLEX_BITS; 
    162     if ( channels == -1 ) channels = ROAR_COMPLEX_CHANNELS; 
    163     if ( codec    == -1 ) codec    = ROAR_COMPLEX_CODEC; 
     168    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = ROAR_COMPLEX_RATE; 
     169    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = ROAR_COMPLEX_BITS; 
     170    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_COMPLEX_CHANNELS; 
     171    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_COMPLEX_CODEC; 
    164172   break; 
    165173  case ROAR_DIR_RDTCS_OUT: 
    166     if ( rate     == -1 ) rate     = ROAR_RDTCS_RATE; 
    167     if ( bits     == -1 ) bits     = ROAR_RDTCS_BITS; 
    168     if ( channels == -1 ) channels = ROAR_RDTCS_CHANNELS; 
    169     if ( codec    == -1 ) codec    = ROAR_RDTCS_CODEC; 
     174    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = ROAR_RDTCS_RATE; 
     175    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = ROAR_RDTCS_BITS; 
     176    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_RDTCS_CHANNELS; 
     177    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_RDTCS_CODEC; 
    170178   break; 
    171179  case ROAR_DIR_RAW_OUT: 
    172180  case ROAR_DIR_THRU: 
    173181  default: 
    174     if ( rate     == -1 ) rate     = 0; 
    175     if ( bits     == -1 ) bits     = 0; 
    176     if ( channels == -1 ) channels = 0; 
    177     if ( codec    == -1 ) codec    = ROAR_CODEC_DEFAULT; 
     182    if ( info.rate      == ROAR_AUDIO_INFO_INVALID ) info.rate     = 0; 
     183    if ( info.bits      == ROAR_AUDIO_INFO_INVALID ) info.bits     = 0; 
     184    if ( info.channels  == ROAR_AUDIO_INFO_INVALID ) info.channels = 0; 
     185    if ( info.codec     == ROAR_AUDIO_INFO_INVALID ) info.codec    = ROAR_CODEC_DEFAULT; 
    178186   break; 
    179187 } 
     
    184192 } 
    185193 
    186  if ( roar_stream_new(&s, rate, channels, bits, codec) == -1 ) { 
     194 if ( roar_stream_new(&s, info.rate, info.channels, info.bits, info.codec) == -1 ) { 
    187195  fprintf(stderr, "Error: can not create stream\n"); 
    188196  roar_disconnect(&con); 
Note: See TracChangeset for help on using the changeset viewer.