Changeset 5457:d4b1d5287492 in roaraudio for roarclients/roarcat.c
- Timestamp:
- 03/26/12 12:19:36 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarcat.c
r5456 r5457 52 52 53 53 int main (int argc, char * argv[]) { 54 int rate = -1; 55 int bits = -1; 56 int channels = -1; 57 int codec = -1; 54 struct roar_audio_info info = { 55 .rate = ROAR_AUDIO_INFO_INVALID, 56 .bits = ROAR_AUDIO_INFO_INVALID, 57 .channels = ROAR_AUDIO_INFO_INVALID, 58 .codec = ROAR_AUDIO_INFO_INVALID}; 58 59 int dir = ROAR_DIR_PLAY; 59 60 int rel_id = -1; … … 83 84 name = argv[++i]; 84 85 } else if ( !strcmp(k, "--rate") || !strcmp(k, "-r") || !strcmp(k, "-R") ) { 85 rate = roar_str2rate(argv[++i]);86 info.rate = roar_str2rate(argv[++i]); 86 87 } else if ( !strcmp(k, "--bits") || !strcmp(k, "-B") ) { 87 bits = roar_str2bits(argv[++i]);88 info.bits = roar_str2bits(argv[++i]); 88 89 } else if ( !strcmp(k, "-b") ) { 89 bits = 8;90 info.bits = 8; 90 91 } else if ( !strcmp(k, "--channels") || !strcmp(k, "--chans") || !strcmp(k, "-C") ) { 91 channels = roar_str2channels(argv[++i]);92 info.channels = roar_str2channels(argv[++i]); 92 93 } else if ( !strcmp(k, "-m") ) { 93 channels = 1;94 } else if ( !strcmp(k, "--codec") ) {95 if ( ( codec = roar_str2codec(argv[++i])) == -1) {94 info.channels = 1; 95 } else if ( !strcmp(k, "--codec") || !strcmp(k, "-E") ) { 96 if ( (info.codec = roar_str2codec(argv[++i])) == ROAR_AUDIO_INFO_INVALID ) { 96 97 fprintf(stderr, "Error: Unknown codec: %s\n", argv[i]); 97 98 return 1; … … 134 135 switch (dir) { 135 136 case ROAR_DIR_PLAY: 136 if ( rate == -1 )rate = ROAR_RATE_DEFAULT;137 if ( bits == -1 )bits = ROAR_BITS_DEFAULT;138 if ( channels == -1 )channels = ROAR_CHANNELS_DEFAULT;139 if ( codec == -1 )codec = ROAR_CODEC_DEFAULT;137 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = ROAR_RATE_DEFAULT; 138 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = ROAR_BITS_DEFAULT; 139 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_CHANNELS_DEFAULT; 140 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_CODEC_DEFAULT; 140 141 break; 141 142 case ROAR_DIR_MIDI_IN: 142 if ( rate == -1 )rate = 0;143 if ( bits == -1 )bits = ROAR_MIDI_BITS;144 if ( channels == -1 )channels = ROAR_MIDI_CHANNELS_DEFAULT;145 if ( codec == -1 )codec = ROAR_CODEC_MIDI;143 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = 0; 144 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = ROAR_MIDI_BITS; 145 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_MIDI_CHANNELS_DEFAULT; 146 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_CODEC_MIDI; 146 147 break; 147 148 case ROAR_DIR_LIGHT_IN: 148 if ( rate == -1 )rate = 0;149 if ( bits == -1 )bits = ROAR_LIGHT_BITS;150 if ( channels == -1 )channels = 0;151 if ( codec == -1 )codec = ROAR_CODEC_DMX512;149 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = 0; 150 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = ROAR_LIGHT_BITS; 151 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = 0; 152 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_CODEC_DMX512; 152 153 break; 153 154 case ROAR_DIR_COMPLEX_IN: 154 if ( rate == -1 )rate = ROAR_COMPLEX_RATE;155 if ( bits == -1 )bits = ROAR_COMPLEX_BITS;156 if ( channels == -1 )channels = ROAR_COMPLEX_CHANNELS;157 if ( codec == -1 )codec = ROAR_COMPLEX_CODEC;155 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = ROAR_COMPLEX_RATE; 156 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = ROAR_COMPLEX_BITS; 157 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_COMPLEX_CHANNELS; 158 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_COMPLEX_CODEC; 158 159 break; 159 160 case ROAR_DIR_RDTCS_IN: 160 if ( rate == -1 )rate = ROAR_RDTCS_RATE;161 if ( bits == -1 )bits = ROAR_RDTCS_BITS;162 if ( channels == -1 )channels = ROAR_RDTCS_CHANNELS;163 if ( codec == -1 )codec = ROAR_RDTCS_CODEC;161 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = ROAR_RDTCS_RATE; 162 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = ROAR_RDTCS_BITS; 163 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = ROAR_RDTCS_CHANNELS; 164 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_RDTCS_CODEC; 164 165 break; 165 166 case ROAR_DIR_RAW_IN: 166 167 default: 167 if ( rate == -1 )rate = 0;168 if ( bits == -1 )bits = 0;169 if ( channels == -1 )channels = 0;170 if ( codec == -1 )codec = ROAR_CODEC_DEFAULT;168 if ( info.rate == ROAR_AUDIO_INFO_INVALID ) info.rate = 0; 169 if ( info.bits == ROAR_AUDIO_INFO_INVALID ) info.bits = 0; 170 if ( info.channels == ROAR_AUDIO_INFO_INVALID ) info.channels = 0; 171 if ( info.codec == ROAR_AUDIO_INFO_INVALID ) info.codec = ROAR_CODEC_DEFAULT; 171 172 break; 172 173 } … … 177 178 } 178 179 179 if ( roar_stream_new(&s, rate, channels, bits,codec) == -1 ) {180 if ( roar_stream_new(&s, info.rate, info.channels, info.bits, info.codec) == -1 ) { 180 181 fprintf(stderr, "Error: can not create stream\n"); 181 182 roar_disconnect(&con);
Note: See TracChangeset
for help on using the changeset viewer.