Changeset 1993:735317524c03 in roaraudio
- Timestamp:
- 06/15/09 16:25:50 (15 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/Makefile
r1974 r1993 16 16 CODECLIBS = $(lib_vorbisfile) $(lib_vorbisenc) $(lib_vorbis) $(lib_celt) $(lib_fishsound) $(lib_speex) $(lib_speexdsp) 17 17 CONTLIBS = $(lib_oggz) $(lib_sndfile) $(lib_ogg) 18 LIBS = -lroarlight -lroarmidi -lroardsp -lroar $(DRVLIBS) $(CODECLIBS) $(CONTLIBS) $(lib_m) $(NETLIBS) 18 PROTOLIBS = -lslp 19 LIBS = -lroarlight -lroarmidi -lroardsp -lroar $(DRVLIBS) $(CODECLIBS) $(CONTLIBS) $(PROTOLIBS) $(lib_m) $(NETLIBS) 19 20 20 21 all: ${TARGETS} -
roard/include/roard.h
r1964 r1993 50 50 #include <sys/time.h> 51 51 #include <time.h> 52 #endif 53 54 #ifdef ROAR_HAVE_LIBSLP 55 #include <slp.h> 52 56 #endif 53 57 -
roard/roard.c
r1991 r1993 105 105 " -b --bind - IP/Hostname to bind to\n" 106 106 " --sock - Filename for UNIX Domain Socket\n" 107 #ifdef ROAR_HAVE_LIBSLP 108 " --slp - Enable OpenSLP support\n" 109 #endif 107 110 " -G GROUP - Sets the group for the UNIX Domain Socket, (default: %s)\n" 108 111 " You need the permittions to change the GID\n" … … 360 363 } 361 364 365 366 // SLP: 367 void register_slp_callback(SLPHandle hslp, SLPError errcode, void * cookie) { 368 /* return the error code in the cookie */ 369 *(SLPError*)cookie = errcode; 370 } 371 372 int register_slp (int unreg, char * sockname) { 373 #ifdef ROAR_HAVE_LIBSLP 374 static int regged = 0; 375 static char * sn = NULL; 376 SLPError err; 377 SLPError callbackerr; 378 SLPHandle hslp; 379 char addr[1024]; 380 char attr[1024] = ""; 381 382 if ( sockname != NULL ) 383 sn = sockname; 384 385 snprintf(addr, sizeof(addr), "service:mixer.fellig:roar://%s", sockname); 386 387 err = SLPOpen("en", SLP_FALSE, &hslp); 388 389 if (err != SLP_OK) { 390 ROAR_ERR("Error opening slp handle: Error #%i", err); 391 return -1; 392 } 393 394 if (!unreg) { 395 /* Register a service with SLP */ 396 err = SLPReg(hslp, 397 addr, 398 SLP_LIFETIME_MAXIMUM, 399 0, 400 attr, 401 SLP_TRUE, 402 register_slp_callback, 403 &callbackerr); 404 405 /* err may contain an error code that occurred as the slp library */ 406 /* _prepared_ to make the call. */ 407 if ( (err != SLP_OK) || (callbackerr != SLP_OK) ) { 408 ROAR_ERR("Error registering service with slp: Error #%i", err); 409 return -1; 410 } 411 412 /* callbackerr may contain an error code (that was assigned through */ 413 /* the callback cookie) that occurred as slp packets were sent on */ 414 /* the wire */ 415 if (callbackerr != SLP_OK) { 416 ROAR_ERR("Error registering service with slp: Error #%i", callbackerr); 417 return -1; 418 } 419 } else if ( unreg && regged ) { 420 } 421 422 SLPClose(hslp); 423 return 0; 424 #else 425 return -1; 426 #endif 427 } 428 429 430 // MAIN: 431 362 432 #ifdef ROAR_HAVE_MAIN_ARGS 363 433 int main (int argc, char * argv[]) { … … 405 475 int sock_type = ROAR_SOCKET_TYPE_UNKNOWN; 406 476 #endif 477 #ifdef ROAR_HAVE_LIBSLP 478 int reg_slp = 0; 479 #endif 407 480 #ifdef ROAR_HAVE_CHROOT 408 481 char * chrootdir = NULL; … … 686 759 return 1; 687 760 #endif 761 #endif 762 763 } else if ( strcmp(k, "--slp") == 0 ) { 764 #ifdef ROAR_HAVE_LIBSLP 765 reg_slp = 1; 766 #else 767 ROAR_ERR("No OpenSLP support compiled in!"); 768 return 1; 688 769 #endif 689 770 … … 929 1010 #endif 930 1011 1012 // Register with OpenSLP: 1013 if ( reg_slp ) { 1014 register_slp(0, server); 1015 } 1016 931 1017 // start main loop... 932 1018 main_loop(drvid, drvinst, &sa, sysclocksync); … … 941 1027 942 1028 void cleanup_listen_socket (int terminate) { 1029 // Deregister from SLP: 1030 register_slp(1, NULL); 943 1031 944 1032 #ifdef ROAR_SUPPORT_LISTEN
Note: See TracChangeset
for help on using the changeset viewer.