Changeset 5289:ddb3677af4d0 in roaraudio
- Timestamp:
- 11/22/11 14:47:44 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/cdrom.h
r5241 r5289 52 52 int fh; 53 53 int stream; 54 int mixer; 54 55 pid_t player; 55 56 char device[ROAR_CDROM_MAX_DEVLEN]; … … 63 64 }; 64 65 65 int roar_cdrom_open (struct roar_connection * con, struct roar_cdrom * cdrom, const char * device );66 int roar_cdrom_open (struct roar_connection * con, struct roar_cdrom * cdrom, const char * device, int mixer); 66 67 int roar_cdrom_close(struct roar_cdrom * cdrom); 67 68 int roar_cdrom_stop (struct roar_cdrom * cdrom); -
include/libroar/simple.h
r5226 r5289 42 42 int roar_simple_connect2(struct roar_connection * con, const char * server, const char * name, int flags, uint_least32_t timeout); 43 43 44 int roar_simple_ stream_obj (struct roar_stream * s, int rate, int channels, int bits, int codec, const char * server, int dir, const char * name) _LIBROAR_ATTR_DEPRECATED;44 int roar_simple_new_stream_attachexeced_obj (struct roar_connection * con, struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, int dir, int mixer); 45 45 46 int roar_simple_new_stream_attachexeced_obj (struct roar_connection * con, struct roar_stream * s, int rate, int channels, int bits, int codec, int dir); 47 48 int roar_simple_new_stream_obj (struct roar_connection * con, struct roar_stream * s, int rate, int channels, int bits, int codec, int dir) _LIBROAR_ATTR_DEPRECATED; 46 int roar_simple_new_stream_obj (struct roar_connection * con, struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, int dir, int mixer) _LIBROAR_ATTR_DEPRECATED; 49 47 50 48 int roar_simple_play_file(const char * file, const char * server, const char * name); -
include/libroar/vio.h
r5278 r5289 87 87 int roar_vio_open_socket_listen(struct roar_vio_calls * calls, int type, const char * host, int port) _LIBROAR_ATTR_USE_RESULT _LIBROAR_ATTR_NONNULL_ALL; 88 88 89 int roar_vio_simple_stream (struct roar_vio_calls * calls, int rate, int channels, int bits, int codec, 90 const char * server, int dir, const char * name); 89 int roar_vio_simple_stream (struct roar_vio_calls * calls, 90 uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, 91 const char * server, int dir, const char * name, int mixer); 91 92 92 93 int roar_vio_simple_new_stream_obj (struct roar_vio_calls * calls, 93 94 struct roar_connection * con, 94 95 struct roar_stream * s, 95 int rate, int channels, int bits, int codec, int dir); 96 uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, 97 int dir, int mixer); 96 98 97 99 // possible VIOs: -
libroar/cdrom.c
r5241 r5289 109 109 } 110 110 111 int roar_cdrom_open (struct roar_connection * con, struct roar_cdrom * cdrom, const char * device ) {111 int roar_cdrom_open (struct roar_connection * con, struct roar_cdrom * cdrom, const char * device, int mixer) { 112 112 #ifdef ROAR_HAVE_CDROM 113 113 int flags; … … 127 127 128 128 cdrom->con = con; // we do not care here if it is set or not as we can operate in local only mode 129 cdrom->mixer = mixer; 129 130 130 131 cdrom->stream = -1; … … 229 230 if ( cdrom->play_local ) { 230 231 231 if ( roar_vio_simple_new_stream_obj(&vio, cdrom->con, stream, ROAR_CDROM_STREAMINFO, ROAR_DIR_PLAY ) == -1 ) {232 if ( roar_vio_simple_new_stream_obj(&vio, cdrom->con, stream, ROAR_CDROM_STREAMINFO, ROAR_DIR_PLAY, cdrom->mixer) == -1 ) { 232 233 return -1; 233 234 } -
libroar/simple.c
r5238 r5289 36 36 #include "libroar.h" 37 37 38 static int roar_simple_stream_obj (struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, const char * server, int dir, const char * name, int mixer) _LIBROAR_ATTR_DEPRECATED; 39 38 40 int roar_simple_connect (struct roar_connection * con, const char * server, const char * name) { 39 41 return roar_simple_connect2(con, server, name, 0, 0); … … 62 64 } 63 65 64 int roar_simple_stream_obj (struct roar_stream * s, int rate, int channels, int bits, int codec, const char * server, int dir, const char * name) {66 static int roar_simple_stream_obj (struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, const char * server, int dir, const char * name, int mixer) { 65 67 struct roar_connection con; 66 68 int ret; … … 82 84 } 83 85 84 if ( roar_stream_connect(&con, s, dir, -1) == -1 ) {86 if ( roar_stream_connect(&con, s, dir, mixer) == -1 ) { 85 87 safe_error = roar_error; 86 88 roar_disconnect(&con); … … 115 117 } 116 118 117 int roar_simple_new_stream_attachexeced_obj (struct roar_connection * con, struct roar_stream * s, int rate, int channels, int bits, int codec, int dir) {119 int roar_simple_new_stream_attachexeced_obj (struct roar_connection * con, struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, int dir, int mixer) { 118 120 int fh; 119 121 120 122 if ( (fh = roar_simple_stream_obj(s, rate, channels, bits, codec, NULL /* server, we hope this is ok here... */, 121 dir, "libroar temp stream" )) == -1 )123 dir, "libroar temp stream", mixer)) == -1 ) 122 124 return -1; 123 125 … … 134 136 } 135 137 136 int roar_simple_new_stream_obj (struct roar_connection * con, struct roar_stream * s, int rate, int channels, int bits, int codec, int dir) {138 int roar_simple_new_stream_obj (struct roar_connection * con, struct roar_stream * s, uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, int dir, int mixer) { 137 139 struct roar_libroar_config * config = roar_libroar_get_config(); 138 140 char file[80] = {0}; … … 171 173 if ( config != NULL ) { 172 174 if ( config->workaround.workarounds & ROAR_LIBROAR_CONFIG_WAS_USE_EXECED ) { 173 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir );175 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir, mixer); 174 176 } 175 177 } … … 254 256 } 255 257 256 if ( roar_stream_connect(con, s, dir, -1) == -1 ) {258 if ( roar_stream_connect(con, s, dir, mixer) == -1 ) { 257 259 return -1; 258 260 } … … 281 283 return -1; 282 284 283 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir );285 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir, mixer); 284 286 } 285 287 … … 310 312 return -1; 311 313 312 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir );314 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir, mixer); 313 315 } else { // seems like we have a positive reply. So we retry the listen socket: 314 316 FD_ZERO(&fds); … … 323 325 return -1; 324 326 325 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir );327 return roar_simple_new_stream_attachexeced_obj(con, s, rate, channels, bits, codec, dir, mixer); 326 328 } 327 329 } -
libroar/vio_stream.c
r5278 r5289 94 94 } 95 95 96 int roar_vio_simple_stream (struct roar_vio_calls * calls, int rate, int channels, int bits, int codec, 97 const char * server, int dir, const char * name) { 96 int roar_vio_simple_stream (struct roar_vio_calls * calls, 97 uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, 98 const char * server, int dir, const char * name, int mixer) { 98 99 struct roar_connection * con = NULL; 99 100 struct roar_stream stream; … … 121 122 } 122 123 123 if ( roar_stream_connect(con, &stream, dir, -1) == -1 ) {124 if ( roar_stream_connect(con, &stream, dir, mixer) == -1 ) { 124 125 err = roar_error; 125 126 roar_disconnect(con); … … 159 160 struct roar_connection * con, 160 161 struct roar_stream * s, 161 int rate, int channels, int bits, int codec, int dir) { 162 uint32_t rate, uint32_t channels, uint32_t bits, uint32_t codec, 163 int dir, int mixer) { 162 164 struct roar_stream stream; 163 165 int fh; … … 174 176 175 177 roar_libroar_nowarn(); 176 if ( (fh = roar_simple_new_stream_obj(con, s, rate, channels, bits, codec, dir )) == -1 ) {178 if ( (fh = roar_simple_new_stream_obj(con, s, rate, channels, bits, codec, dir, mixer)) == -1 ) { 177 179 roar_libroar_warn(); 178 180 ROAR_DBG("roar_vio_simple_new_stream_obj(*) = -1"); -
libroar/vs.c
r5270 r5289 338 338 ret = roar_vio_simple_new_stream_obj(&(vss->vio), vss->con, &(vss->stream), 339 339 info->rate, info->channels, info->bits, info->codec, 340 dir 340 dir, vss->mixerid 341 341 ); 342 342 … … 351 351 } 352 352 353 if ( roar_stream_get_info(vss->con, &(vss->stream), &sinfo) != -1 ) { 354 // TODO: fix this: 355 // as we currently do not support to select mixer we just check if we hit the 356 // right one. 357 if ( vss->mixerid != -1 && vss->mixerid != sinfo.mixer ) { 358 _seterr(ROAR_ERROR_INVAL); // TODO: should we maybe use a diffrent value? 359 roar_vio_close(vss->vio_ptr); 360 return -1; 361 } 362 363 vss->mixerid = sinfo.mixer; 353 if ( vss->mixerid != -1 ) { 354 if ( roar_stream_get_info(vss->con, &(vss->stream), &sinfo) != -1 ) { 355 vss->mixerid = sinfo.mixer; 356 } 357 } 358 359 if ( vss->mixerid != -1 ) 364 360 _roar_vs_find_first_prim(vss); 365 }366 361 367 362 vss->flags |= FLAG_STREAM; -
libroareio/driver_roar.c
r5270 r5289 27 27 #include "driver.h" 28 28 29 int roar_cdriver_roar(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir) { 29 #define MIXER_ID -1 30 31 int roar_cdriver_roar(struct roar_vio_calls * calls, 32 const char * name, const char * dev, 33 struct roar_audio_info * info, int dir) { 30 34 (void)name; 31 return roar_vio_simple_stream(calls, info->rate, info->channels, info->bits, info->codec, dev, dir, "libroareio client"); 35 36 return roar_vio_simple_stream(calls, 37 info->rate, info->channels, info->bits, info->codec, 38 dev, dir, "libroareio client", MIXER_ID); 32 39 } 33 40 -
libroaresd/esdstream.c
r5258 r5289 72 72 } 73 73 74 if ( roar_vio_simple_stream(&calls, rate, channels, bits, codec, host, dir, name ) == -1 )74 if ( roar_vio_simple_stream(&calls, rate, channels, bits, codec, host, dir, name, -1) == -1 ) 75 75 return -1; 76 76 -
libroaross/libroaross.c
r5236 r5289 827 827 handle->stream.info.bits, 828 828 handle->stream.info.codec, 829 handle->stream_dir 829 handle->stream_dir, 830 -1 /* TODO: Find better way to select mixer ID. */ 830 831 ) == -1 ) 831 832 return -1; -
libroarpulse/stream.c
r5270 r5289 329 329 s->stream.info.rate, s->stream.info.channels, 330 330 s->stream.info.bits, s->stream.info.codec, 331 s->stream.dir ) == -1 ) {331 s->stream.dir, -1 /* TODO: FIXME: set to requested mixer */ ) == -1 ) { 332 332 pa_stream_set_state(s, PA_STREAM_FAILED); 333 333 return -1; -
libroarrsound/libroarrsound.c
r5238 r5289 341 341 342 342 if ( roar_vio_simple_new_stream_obj(&(self->vio), &(self->con), &(self->stream), 343 self->rsound.rate, self->rsound.channels, bits, codec, ROAR_DIR_PLAY ) == -1 )343 self->rsound.rate, self->rsound.channels, bits, codec, ROAR_DIR_PLAY, -1) == -1 ) 344 344 return -1; 345 345 -
libroarsndio/stream.c
r4708 r5289 104 104 105 105 if ( roar_vio_simple_new_stream_obj(&(hdl->svio), &(hdl->con), &(hdl->stream), 106 _i(rate), _i(channels), _i(bits), _i(codec), hdl->dir ) == -1 )106 _i(rate), _i(channels), _i(bits), _i(codec), hdl->dir, -1) == -1 ) 107 107 return 0; 108 108 -
libroaryiff/audiocd.c
r4708 r5289 56 56 57 57 if ( ! _g_roaryiff_cdrom.is_open ) { 58 if ( roar_cdrom_open(&rcon, _g_roaryiff_cdrom.cdrom, NULL ) == -1 )58 if ( roar_cdrom_open(&rcon, _g_roaryiff_cdrom.cdrom, NULL, -1) == -1 ) 59 59 return -1; 60 60 } -
plugins/xmms/roar.c
r5236 r5289 152 152 153 153 if ( roar_vio_simple_new_stream_obj(&(g_inst.vio), &(g_inst.con), &(g_inst.stream), 154 rate, nch, bits, codec, ROAR_DIR_PLAY ) == -1 ) {154 rate, nch, bits, codec, ROAR_DIR_PLAY, -1) == -1 ) { 155 155 roar_disconnect(&(g_inst.con)); 156 156 g_inst.state |= STATE_CONNECTED; -
roarclients/roarfilt.c
r5180 r5289 244 244 if ( roar_vio_simple_stream(&svio, 245 245 info.rate, info.channels, info.bits, info.codec, 246 server, ROAR_DIR_FILTER, "roarfilt" ) == -1 ) {246 server, ROAR_DIR_FILTER, "roarfilt", -1) == -1 ) { 247 247 fprintf(stderr, "Error: can not start playback\n"); 248 248 return 1; -
roarclients/roarinterconnect.c
r5238 r5289 322 322 return 2; 323 323 } 324 if ( roar_vio_simple_stream(&vio, rate, channels, bits, codec, remote, tmp, CLIENT_NAME ) == -1 ) {324 if ( roar_vio_simple_stream(&vio, rate, channels, bits, codec, remote, tmp, CLIENT_NAME, -1) == -1 ) { 325 325 fprintf(stderr, "Error: can not open RoarAudio stream to %s: %s\n", remote, roar_error2str(roar_error)); 326 326 return 2; -
roarclients/roarlight.c
r4914 r5289 35 35 36 36 printf(" --server SERVER - Set server hostname\n" 37 " --mixer MIXERID - ID of the light mixer to use\n" 37 38 " --help - Show this help\n" 38 39 ); … … 46 47 } 47 48 48 int cmd_set (CONVAR, char * arg ) {49 int cmd_set (CONVAR, char * arg, const int mixer) { 49 50 char * next = arg; 50 51 char * k, * v; … … 80 81 if ( roar_vio_simple_new_stream_obj(&vio, con, NULL, 81 82 ROAR_RATE_DEFAULT, ROAR_CHANNELS_DEFAULT, ROAR_BITS_DEFAULT, 82 ROAR_CODEC_ROARDMX, ROAR_DIR_LIGHT_IN ) == -1 )83 ROAR_CODEC_ROARDMX, ROAR_DIR_LIGHT_IN, mixer) == -1 ) 83 84 return -1; 84 85 … … 94 95 95 96 int main (int argc, char * argv[]) { 97 struct roar_connection con; 98 int mixer = -1; // -1 = Default 96 99 char * server = NULL; 97 100 char * k; 98 101 int i; 99 struct roar_connection con;100 102 101 103 for (i = 1; i < argc; i++) { … … 104 106 if ( !strcmp(k, "--server") || !strcmp(k, "-s") ) { 105 107 server = argv[++i]; 108 } else if ( !strcmp(k, "--mixer") ) { 109 mixer = atoi(argv[++i]); 106 110 } else if ( !strcmp(k, "--codec") ) { 107 111 … … 142 146 } else if ( !strcmp(k, "set") ) { 143 147 i++; 144 if ( cmd_set(&con, argv[i] ) == -1 ) {148 if ( cmd_set(&con, argv[i], mixer) == -1 ) { 145 149 fprintf(stderr, "Error: can not set channels\n"); 146 150 } else { -
roarclients/roarphone.c
r4883 r5289 168 168 if ( (fh = roar_vio_simple_new_stream_obj(vio, &(g_cons.con), &(g_cons.stream), 169 169 info->rate, info->channels, info->bits, info->codec, 170 ROAR_DIR_BIDIR 170 ROAR_DIR_BIDIR, -1 171 171 )) == -1 ) 172 172 return -1; -
roarclients/roarvumeter.c
r5179 r5289 220 220 } 221 221 222 if ( roar_vio_simple_new_stream_obj(&stream, &con, &s, rate, channels, bits, codec, ROAR_DIR_MONITOR ) == -1) {222 if ( roar_vio_simple_new_stream_obj(&stream, &con, &s, rate, channels, bits, codec, ROAR_DIR_MONITOR, -1) == -1) { 223 223 fprintf(stderr, "Error: can not start monetoring\n"); 224 224 return 1; -
roard/driver_roar.c
r5162 r5289 26 26 #include "roard.h" 27 27 28 #define MIXER_ID -1 29 28 30 int driver_roar_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh, struct roar_stream_server * sstream) { 29 31 int dir = ROAR_DIR_PLAY; … … 46 48 } 47 49 48 if ( roar_vio_simple_stream(inst, info->rate, info->channels, info->bits, info->codec, device, dir, "roard" ) == -1 ) {50 if ( roar_vio_simple_stream(inst, info->rate, info->channels, info->bits, info->codec, device, dir, "roard", MIXER_ID) == -1 ) { 49 51 if ( streams_get_flag(ROAR_STREAM(sstream)->id, ROAR_FLAG_AUTOCONF) ) { 50 52 if ( roar_profile2info(info, "default") == -1 ) 51 53 return -1; 52 54 53 if ( roar_vio_simple_stream(inst, info->rate, info->channels, info->bits, info->codec, device, dir, "roard" ) == -1 ) {55 if ( roar_vio_simple_stream(inst, info->rate, info->channels, info->bits, info->codec, device, dir, "roard", MIXER_ID) == -1 ) { 54 56 return -1; 55 57 } -
roard/sources.c
r5278 r5289 463 463 464 464 if ( roar_vio_simple_stream(&(ss->vio), s->info.rate, s->info.channels, s->info.bits, s->info.codec, 465 device, ROAR_DIR_MONITOR, "roard" ) == -1 )465 device, ROAR_DIR_MONITOR, "roard", -1) == -1 ) 466 466 return -1; 467 467
Note: See TracChangeset
for help on using the changeset viewer.