Changeset 5380:0504bc7766aa in roaraudio
- Timestamp:
- 01/04/12 21:36:22 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
r5377 r5380 8 8 * Improved plugin loader a lot (Closes: #190) 9 9 * Added VIO/DSTR for SOCKS proxy (See: #187) 10 * Added support for stream direction RECPLAY. 10 11 11 12 v. 0.4 - Fri Nov 11 2011 20:12 CET -
include/roaraudio/stream.h
r4823 r5380 70 70 71 71 // RECORD+PLAY: 72 //#define ROAR_DIR_???2272 #define ROAR_DIR_RECPLAY 22 73 73 74 74 // Max DIR +1: 75 #define ROAR_DIR_DIRIDS 2 275 #define ROAR_DIR_DIRIDS 23 76 76 77 77 // Stream flags: -
libroar/stream.c
r5270 r5380 807 807 808 808 // stream direction funcs: 809 /*810 #define roar_dir2str(x) ((x) == ROAR_DIR_PLAY ? "play" : (x) == ROAR_DIR_MONITOR ? "monitor" : \811 (x) == ROAR_DIR_FILTER ? "filter" : (x) == ROAR_DIR_RECORD ? "record" : \812 (x) == ROAR_DIR_OUTPUT ? "output" : (x) == ROAR_DIR_BIDIR ? "bidir" : \813 (x) == ROAR_DIR_MIXING ? "mixing" : \814 "unknown")815 */816 817 809 static const struct { 818 int dir;810 const int dir; 819 811 const char * name; 820 812 } _libroar_dir[] = { … … 839 831 {ROAR_DIR_RDTCS_IN, "rdtcs_in" }, 840 832 {ROAR_DIR_RDTCS_OUT, "rdtcs_out" }, 833 {ROAR_DIR_RECPLAY, "recplay" }, 841 834 {-1, "unknown" } 842 835 }; -
libroareio/driver_oss.c
r5270 r5380 88 88 break; 89 89 case ROAR_DIR_BIDIR: 90 case ROAR_DIR_RECPLAY: 90 91 tmp = O_RDWR; 91 92 break; -
roarclients/roarinterconnect.c
r5289 r5380 67 67 #define ST_TRANSMIT 0x03 68 68 #define ST_RECEIVE 0x04 69 #define ST_RECPLAY 0x05 70 #define ST_RECORD 0x06 69 71 // no default here as the default depend on the server type 70 72 … … 102 104 " transmit - Transmit data from local server to remote server\n" 103 105 " receive - Receive data from remote server\n" 106 " recplay - Record from and play data to remote server\n" 107 " record - Record data from remote server\n" 104 108 ); 105 109 … … 144 148 ret -= ret & ST_MASK; 145 149 ret += ST_RECEIVE; 150 } else if ( !strcmp(type, "recplay") ) { 151 ret -= ret & ST_MASK; 152 ret += ST_RECPLAY; 153 } else if ( !strcmp(type, "record") ) { 154 ret -= ret & ST_MASK; 155 ret += ST_RECORD; 146 156 } else { 147 157 return MT_NONE|ST_NONE; … … 174 184 #ifdef _HAVE_RSOUND 175 185 // RSound format helper function: 176 enum rsd_format para2rsdfmt ( int bits, int codec) {186 enum rsd_format para2rsdfmt (uint32_t bits, uint32_t codec) { 177 187 switch (codec) { 178 188 case ROAR_CODEC_PCM_S_LE: … … 318 328 localdir = ROAR_DIR_PLAY; 319 329 break; 330 case ST_RECPLAY: 331 tmp = ROAR_DIR_RECPLAY; 332 break; 333 case ST_RECORD: 334 tmp = ROAR_DIR_RECORD; 335 localdir = ROAR_DIR_PLAY; 336 break; 320 337 default: 321 338 fprintf(stderr, "Error: unknown stream type\n"); … … 343 360 break; 344 361 case ST_RECEIVE: 362 tmp = ROAR_DIR_MONITOR; 363 localdir = ROAR_DIR_PLAY; 364 break; 365 case ST_RECPLAY: 366 tmp = ROAR_DIR_RECPLAY; 367 break; 368 case ST_RECORD: 345 369 tmp = ROAR_DIR_RECORD; 346 370 localdir = ROAR_DIR_PLAY; … … 400 424 case ST_TRANSMIT: 401 425 rfh = esd_play_stream(tmp, rate, remote, CLIENT_NAME); 426 localdir = ROAR_DIR_MONITOR; 402 427 break; 403 428 case ST_RECEIVE: 404 429 rfh = esd_monitor_stream(tmp, rate, remote, CLIENT_NAME); 430 localdir = ROAR_DIR_PLAY; 405 431 break; 406 432 default: -
roarclients/roarphone.c
r5294 r5380 546 546 } 547 547 548 if ( roar_cdriver_open(&dvio, driver, device, &dinfo, ROAR_DIR_ BIDIR) == -1 ) {548 if ( roar_cdriver_open(&dvio, driver, device, &dinfo, ROAR_DIR_RECPLAY) == -1 ) { 549 549 ROAR_ERR("Can not open sound card."); 550 550 return 1; -
roard/codecfilter_celt.c
r5270 r5380 111 111 self->encoder = celt_encoder_create(self->mode); 112 112 #endif 113 } else if ( s->dir == ROAR_DIR_BIDIR ) {113 } else if ( s->dir == ROAR_DIR_BIDIR || s->dir == ROAR_DIR_RECPLAY ) { 114 114 #ifdef ROAR_HAVE_CELT_VERSION_0_7_1 115 115 self->decoder = celt_decoder_create(self->mode, s->info.channels, NULL); -
roard/meta.c
r5295 r5380 184 184 dir = ROAR_STREAM(g_streams[id])->dir; 185 185 186 if ( dir != ROAR_DIR_PLAY && dir != ROAR_DIR_META && // ignore on non input streams 187 dir != ROAR_DIR_FILTER && dir != ROAR_DIR_BIDIR ) 186 if ( dir != ROAR_DIR_PLAY && dir != ROAR_DIR_META && // ignore on non input streams 187 dir != ROAR_DIR_FILTER && dir != ROAR_DIR_BIDIR && 188 dir != ROAR_DIR_RECPLAY ) 188 189 return 0; 189 190 -
roard/roard.c
r5375 r5380 933 933 case ROAR_DIR_FILTER: 934 934 case ROAR_DIR_BIDIR: 935 case ROAR_DIR_RECPLAY: 935 936 if ( !g_listen[sockid].inst.stpl.info.rate ) 936 937 g_listen[sockid].inst.stpl.info.rate = g_sa->rate; -
roard/streams.c
r5377 r5380 427 427 _CHECK_SID(id); 428 428 429 if ( (ss = g_streams[id]) == NULL ) 430 return -1; 429 if ( (ss = g_streams[id]) == NULL ) { 430 ROAR_ERR("streams_set_dir(id=%i, dir=%i, defaults=%i) = -1 // error=NOENT", id, dir, defaults); 431 roar_err_set(ROAR_ERROR_NOENT); 432 return -1; 433 } 431 434 432 435 ROAR_STREAM(ss)->dir = dir; … … 436 439 437 440 if ( defaults ) { 438 if ( dir <= 0 || dir >= ROAR_DIR_DIRIDS ) 441 if ( dir <= 0 || dir >= ROAR_DIR_DIRIDS ) { 442 ROAR_ERR("streams_set_dir(id=%i, dir=%i, defaults=%i) = -1 // error=INVAL", id, dir, defaults); 443 roar_err_set(ROAR_ERROR_INVAL); 439 444 return -1; 445 } 440 446 441 447 ROAR_DBG("streams_set_dir(*): g_config->streams[dir=%i].flags = 0x%.4x", dir, g_config->streams[dir].flags); 442 448 443 449 if ( streams_set_flag(id, g_config->streams[dir].flags) == -1 ) { 444 ROAR_ DBG("streams_set_dir(*) = -1 // can not set stream flags");450 ROAR_WARN("streams_set_dir(*) = -1 // can not set stream flags"); 445 451 return -1; 446 452 } … … 649 655 case ROAR_DIR_OUTPUT: 650 656 case ROAR_DIR_BIDIR: 657 case ROAR_DIR_RECPLAY: 651 658 return ROAR_SUBSYS_WAVEFORM; 652 659 break; … … 705 712 case ROAR_DIR_FILTER: 706 713 case ROAR_DIR_BIDIR: 714 case ROAR_DIR_RECPLAY: 707 715 return STREAM_DIR_BIDIR; 708 716 break; … … 1901 1909 case ROAR_DIR_PLAY: 1902 1910 case ROAR_DIR_BIDIR: 1911 case ROAR_DIR_RECPLAY: 1903 1912 break; 1904 1913 case ROAR_DIR_BRIDGE: … … 2189 2198 case ROAR_DIR_PLAY: 2190 2199 case ROAR_DIR_BIDIR: 2200 case ROAR_DIR_RECPLAY: 2191 2201 break; 2192 2202 case ROAR_DIR_OUTPUT: … … 2366 2376 2367 2377 case ROAR_DIR_RECORD: 2378 case ROAR_DIR_RECPLAY: 2368 2379 ip = g_input_buffer; 2369 2380 break;
Note: See TracChangeset
for help on using the changeset viewer.