Changeset 5242:97239101cee9 in roaraudio
- Timestamp:
- 11/13/11 00:03:27 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/vio.h
r5114 r5242 83 83 84 84 // converters: 85 int roar_vio_open_file (struct roar_vio_calls * calls, c har * filename, int flags, mode_t mode) _LIBROAR_ATTR_DEPRECATED _LIBROAR_ATTR_NONNULL_ALL;85 int roar_vio_open_file (struct roar_vio_calls * calls, const char * filename, int flags, mode_t mode) _LIBROAR_ATTR_DEPRECATED _LIBROAR_ATTR_NONNULL_ALL; 86 86 int roar_vio_open_fh (struct roar_vio_calls * calls, int fh) _LIBROAR_ATTR_NONNULL_ALL; 87 87 int roar_vio_open_fh_socket(struct roar_vio_calls * calls, int fh) _LIBROAR_ATTR_NONNULL_ALL; -
include/libroareio/driver.h
r4708 r5242 41 41 struct roar_cdriver { 42 42 const char * name; 43 int (*open)(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir);43 int (*open)(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir); 44 44 }; 45 45 46 int roar_cdriver_open(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir);46 int roar_cdriver_open(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir); 47 47 48 48 // driver prototypes: 49 int roar_cdriver_oss (struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir);50 int roar_cdriver_roar(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir);49 int roar_cdriver_oss (struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir); 50 int roar_cdriver_roar(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir); 51 51 52 52 #endif -
libroar/vio.c
r5115 r5242 305 305 306 306 // converters: 307 int roar_vio_open_file (struct roar_vio_calls * calls, c har * filename, int flags, mode_t mode) {307 int roar_vio_open_file (struct roar_vio_calls * calls, const char * filename, int flags, mode_t mode) { 308 308 #ifdef _CAN_OPERATE 309 309 int fh; -
libroareio/driver.c
r4708 r5242 32 32 #endif 33 33 34 int roar_cdriver_null(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir) {34 int roar_cdriver_null(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir) { 35 35 ROAR_DBG("roar_cdriver_null(calls=%p, name='%s', dev='%s', info=%p{...}, dir=%i(?)) = ?", calls, name, dev, info, dir); 36 36 … … 56 56 57 57 58 static int roar_cdriver_open_default(struct roar_vio_calls * calls, c har * dev, struct roar_audio_info * info, int dir) {58 static int roar_cdriver_open_default(struct roar_vio_calls * calls, const char * dev, struct roar_audio_info * info, int dir) { 59 59 const char * names[] = { 60 60 // native APIs: … … 81 81 } 82 82 83 int roar_cdriver_open(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir) {83 int roar_cdriver_open(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir) { 84 84 int i; 85 85 char *delm; -
libroareio/driver_oss.c
r4890 r5242 59 59 #define _err() roar_vio_close(calls); return -1 60 60 61 int roar_cdriver_oss(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir) {61 int roar_cdriver_oss(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir) { 62 62 struct roar_vio_sysio_ioctl ctl; 63 63 int tmp, ctmp; -
libroareio/driver_roar.c
r4708 r5242 27 27 #include "driver.h" 28 28 29 int roar_cdriver_roar(struct roar_vio_calls * calls, const char * name, c har * dev, struct roar_audio_info * info, int dir) {29 int roar_cdriver_roar(struct roar_vio_calls * calls, const char * name, const char * dev, struct roar_audio_info * info, int dir) { 30 30 return roar_vio_simple_stream(calls, info->rate, info->channels, info->bits, info->codec, dev, dir, "libroareio client"); 31 31 } -
plugins/roard/protocol-gopher.c
r4744 r5242 686 686 chardata[len-1] = 0; 687 687 688 roar_buffer_set_len(buf, strlen(data)); 688 if ( roar_buffer_set_len(buf, strlen(data)) == -1 ) { 689 roar_buffer_free(buf); 690 return -1; 691 } 689 692 690 693 clients_add_output(client, buf); -
roard/Makefile
r4980 r5242 3 3 OBJ=roard.o driver.o mixer.o output.o signals.o loop.o clients.o streams.o network.o commands.o req.o sources.o sample.o meta.o codecfilter.o lib.o ssynth.o container_framework.o plugins.o memlock.o hwmixer.o auth.o caps.o rolestack.o 4 4 SUBSYS=midi.o light.o raw.o rdtcs.o waveform.o beep.o 5 DRV=driver_esd.o driver_ao.o driver_roar.o driver_ raw.o driver_oss.o driver_shout.o driver_sndio.o driver_dmx.o driver_pwmled.o driver_sysclock.o driver_wmm.o driver_dstr.o driver_alsa.o driver_rsound.o driver_portaudio.o driver_pulsesimple.o driver_jack.o driver_artsc.o5 DRV=driver_esd.o driver_ao.o driver_roar.o driver_oss.o driver_shout.o driver_sndio.o driver_dmx.o driver_pwmled.o driver_sysclock.o driver_wmm.o driver_dstr.o driver_alsa.o driver_rsound.o driver_portaudio.o driver_pulsesimple.o driver_jack.o driver_artsc.o 6 6 CF_CODEC=codecfilter_cmd.o codecfilter_vorbis.o codecfilter_celt.o codecfilter_speex.o codecfilter_alaw.o codecfilter_mulaw.o codecfilter_sndfile.o codecfilter_fishsound.o codecfilter_flac.o 7 7 CF_CONTAINER=codecfilter_wave.o codecfilter_raum.o codecfilter_au.o -
roard/clients.c
r5192 r5242 699 699 700 700 if ( ret == len ) { 701 roar_buffer_next(&(cs->outbuf)); 701 if ( roar_buffer_next(&(cs->outbuf)) == -1 ) { 702 clients_delete(id); 703 return -1; 704 } 702 705 } else { 703 706 if ( roar_buffer_set_offset(cs->outbuf, ret) == -1 ) { -
roard/codecfilter_fishsound.c
r4957 r5242 84 84 self->buffer = buf; 85 85 } else { 86 roar_buffer_add(self->buffer, buf); 87 } 88 86 if ( roar_buffer_add(self->buffer, buf) == -1 ) { 87 roar_buffer_free(buf); 88 return -1; 89 } 90 } 91 92 // shouldn't that be zero? 89 93 return -1; 90 94 } -
roard/codecfilter_flac.c
r5162 r5242 101 101 self->decoder.written = buf; 102 102 } else { 103 roar_buffer_add(self->decoder.written, buf); 103 if ( roar_buffer_add(self->decoder.written, buf) == -1 ) { 104 roar_buffer_free(buf); 105 return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT; 106 } 104 107 } 105 108 -
roard/driver_dmx.c
r4918 r5242 29 29 30 30 int driver_dmx_open_vio (struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh, struct roar_stream_server * sstream) { 31 struct roar_vio_defaults def; 32 33 if ( roar_vio_dstr_init_defaults(&def, ROAR_VIO_DEF_TYPE_NONE, O_WRONLY, 0644) == -1 ) 34 return -1; 31 35 32 36 if ( fh == -1 ) { … … 37 41 device = "/dev/dmx"; 38 42 39 if ( roar_vio_open_ file(inst, device, O_WRONLY, 0644) == -1 )43 if ( roar_vio_open_dstr(inst, device, &def, 1) == -1 ) 40 44 return -1; 41 45 } else { -
roard/include/sources.h
r5194 r5242 39 39 unsigned int flags; 40 40 unsigned int subsystems; 41 int (*old_open)(c har * driver, char * device, char * container,char * options, int primary);42 int (*new_open)(int stream , c har * device, int fh,char * driver);41 int (*old_open)(const char * driver, const char * device, const char * container, const char * options, int primary); 42 int (*new_open)(int stream , const char * device, int fh, const char * driver); 43 43 }; 44 44 … … 57 57 char * options, int primary); 58 58 59 int sources_add_raw (int stream , char * device, int fh, char * driver); 60 int sources_add_wav (char * driver, char * device, char * container, char * options, int primary); 61 int sources_add_cf (char * driver, char * device, char * container, char * options, int primary); 59 int sources_add_dstr (int stream , const char * device, int fh, const char * driver); 60 int sources_add_cf (const char * driver, const char * device, const char * container, const char * options, int primary); 62 61 63 int sources_add_roar (int stream, c har * device, int fh,char * driver);64 int sources_add_radionoise (int stream, c har * device, int fh,char * driver);62 int sources_add_roar (int stream, const char * device, int fh, const char * driver); 63 int sources_add_radionoise (int stream, const char * device, int fh, const char * driver); 65 64 66 65 #ifndef ROAR_WITHOUT_DCOMP_CDRIVER 67 int sources_add_cdriver (int stream , c har * device, int fh,char * driver);66 int sources_add_cdriver (int stream , const char * device, int fh, const char * driver); 68 67 #endif 69 68 #endif -
roard/output.c
r5210 r5242 460 460 _LIBROAR_IGNORE_RET(roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_SSTREAM, s)); // ignore errors here 461 461 462 if ( blocks != -1 ) 463 roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DBLOCKS, &blocks); 464 465 if ( blocksize != -1 ) 466 roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DBLKSIZE, &blocksize); 462 if ( blocks != -1 ) { 463 if ( roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DBLOCKS, &blocks) == -1 ) { 464 ROAR_WARN("add_output(drv='%s', dev='%s', opts='%s'): can not set number of blocks.", drv, dev, opts); 465 } 466 } 467 468 if ( blocksize != -1 ) { 469 if ( roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DBLKSIZE, &blocksize) == -1 ) { 470 ROAR_WARN("add_output(drv='%s', dev='%s', opts='%s'): can not set blocksize.", drv, dev, opts); 471 } 472 } 467 473 468 474 // TODO: we shoudld *really* check for errors here... 469 475 if ( channel != -1 ) { 470 476 tu16 = channel; 471 roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DMXSCHAN, &tu16); 477 if ( roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DMXSCHAN, &tu16) == -1 ) { 478 streams_delete(stream); 479 if ( prim ) alive = 0; 480 ROAR_ERR("add_output(drv='%s', dev='%s', opts='%s'): can not set DMX channel number.", drv, dev, opts); 481 ROAR_DBG("add_output(drv='%s', dev='%s', opts='%s') = -1", drv, dev, opts); 482 return -1; 483 } 472 484 } 473 485 if ( universe != -1 ) { 474 486 tu16 = universe; 475 roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DMXUNIV, &tu16); 487 if ( roar_vio_ctl(&(ss->vio), ROAR_VIO_CTL_SET_DMXUNIV, &tu16) == -1 ) { 488 streams_delete(stream); 489 if ( prim ) alive = 0; 490 ROAR_ERR("add_output(drv='%s', dev='%s', opts='%s'): can not set DMX universe.", drv, dev, opts); 491 ROAR_DBG("add_output(drv='%s', dev='%s', opts='%s') = -1", drv, dev, opts); 492 return -1; 493 } 476 494 } 477 495 -
roard/sources.c
r5210 r5242 33 33 34 34 struct roar_source g_source[] = { 35 {"raw", "Raw source", "/some/file", SRC_FLAG_FHSEC, ROAR_SUBSYS_WAVEFORM, NULL, sources_add_raw}, 36 #ifdef ROAR_HAVE_IO_POSIX 37 {"wav", "Old RIFF/WAVE source", "/some/file.wav", SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_wav, NULL}, 38 #endif 35 {"raw", "DSTR source", "/some/file", SRC_FLAG_FHSEC, ROAR_SUBSYS_WAVEFORM, NULL, sources_add_dstr}, 39 36 {"cf", "Old CF source", "/some/file.ext", SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_cf, NULL}, 40 37 {"roar", "New simple RoarAudio source", "some.host", SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, NULL, sources_add_roar}, … … 250 247 } 251 248 252 int sources_add_ raw (int stream , char * device, int fh,char * driver) {249 int sources_add_dstr (int stream , const char * device, int fh, const char * driver) { 253 250 struct roar_stream_server * ss; 251 struct roar_vio_defaults def; 252 253 if ( roar_vio_dstr_init_defaults(&def, ROAR_VIO_DEF_TYPE_NONE, O_RDONLY, 0644) == -1 ) 254 return -1; 254 255 255 256 streams_get(stream, &ss); … … 259 260 return -1; 260 261 } else { 261 if ( roar_vio_open_ file(&(ss->vio), device, O_RDONLY, 0644) == -1 )262 if ( roar_vio_open_dstr(&(ss->vio), device, &def, 1) == -1 ) 262 263 return -1; 263 264 } … … 266 267 } 267 268 268 #ifdef ROAR_HAVE_IO_POSIX269 int sources_add_wav (char * driver, char * device, char * container, char * options, int primary) {270 int stream;271 int fh;272 char buf[44];273 struct roar_stream * s;274 275 ROAR_WARN("sources_add_raw(*): The wav(e) source is obsolete, use source 'cf' (default)!");276 277 if ( (fh = open(device, O_RDONLY, 0644)) == -1 ) {278 return -1;279 }280 281 if (read(fh, buf, 44) != 44) {282 close(fh);283 return -1;284 }285 286 if ( (stream = streams_new()) == -1 ) {287 close(fh);288 return -1;289 }290 291 streams_get_clientobj(stream, &s);292 293 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info));294 295 memcpy(&(s->info.rate ), buf+24, 4);296 memcpy(&(s->info.channels), buf+22, 2);297 memcpy(&(s->info.bits ), buf+34, 2);298 299 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) {300 streams_delete(stream);301 close(fh);302 return -1;303 }304 s->pos_rel_id = -1;305 306 streams_set_fh(stream, fh);307 308 streams_set_flag(stream, ROAR_FLAG_SOURCE);309 client_stream_add(g_source_client, stream);310 311 return 0;312 }313 #endif314 315 269 #define _ret(x) streams_delete(stream); return (x) 316 270 317 int sources_add_cf (c har * driver, char * device, char * container,char * options, int primary) {271 int sources_add_cf (const char * driver, const char * device, const char * container, const char * options, int primary) { 318 272 int stream; 319 273 int codec; … … 359 313 ROAR_DBG("sources_add_cf(*) = ?"); 360 314 361 // TODO: fin yout a better way of doing auto detetion without need for seek!315 // TODO: find out a better way of doing auto detetion without need for seek! 362 316 if ( options == NULL ) { 363 317 if ( (len = roar_vio_read(vio, buf, 64)) < 1 ) { … … 402 356 403 357 #ifndef ROAR_WITHOUT_DCOMP_CDRIVER 404 int sources_add_cdriver (int stream , c har * device, int fh,char * driver) {358 int sources_add_cdriver (int stream , const char * device, int fh, const char * driver) { 405 359 struct roar_stream_server * ss; 406 360 … … 460 414 } 461 415 462 int sources_add_radionoise (int stream, c har * device, int fh,char * driver) {416 int sources_add_radionoise (int stream, const char * device, int fh, const char * driver) { 463 417 struct roar_stream_server * ss; 464 418 struct roar_audio_info * info; … … 484 438 } 485 439 486 int sources_add_roar (int stream, c har * device, int fh,char * driver) {440 int sources_add_roar (int stream, const char * device, int fh, const char * driver) { 487 441 struct roar_stream_server * ss; 488 442 struct roar_stream * s; -
roard/streams.c
r5192 r5242 2261 2261 ROAR_DBG("streams_check(id=%i): asking for %i bytes", id, req); 2262 2262 2263 if ( roar_buffer_new (&b, req) == -1 ) {2263 if ( roar_buffer_new_data(&b, req, &buf) == -1 ) { 2264 2264 ROAR_ERR("streams_check(*): Can not alloc buffer space!"); 2265 2265 ROAR_DBG("streams_check(*) = -1"); 2266 2266 return -1; 2267 2267 } 2268 2269 roar_buffer_get_data(b, &buf);2270 2268 2271 2269 ROAR_DBG("streams_check(id=%i): buffer is up and ready ;)", id);
Note: See TracChangeset
for help on using the changeset viewer.