diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-08-09 20:44:32 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-08-09 20:44:32 +0000 |
commit | 514d2687901bb6c21fd4e396907688472b3ff30a (patch) | |
tree | 5bc5bff4649c933cc8c05fa23bc41b657dfa386e /audio | |
parent | 57250968cbe7b7369146782713aab4138b578209 (diff) | |
download | ports-514d2687901bb6c21fd4e396907688472b3ff30a.tar.gz ports-514d2687901bb6c21fd4e396907688472b3ff30a.zip |
Notes
Diffstat (limited to 'audio')
-rw-r--r-- | audio/libcanberra/Makefile | 14 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-config.h.in | 42 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-configure | 711 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-configure.ac | 140 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-src_Makefile.am | 37 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-src_Makefile.in | 225 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-src_driver-order.c | 12 | ||||
-rw-r--r-- | audio/libcanberra/files/patch-src_oss.c | 465 | ||||
-rw-r--r-- | audio/libcanberra/pkg-plist | 3 |
9 files changed, 1644 insertions, 5 deletions
diff --git a/audio/libcanberra/Makefile b/audio/libcanberra/Makefile index c0edbb67cf38..9456c9e47101 100644 --- a/audio/libcanberra/Makefile +++ b/audio/libcanberra/Makefile @@ -7,7 +7,7 @@ PORTNAME= libcanberra PORTVERSION= 0.6 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= audio devel MASTER_SITES= http://0pointer.de/public/ @@ -23,16 +23,20 @@ USE_AUTOTOOLS= libtool:15 CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" -OPTIONS= PULSE "Enable Pulse Audio support" on +OPTIONS= PULSE "Enable Pulse Audio support" off .include <bsd.port.pre.mk> -.if defined(WITH_PULSE) +.if !defined(WITHOUT_PULSE) LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio -PLIST_SUB+= PULSE="" +PLIST_SUB+= PULSE="" OSS="@comment " +CONFIGURE_ARGS+=--disable-oss .else CONFIGURE_ARGS+=--disable-pulse -PLIST_SUB+= PULSE="@comment " +PLIST_SUB+= PULSE="@comment " OSS="" .endif +post-patch: + @${FIND} ${WRKSRC} -type f | ${XARGS} ${TOUCH} + .include <bsd.port.post.mk> diff --git a/audio/libcanberra/files/patch-config.h.in b/audio/libcanberra/files/patch-config.h.in new file mode 100644 index 000000000000..d1d6b10e84c4 --- /dev/null +++ b/audio/libcanberra/files/patch-config.h.in @@ -0,0 +1,42 @@ +--- config.h.in.orig 2008-08-09 15:51:54.000000000 -0400 ++++ config.h.in 2008-08-09 15:51:57.000000000 -0400 +@@ -30,6 +30,9 @@ + /* Define to 1 if you have the `lstat' function. */ + #undef HAVE_LSTAT + ++/* Define to 1 if you have the <machine/soundcard.h> header file. */ ++#undef HAVE_MACHINE_SOUNDCARD_H ++ + /* Define to 1 if you have the <memory.h> header file. */ + #undef HAVE_MEMORY_H + +@@ -39,6 +42,9 @@ + /* Have NULL output? */ + #undef HAVE_NULL + ++/* Have OSS? */ ++#undef HAVE_OSS ++ + /* Define to 1 if you have the `posix_memalign' function. */ + #undef HAVE_POSIX_MEMALIGN + +@@ -57,6 +63,9 @@ + /* Define to 1 if you have the `sleep' function. */ + #undef HAVE_SLEEP + ++/* Define to 1 if you have the <soundcard.h> header file. */ ++#undef HAVE_SOUNDCARD_H ++ + /* Define to 1 if the system has the type `ssize_t'. */ + #undef HAVE_SSIZE_T + +@@ -93,6 +102,9 @@ + /* Define to 1 if you have the <sys/socket.h> header file. */ + #undef HAVE_SYS_SOCKET_H + ++/* Define to 1 if you have the <sys/soundcard.h> header file. */ ++#undef HAVE_SYS_SOUNDCARD_H ++ + /* Define to 1 if you have the <sys/stat.h> header file. */ + #undef HAVE_SYS_STAT_H + diff --git a/audio/libcanberra/files/patch-configure b/audio/libcanberra/files/patch-configure new file mode 100644 index 000000000000..130b110aced1 --- /dev/null +++ b/audio/libcanberra/files/patch-configure @@ -0,0 +1,711 @@ +--- configure.orig 2008-08-09 15:27:31.000000000 -0400 ++++ configure 2008-08-09 15:28:04.000000000 -0400 +@@ -935,15 +935,19 @@ VORBIS_LIBS + HAVE_DSO + HAVE_PULSE + HAVE_ALSA ++HAVE_OSS + HAVE_NULL + BUILTIN_DSO + BUILTIN_PULSE + BUILTIN_ALSA ++BUILTIN_OSS + BUILTIN_NULL + HAVE_PULSE_TRUE + HAVE_PULSE_FALSE + HAVE_ALSA_TRUE + HAVE_ALSA_FALSE ++HAVE_OSS_TRUE ++HAVE_OSS_FALSE + HAVE_NULL_TRUE + HAVE_NULL_FALSE + BUILTIN_DSO_TRUE +@@ -952,6 +956,8 @@ BUILTIN_PULSE_TRUE + BUILTIN_PULSE_FALSE + BUILTIN_ALSA_TRUE + BUILTIN_ALSA_FALSE ++BUILTIN_OSS_TRUE ++BUILTIN_OSS_FALSE + BUILTIN_NULL_TRUE + BUILTIN_NULL_FALSE + HTML_DIR +@@ -978,6 +984,7 @@ enable_largefile + enable_rpath + with_libiconv_prefix + enable_alsa ++enable_oss + enable_pulse + enable_null + enable_gtk +@@ -1650,6 +1657,7 @@ Optional Features: + --disable-largefile omit support for large files + --disable-rpath do not hardcode runtime library paths + --disable-alsa Disable optional ALSA support ++ --disable-oss Disable optional OSS support + --disable-pulse Disable optional PulseAudio support + --disable-null Disable optional null output + --disable-gtk Disable optional GTK+ support +@@ -6080,7 +6088,7 @@ ia64-*-hpux*) + ;; + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 6083 "configure"' > conftest.$ac_ext ++ echo '#line 6091 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -8509,11 +8517,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8512: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8520: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8516: \$? = $ac_status" >&5 ++ echo "$as_me:8524: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -8799,11 +8807,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8802: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8810: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:8806: \$? = $ac_status" >&5 ++ echo "$as_me:8814: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -8903,11 +8911,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:8906: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:8914: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:8910: \$? = $ac_status" >&5 ++ echo "$as_me:8918: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -11305,7 +11313,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<EOF +-#line 11308 "configure" ++#line 11316 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11405,7 +11413,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<EOF +-#line 11408 "configure" ++#line 11416 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -13814,11 +13822,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:13817: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:13825: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:13821: \$? = $ac_status" >&5 ++ echo "$as_me:13829: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -13918,11 +13926,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:13921: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:13929: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:13925: \$? = $ac_status" >&5 ++ echo "$as_me:13933: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -15503,11 +15511,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15506: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15514: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:15510: \$? = $ac_status" >&5 ++ echo "$as_me:15518: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -15607,11 +15615,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:15610: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:15618: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:15614: \$? = $ac_status" >&5 ++ echo "$as_me:15622: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -17824,11 +17832,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:17827: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:17835: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:17831: \$? = $ac_status" >&5 ++ echo "$as_me:17839: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -18114,11 +18122,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:18117: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:18125: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 +- echo "$as_me:18121: \$? = $ac_status" >&5 ++ echo "$as_me:18129: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. +@@ -18218,11 +18226,11 @@ else + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` +- (eval echo "\"\$as_me:18221: $lt_compile\"" >&5) ++ (eval echo "\"\$as_me:18229: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 +- echo "$as_me:18225: \$? = $ac_status" >&5 ++ echo "$as_me:18233: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized +@@ -21692,6 +21700,46 @@ if test "${ac_cv_c_bigendian+set}" = set + $as_echo_n "(cached) " >&6 + else + ac_cv_c_bigendian=unknown ++ # See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__) ++ neither is defined; ++ #endif ++ typedef int dummy; ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_c_bigendian=universal ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat >conftest.$ac_ext <<_ACEOF +@@ -23490,7 +23538,7 @@ fi + + # We must check for the threads library under a number of different + # names; the ordering is very important because some systems +-# (e.g. DEC) have both -pthread and -pthreads, where one of the ++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the + # libraries is broken (non-POSIX). + + # Create a list of thread flags to try. Items starting with a "-" are +@@ -23503,7 +23551,7 @@ acx_pthread_flags="pthreads none -Kthrea + # The ordering *is* (sometimes) important. Some notes on the + # individual items follow: + +-# pthreads: AIX (must check this before -pthread) ++# pthreads: AIX (must check this before -lpthread) + # none: in case threads are in libc; should be tried before -Kthread and + # other compiler flags to prevent continual compiler warnings + # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +@@ -23526,10 +23574,10 @@ case "${host_cpu}-${host_os}" in + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ +- # -pthread.) (The stubs are missing pthread_cleanup_push, or rather ++ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, +- # we'll just look for -pthreads and -pthread first: ++ # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" + ;; +@@ -23609,9 +23657,9 @@ $as_echo_n "checking for the pthreads li + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) +- # We check for pthread_join because it is in -pthread on IRIX ++ # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init +- # due to DEC craziness with -pthreads. We check for ++ # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. +@@ -23916,12 +23964,12 @@ $as_echo "no" >&6; } + + # + # Linux gcc on some architectures such as mips/mipsel forgets +- # about -pthread ++ # about -lpthread + # + if test x"$ok" = xno; then +- { $as_echo "$as_me:$LINENO: checking whether -pthread fixes that" >&5 +-$as_echo_n "checking whether -pthread fixes that... " >&6; } +- LIBS="-pthread $PTHREAD_LIBS $save_LIBS" ++ { $as_echo "$as_me:$LINENO: checking whether -lpthread fixes that" >&5 ++$as_echo_n "checking whether -lpthread fixes that... " >&6; } ++ LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF +@@ -23975,7 +24023,7 @@ rm -f core conftest.err conftest.$ac_obj + if test "x$ok" = xyes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "yes" >&6; } +- PTHREAD_LIBS="-pthread $PTHREAD_LIBS" ++ PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" + else + { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } +@@ -25735,6 +25783,197 @@ fi + + + ++### OSS support (optional) ### ++# Check whether --enable-oss was given. ++if test "${enable_oss+set}" = set; then ++ enableval=$enable_oss; ++ case "${enableval}" in ++ yes) alsa=yes ;; ++ no) alsa=no ;; ++ *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-oss" >&5 ++$as_echo "$as_me: error: bad value ${enableval} for --disable-oss" >&2;} ++ { (exit 1); exit 1; }; } ;; ++ esac ++ ++else ++ oss=auto ++fi ++ ++ ++if test "x${oss}" != xno ; then ++ ++ ++ ++for ac_header in soundcard.h sys/soundcard.h machine/soundcard.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++else ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++$as_echo_n "checking $ac_header usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_header_compiler=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_compiler=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++$as_echo_n "checking $ac_header presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ ac_header_preproc=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## --------------------------------------------------- ## ++## Report this to mzyvopnaoreen (at) 0pointer (dot) de ## ++## --------------------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ ++fi ++if test `eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ ++ test "${ac_cv_header_soundcard_h}" = "yes" || \ ++ test "${ac_cv_header_machine_soundcard_h}" = "yes"; then ++ HAVE_OSS=1 ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_OSS 1 ++_ACEOF ++ ++ else ++ HAVE_OSS=0 ++ if test "x$oss" = xyes ; then ++ { { $as_echo "$as_me:$LINENO: error: *** OSS not found ***" >&5 ++$as_echo "$as_me: error: *** OSS not found ***" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ fi ++else ++ HAVE_OSS=0 ++fi ++ + ### PulseAudio (optional) #### + + # Check whether --enable-pulse was given. +@@ -26143,6 +26382,7 @@ HAVE_DSO=0 + BUILTIN_DSO=0 + BUILTIN_PULSE=0 + BUILTIN_ALSA=0 ++BUILTIN_OSS=0 + BUILTIN_NULL=0 + + case "x$with_builtin" in +@@ -26155,6 +26395,7 @@ $as_echo "$as_me: error: *** PulseAudio + + BUILTIN_PULSE=1 + HAVE_ALSA=0 ++ HAVE_OSS=0 + HAVE_NULL=0 + ;; + +@@ -26166,10 +26407,24 @@ $as_echo "$as_me: error: *** ALSA select + fi + + BUILTIN_ALSA=1 ++ HAVE_OSS=0 + HAVE_PULSE=0 + HAVE_NULL=0 + ;; + ++ xoss) ++ if test "x$HAV_OSS" != x1 ; then ++ { { $as_echo "$as_me:$LINENO: error: *** OSS selected for builtin driver, but not enabled. ***" >&5 ++$as_echo "$as_me: error: *** OSS selected for builtin driver, but not enabled. ***" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ ++ BUILTIN_OSS=1 ++ HAVE_ALSA=0 ++ HAVE_PULSE=0 ++ HAVE_NULL=0 ++ ;; ++ + xnull) + if test "x$HAVE_NULL" != x1 ; then + { { $as_echo "$as_me:$LINENO: error: *** Null output selected for builtin driver, but not enabled. ***" >&5 +@@ -26180,6 +26435,7 @@ $as_echo "$as_me: error: *** Null output + BUILTIN_NULL=1 + HAVE_PULSE=0 + HAVE_ALSA=0 ++ HAVE_OSS=0 + ;; + + xdso) +@@ -26198,7 +26454,7 @@ $as_echo "$as_me: error: *** Unknown dri + { (exit 1); exit 1; }; } + esac + +-if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_NULL" != x1 ; then ++if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_OSS" != x1 -a "x$HAVE_NULL" != x1 ; then + { { $as_echo "$as_me:$LINENO: error: *** No backend enabled. ***" >&5 + $as_echo "$as_me: error: *** No backend enabled. ***" >&2;} + { (exit 1); exit 1; }; } +@@ -26212,6 +26468,8 @@ fi + + + ++ ++ + if test "x$HAVE_PULSE" = x1; then + HAVE_PULSE_TRUE= + HAVE_PULSE_FALSE='#' +@@ -26228,6 +26486,14 @@ else + HAVE_ALSA_FALSE= + fi + ++ if test "x$HAVE_OSS" = x1; then ++ HAVE_OSS_TRUE= ++ HAVE_OSS_FALSE='#' ++else ++ HAVE_OSS_TRUE='#' ++ HAVE_OSS_FALSE= ++fi ++ + if test "x$HAVE_NULL" = x1; then + HAVE_NULL_TRUE= + HAVE_NULL_FALSE='#' +@@ -26260,6 +26526,14 @@ else + BUILTIN_ALSA_FALSE= + fi + ++ if test "x$BUILTIN_OSS" = x1; then ++ BUILTIN_OSS_TRUE= ++ BUILTIN_OSS_FALSE='#' ++else ++ BUILTIN_OSS_TRUE='#' ++ BUILTIN_OSS_FALSE= ++fi ++ + if test "x$BUILTIN_NULL" = x1; then + BUILTIN_NULL_TRUE= + BUILTIN_NULL_FALSE='#' +@@ -26539,6 +26813,13 @@ $as_echo "$as_me: error: conditional \"H + Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } + fi ++if test -z "${HAVE_OSS_TRUE}" && test -z "${HAVE_OSS_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_OSS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"HAVE_OSS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi + if test -z "${HAVE_NULL_TRUE}" && test -z "${HAVE_NULL_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NULL\" was never defined. + Usually this means the macro was only invoked conditionally." >&5 +@@ -26567,6 +26848,13 @@ $as_echo "$as_me: error: conditional \"B + Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } + fi ++if test -z "${BUILTIN_OSS_TRUE}" && test -z "${BUILTIN_OSS_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"BUILTIN_OSS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"BUILTIN_OSS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi + if test -z "${BUILTIN_NULL_TRUE}" && test -z "${BUILTIN_NULL_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"BUILTIN_NULL\" was never defined. + Usually this means the macro was only invoked conditionally." >&5 +@@ -26926,9 +27214,9 @@ _ACEOF + + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + # Files that config.status was made for. +-config_files="`echo $ac_config_files`" +-config_headers="`echo $ac_config_headers`" +-config_commands="`echo $ac_config_commands`" ++config_files="$ac_config_files" ++config_headers="$ac_config_headers" ++config_commands="$ac_config_commands" + + _ACEOF + +@@ -27379,9 +27667,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + } + split(mac1, mac2, "(") #) + macro = mac2[1] +- prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". ++ prefix = substr(line, 1, index(line, defundef) - 1) + print prefix "define", macro P[macro] D[macro] + next + } else { +@@ -27389,7 +27677,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { +- print "/*", prefix defundef, macro, "*/" ++ print "/*", line, "*/" + next + } + } +@@ -28123,6 +28411,15 @@ if test "x$BUILTIN_ALSA" = "x1" ; then + ENABLE_BUILTIN_ALSA=yes + fi + ++ENABLE_OSS=no ++if test "x$HAVE_OSS" = "x1" ; then ++ ENABLE_OSS=yes ++fi ++ENABLE_BUILTIN_OSS=no ++if test "x$BUILTIN_OSS" = "x1" ; then ++ ENABLE_BUILTIN_OSS=yes ++fi ++ + ENABLE_NULL=no + if test "x$HAVE_NULL" = "x1" ; then + ENABLE_NULL=yes +@@ -28152,6 +28449,8 @@ echo " + Builtin PulseAudio: ${ENABLE_BUILTIN_PULSE} + Enable ALSA: ${ENABLE_ALSA} + Builtin ALSA: ${ENABLE_BUILTIN_ALSA} ++ Enable OSS: ${ENABLE_OSS} ++ Builtin OSS: ${ENABLE_BUILTIN_OSS} + Enable Null Output: ${ENABLE_NULL} + Builtin Null Output: ${ENABLE_BUILTIN_NULL} + Enable GTK+: ${ENABLE_GTK} diff --git a/audio/libcanberra/files/patch-configure.ac b/audio/libcanberra/files/patch-configure.ac new file mode 100644 index 000000000000..324d80d3b668 --- /dev/null +++ b/audio/libcanberra/files/patch-configure.ac @@ -0,0 +1,140 @@ +--- configure.ac.orig 2008-08-09 15:27:28.000000000 -0400 ++++ configure.ac 2008-08-09 15:27:59.000000000 -0400 +@@ -219,6 +219,35 @@ fi + AC_SUBST(ALSA_CFLAGS) + AC_SUBST(ALSA_LIBS) + ++### OSS support (optional) ### ++AC_ARG_ENABLE([oss], ++ AC_HELP_STRING([--disable-oss], [Disable optional OSS support]), ++ [ ++ case "${enableval}" in ++ yes) alsa=yes ;; ++ no) alsa=no ;; ++ *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;; ++ esac ++ ], ++ [oss=auto]) ++ ++if test "x${oss}" != xno ; then ++ AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h) ++ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \ ++ test "${ac_cv_header_soundcard_h}" = "yes" || \ ++ test "${ac_cv_header_machine_soundcard_h}" = "yes"; then ++ HAVE_OSS=1 ++ AC_DEFINE([HAVE_OSS], 1, [Have OSS?]) ++ else ++ HAVE_OSS=0 ++ if test "x$oss" = xyes ; then ++ AC_MSG_ERROR([*** OSS not found ***]) ++ fi ++ fi ++else ++ HAVE_OSS=0 ++fi ++ + ### PulseAudio (optional) #### + + AC_ARG_ENABLE([pulse], +@@ -333,6 +362,7 @@ HAVE_DSO=0 + BUILTIN_DSO=0 + BUILTIN_PULSE=0 + BUILTIN_ALSA=0 ++BUILTIN_OSS=0 + BUILTIN_NULL=0 + + case "x$with_builtin" in +@@ -343,6 +373,7 @@ case "x$with_builtin" in + + BUILTIN_PULSE=1 + HAVE_ALSA=0 ++ HAVE_OSS=0 + HAVE_NULL=0 + ;; + +@@ -352,10 +383,22 @@ case "x$with_builtin" in + fi + + BUILTIN_ALSA=1 ++ HAVE_OSS=0 + HAVE_PULSE=0 + HAVE_NULL=0 + ;; + ++ xoss) ++ if test "x$HAV_OSS" != x1 ; then ++ AC_MSG_ERROR([*** OSS selected for builtin driver, but not enabled. ***]) ++ fi ++ ++ BUILTIN_OSS=1 ++ HAVE_ALSA=0 ++ HAVE_PULSE=0 ++ HAVE_NULL=0 ++ ;; ++ + xnull) + if test "x$HAVE_NULL" != x1 ; then + AC_MSG_ERROR([*** Null output selected for builtin driver, but not enabled. ***]) +@@ -364,6 +407,7 @@ case "x$with_builtin" in + BUILTIN_NULL=1 + HAVE_PULSE=0 + HAVE_ALSA=0 ++ HAVE_OSS=0 + ;; + + xdso) +@@ -376,24 +420,28 @@ case "x$with_builtin" in + AC_MSG_ERROR([*** Unknown driver $with_builtin selected for builtin ***]) + esac + +-if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_NULL" != x1 ; then ++if test "x$HAVE_PULSE" != x1 -a "x$HAVE_ALSA" != x1 -a "x$HAVE_OSS" != x1 -a "x$HAVE_NULL" != x1 ; then + AC_MSG_ERROR([*** No backend enabled. ***]) + fi + + AC_SUBST(HAVE_DSO) + AC_SUBST(HAVE_PULSE) + AC_SUBST(HAVE_ALSA) ++AC_SUBST(HAVE_OSS) + AC_SUBST(HAVE_NULL) + AC_SUBST(BUILTIN_DSO) + AC_SUBST(BUILTIN_PULSE) + AC_SUBST(BUILTIN_ALSA) ++AC_SUBST(BUILTIN_OSS) + AC_SUBST(BUILTIN_NULL) + AM_CONDITIONAL([HAVE_PULSE], [test "x$HAVE_PULSE" = x1]) + AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1]) ++AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1]) + AM_CONDITIONAL([HAVE_NULL], [test "x$HAVE_NULL" = x1]) + AM_CONDITIONAL([BUILTIN_DSO], [test "x$BUILTIN_DSO" = x1]) + AM_CONDITIONAL([BUILTIN_PULSE], [test "x$BUILTIN_PULSE" = x1]) + AM_CONDITIONAL([BUILTIN_ALSA], [test "x$BUILTIN_ALSA" = x1]) ++AM_CONDITIONAL([BUILTIN_OSS], [test "x$BUILTIN_OSS" = x1]) + AM_CONDITIONAL([BUILTIN_NULL], [test "x$BUILTIN_NULL" = x1]) + + GTK_DOC_CHECK(1.9) +@@ -435,6 +483,15 @@ if test "x$BUILTIN_ALSA" = "x1" ; then + ENABLE_BUILTIN_ALSA=yes + fi + ++ENABLE_OSS=no ++if test "x$HAVE_OSS" = "x1" ; then ++ ENABLE_OSS=yes ++fi ++ENABLE_BUILTIN_OSS=no ++if test "x$BUILTIN_OSS" = "x1" ; then ++ ENABLE_BUILTIN_OSS=yes ++fi ++ + ENABLE_NULL=no + if test "x$HAVE_NULL" = "x1" ; then + ENABLE_NULL=yes +@@ -464,6 +521,8 @@ echo " + Builtin PulseAudio: ${ENABLE_BUILTIN_PULSE} + Enable ALSA: ${ENABLE_ALSA} + Builtin ALSA: ${ENABLE_BUILTIN_ALSA} ++ Enable OSS: ${ENABLE_OSS} ++ Builtin OSS: ${ENABLE_BUILTIN_OSS} + Enable Null Output: ${ENABLE_NULL} + Builtin Null Output: ${ENABLE_BUILTIN_NULL} + Enable GTK+: ${ENABLE_GTK} diff --git a/audio/libcanberra/files/patch-src_Makefile.am b/audio/libcanberra/files/patch-src_Makefile.am new file mode 100644 index 000000000000..444a825f4794 --- /dev/null +++ b/audio/libcanberra/files/patch-src_Makefile.am @@ -0,0 +1,37 @@ +--- src/Makefile.am.orig 2008-08-09 15:27:42.000000000 -0400 ++++ src/Makefile.am 2008-08-09 15:27:55.000000000 -0400 +@@ -164,6 +164,34 @@ libcanberra_alsa_la_LDFLAGS = \ + endif + endif + ++if HAVE_OSS ++if BUILTIN_OSS ++ ++libcanberra_la_SOURCES += \ ++ oss.c ++ ++else ++ ++plugin_LTLIBRARIES += \ ++ libcanberra-oss.la ++ ++libcanberra_oss_la_SOURCES = \ ++ oss.c ++libcanberra_oss_la_CFLAGS = \ ++ -Ddriver_open=oss_driver_open \ ++ -Ddriver_destroy=oss_driver_destroy \ ++ -Ddriver_change_device=oss_driver_change_device \ ++ -Ddriver_change_props=oss_driver_change_props \ ++ -Ddriver_play=oss_driver_play \ ++ -Ddriver_cancel=oss_driver_cancel \ ++ -Ddriver_cache=oss_driver_cache ++libcanberra_oss_la_LIBADD = \ ++ libcanberra.la ++libcanberra_oss_la_LDFLAGS = \ ++ -avoid-version -module -export-dynamic ++endif ++endif ++ + if HAVE_NULL + if BUILTIN_NULL + diff --git a/audio/libcanberra/files/patch-src_Makefile.in b/audio/libcanberra/files/patch-src_Makefile.in new file mode 100644 index 000000000000..8223a42a4929 --- /dev/null +++ b/audio/libcanberra/files/patch-src_Makefile.in @@ -0,0 +1,225 @@ +--- src/Makefile.in.orig 2008-08-09 15:27:46.000000000 -0400 ++++ src/Makefile.in 2008-08-09 15:28:08.000000000 -0400 +@@ -92,20 +92,26 @@ noinst_PROGRAMS = test-canberra$(EXEEXT) + @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@am__append_12 = \ + @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@ libcanberra-alsa.la + +-@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__append_13 = \ ++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@am__append_13 = \ ++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@ oss.c ++ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am__append_14 = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra-oss.la ++ ++@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__append_15 = \ + @BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@ null.c + +-@BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am__append_14 = \ ++@BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am__append_16 = \ + @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ libcanberra-null.la + +-@HAVE_GTK_TRUE@am__append_15 = \ ++@HAVE_GTK_TRUE@am__append_17 = \ + @HAVE_GTK_TRUE@ libcanberra-gtk.la + +-@HAVE_GTK_TRUE@am__append_16 = \ ++@HAVE_GTK_TRUE@am__append_18 = \ + @HAVE_GTK_TRUE@ canberra-gtk.h + + @HAVE_GTK_TRUE@bin_PROGRAMS = canberra-gtk-play$(EXEEXT) +-@HAVE_GTK_TRUE@am__append_17 = \ ++@HAVE_GTK_TRUE@am__append_19 = \ + @HAVE_GTK_TRUE@ libcanberra-login-sound.desktop.in \ + @HAVE_GTK_TRUE@ libcanberra-logout-sound.sh.in + +@@ -193,6 +199,18 @@ libcanberra_null_la_LINK = $(LIBTOOL) -- + $(libcanberra_null_la_LDFLAGS) $(LDFLAGS) -o $@ + @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@am_libcanberra_null_la_rpath = \ + @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ -rpath $(plugindir) ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_DEPENDENCIES = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra.la ++am__libcanberra_oss_la_SOURCES_DIST = oss.c ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am_libcanberra_oss_la_OBJECTS = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra_oss_la-oss.lo ++libcanberra_oss_la_OBJECTS = $(am_libcanberra_oss_la_OBJECTS) ++libcanberra_oss_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ ++ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ ++ $(libcanberra_oss_la_CFLAGS) $(CFLAGS) \ ++ $(libcanberra_oss_la_LDFLAGS) $(LDFLAGS) -o $@ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@am_libcanberra_oss_la_rpath = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -rpath $(plugindir) + @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@libcanberra_pulse_la_DEPENDENCIES = \ + @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@ $(am__DEPENDENCIES_1) \ + @BUILTIN_PULSE_FALSE@@HAVE_PULSE_TRUE@ libcanberra.la +@@ -218,14 +236,17 @@ am__libcanberra_la_SOURCES_DIST = canber + read-sound-file.c read-sound-file.h read-vorbis.c \ + read-vorbis.h read-wav.c read-wav.h sound-theme-spec.c \ + sound-theme-spec.h llist.h macro.h macro.c malloc.c malloc.h \ +- dso.c driver-order.c driver-order.h pulse.c alsa.c null.c ++ dso.c driver-order.c driver-order.h pulse.c alsa.c oss.c \ ++ null.c + @BUILTIN_DSO_TRUE@am__objects_1 = libcanberra_la-dso.lo \ + @BUILTIN_DSO_TRUE@ libcanberra_la-driver-order.lo + @BUILTIN_PULSE_TRUE@@HAVE_PULSE_TRUE@am__objects_2 = \ + @BUILTIN_PULSE_TRUE@@HAVE_PULSE_TRUE@ libcanberra_la-pulse.lo + @BUILTIN_ALSA_TRUE@@HAVE_ALSA_TRUE@am__objects_3 = \ + @BUILTIN_ALSA_TRUE@@HAVE_ALSA_TRUE@ libcanberra_la-alsa.lo +-@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__objects_4 = \ ++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@am__objects_4 = \ ++@BUILTIN_OSS_TRUE@@HAVE_OSS_TRUE@ libcanberra_la-oss.lo ++@BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@am__objects_5 = \ + @BUILTIN_NULL_TRUE@@HAVE_NULL_TRUE@ libcanberra_la-null.lo + am_libcanberra_la_OBJECTS = libcanberra_la-common.lo \ + libcanberra_la-mutex-posix.lo libcanberra_la-proplist.lo \ +@@ -233,7 +254,7 @@ am_libcanberra_la_OBJECTS = libcanberra_ + libcanberra_la-read-vorbis.lo libcanberra_la-read-wav.lo \ + libcanberra_la-sound-theme-spec.lo libcanberra_la-macro.lo \ + libcanberra_la-malloc.lo $(am__objects_1) $(am__objects_2) \ +- $(am__objects_3) $(am__objects_4) ++ $(am__objects_3) $(am__objects_4) $(am__objects_5) + libcanberra_la_OBJECTS = $(am_libcanberra_la_OBJECTS) + libcanberra_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcanberra_la_CFLAGS) \ +@@ -271,14 +292,15 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLF + SOURCES = $(libcanberra_alsa_la_SOURCES) \ + $(libcanberra_gtk_module_la_SOURCES) \ + $(libcanberra_gtk_la_SOURCES) $(libcanberra_multi_la_SOURCES) \ +- $(libcanberra_null_la_SOURCES) $(libcanberra_pulse_la_SOURCES) \ +- $(libcanberra_la_SOURCES) $(canberra_gtk_play_SOURCES) \ +- $(test_canberra_SOURCES) ++ $(libcanberra_null_la_SOURCES) $(libcanberra_oss_la_SOURCES) \ ++ $(libcanberra_pulse_la_SOURCES) $(libcanberra_la_SOURCES) \ ++ $(canberra_gtk_play_SOURCES) $(test_canberra_SOURCES) + DIST_SOURCES = $(am__libcanberra_alsa_la_SOURCES_DIST) \ + $(am__libcanberra_gtk_module_la_SOURCES_DIST) \ + $(am__libcanberra_gtk_la_SOURCES_DIST) \ + $(am__libcanberra_multi_la_SOURCES_DIST) \ + $(am__libcanberra_null_la_SOURCES_DIST) \ ++ $(am__libcanberra_oss_la_SOURCES_DIST) \ + $(am__libcanberra_pulse_la_SOURCES_DIST) \ + $(am__libcanberra_la_SOURCES_DIST) \ + $(am__canberra_gtk_play_SOURCES_DIST) $(test_canberra_SOURCES) +@@ -303,6 +325,7 @@ AWK = @AWK@ + BUILTIN_ALSA = @BUILTIN_ALSA@ + BUILTIN_DSO = @BUILTIN_DSO@ + BUILTIN_NULL = @BUILTIN_NULL@ ++BUILTIN_OSS = @BUILTIN_OSS@ + BUILTIN_PULSE = @BUILTIN_PULSE@ + CC = @CC@ + CCDEPMODE = @CCDEPMODE@ +@@ -335,6 +358,7 @@ HAVE_ALSA = @HAVE_ALSA@ + HAVE_DSO = @HAVE_DSO@ + HAVE_GTK = @HAVE_GTK@ + HAVE_NULL = @HAVE_NULL@ ++HAVE_OSS = @HAVE_OSS@ + HAVE_PULSE = @HAVE_PULSE@ + HTML_DIR = @HTML_DIR@ + INSTALL = @INSTALL@ +@@ -443,15 +467,16 @@ gnomeautostartdir = $(datadir)/gnome/aut + AM_CFLAGS = $(PTHREAD_CFLAGS) -DCA_PLUGIN_PATH=\"$(plugindir)\" + AM_CXXFLAGS = $(PTHREAD_CFLAGS) + AM_LDADD = $(PTHREAD_LIBS) +-EXTRA_DIST = map-file $(am__append_17) +-lib_LTLIBRARIES = libcanberra.la $(am__append_15) +-include_HEADERS = canberra.h $(am__append_16) ++EXTRA_DIST = map-file $(am__append_19) ++lib_LTLIBRARIES = libcanberra.la $(am__append_17) ++include_HEADERS = canberra.h $(am__append_18) + libcanberra_la_SOURCES = canberra.h common.c common.h mutex-posix.c \ + mutex.h proplist.c proplist.h driver.h read-sound-file.c \ + read-sound-file.h read-vorbis.c read-vorbis.h read-wav.c \ + read-wav.h sound-theme-spec.c sound-theme-spec.h llist.h \ + macro.h macro.c malloc.c malloc.h $(am__append_1) \ +- $(am__append_5) $(am__append_9) $(am__append_13) ++ $(am__append_5) $(am__append_9) $(am__append_13) \ ++ $(am__append_15) + libcanberra_la_CFLAGS = $(AM_CFLAGS) $(VORBIS_CFLAGS) $(am__append_2) \ + $(am__append_6) $(am__append_10) + libcanberra_la_LIBADD = $(VORBIS_LIBS) $(am__append_3) $(am__append_7) \ +@@ -462,7 +487,7 @@ libcanberra_la_LDFLAGS = \ + -Wl,-version-script=$(srcdir)/map-file + + plugin_LTLIBRARIES = $(am__append_4) $(am__append_8) $(am__append_12) \ +- $(am__append_14) ++ $(am__append_14) $(am__append_16) + @BUILTIN_DSO_TRUE@libcanberra_multi_la_SOURCES = \ + @BUILTIN_DSO_TRUE@ multi.c + +@@ -521,6 +546,24 @@ plugin_LTLIBRARIES = $(am__append_4) $(a + @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@libcanberra_alsa_la_LDFLAGS = \ + @BUILTIN_ALSA_FALSE@@HAVE_ALSA_TRUE@ -avoid-version -module -export-dynamic + ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_SOURCES = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ oss.c ++ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_CFLAGS = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_open=oss_driver_open \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_destroy=oss_driver_destroy \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_change_device=oss_driver_change_device \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_change_props=oss_driver_change_props \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_play=oss_driver_play \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_cancel=oss_driver_cancel \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -Ddriver_cache=oss_driver_cache ++ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_LIBADD = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ libcanberra.la ++ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@libcanberra_oss_la_LDFLAGS = \ ++@BUILTIN_OSS_FALSE@@HAVE_OSS_TRUE@ -avoid-version -module -export-dynamic ++ + @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@libcanberra_null_la_SOURCES = \ + @BUILTIN_NULL_FALSE@@HAVE_NULL_TRUE@ null.c + +@@ -722,6 +765,8 @@ libcanberra-multi.la: $(libcanberra_mult + $(libcanberra_multi_la_LINK) $(am_libcanberra_multi_la_rpath) $(libcanberra_multi_la_OBJECTS) $(libcanberra_multi_la_LIBADD) $(LIBS) + libcanberra-null.la: $(libcanberra_null_la_OBJECTS) $(libcanberra_null_la_DEPENDENCIES) + $(libcanberra_null_la_LINK) $(am_libcanberra_null_la_rpath) $(libcanberra_null_la_OBJECTS) $(libcanberra_null_la_LIBADD) $(LIBS) ++libcanberra-oss.la: $(libcanberra_oss_la_OBJECTS) $(libcanberra_oss_la_DEPENDENCIES) ++ $(libcanberra_oss_la_LINK) $(am_libcanberra_oss_la_rpath) $(libcanberra_oss_la_OBJECTS) $(libcanberra_oss_la_LIBADD) $(LIBS) + libcanberra-pulse.la: $(libcanberra_pulse_la_OBJECTS) $(libcanberra_pulse_la_DEPENDENCIES) + $(libcanberra_pulse_la_LINK) $(am_libcanberra_pulse_la_rpath) $(libcanberra_pulse_la_OBJECTS) $(libcanberra_pulse_la_LIBADD) $(LIBS) + libcanberra.la: $(libcanberra_la_OBJECTS) $(libcanberra_la_DEPENDENCIES) +@@ -805,6 +850,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-malloc.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-mutex-posix.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-null.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-oss.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-proplist.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-pulse.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-read-sound-file.Plo@am__quote@ +@@ -813,6 +859,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_la-sound-theme-spec.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_multi_la-multi.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_null_la-null.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_oss_la-oss.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcanberra_pulse_la-pulse.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-canberra.Po@am__quote@ + +@@ -872,6 +919,13 @@ libcanberra_null_la-null.lo: null.c + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_null_la_CFLAGS) $(CFLAGS) -c -o libcanberra_null_la-null.lo `test -f 'null.c' || echo '$(srcdir)/'`null.c + ++libcanberra_oss_la-oss.lo: oss.c ++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_oss_la_CFLAGS) $(CFLAGS) -MT libcanberra_oss_la-oss.lo -MD -MP -MF $(DEPDIR)/libcanberra_oss_la-oss.Tpo -c -o libcanberra_oss_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_oss_la-oss.Tpo $(DEPDIR)/libcanberra_oss_la-oss.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss.c' object='libcanberra_oss_la-oss.lo' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_oss_la_CFLAGS) $(CFLAGS) -c -o libcanberra_oss_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c ++ + libcanberra_pulse_la-pulse.lo: pulse.c + @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_pulse_la_CFLAGS) $(CFLAGS) -MT libcanberra_pulse_la-pulse.lo -MD -MP -MF $(DEPDIR)/libcanberra_pulse_la-pulse.Tpo -c -o libcanberra_pulse_la-pulse.lo `test -f 'pulse.c' || echo '$(srcdir)/'`pulse.c + @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_pulse_la-pulse.Tpo $(DEPDIR)/libcanberra_pulse_la-pulse.Plo +@@ -970,6 +1024,13 @@ libcanberra_la-alsa.lo: alsa.c + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -c -o libcanberra_la-alsa.lo `test -f 'alsa.c' || echo '$(srcdir)/'`alsa.c + ++libcanberra_la-oss.lo: oss.c ++@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -MT libcanberra_la-oss.lo -MD -MP -MF $(DEPDIR)/libcanberra_la-oss.Tpo -c -o libcanberra_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_la-oss.Tpo $(DEPDIR)/libcanberra_la-oss.Plo ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='oss.c' object='libcanberra_la-oss.lo' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -c -o libcanberra_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c ++ + libcanberra_la-null.lo: null.c + @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcanberra_la_CFLAGS) $(CFLAGS) -MT libcanberra_la-null.lo -MD -MP -MF $(DEPDIR)/libcanberra_la-null.Tpo -c -o libcanberra_la-null.lo `test -f 'null.c' || echo '$(srcdir)/'`null.c + @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libcanberra_la-null.Tpo $(DEPDIR)/libcanberra_la-null.Plo diff --git a/audio/libcanberra/files/patch-src_driver-order.c b/audio/libcanberra/files/patch-src_driver-order.c new file mode 100644 index 000000000000..35a0f474a886 --- /dev/null +++ b/audio/libcanberra/files/patch-src_driver-order.c @@ -0,0 +1,12 @@ +--- src/driver-order.c.orig 2008-08-09 16:04:21.964956000 -0400 ++++ src/driver-order.c 2008-08-09 16:04:21.964956000 -0400 +@@ -34,6 +34,9 @@ const char* const ca_driver_order[] = { + #ifdef HAVE_ALSA + "alsa", + #endif ++#ifdef HAVE_OSS ++ "oss", ++#endif + /* ... */ + NULL + }; diff --git a/audio/libcanberra/files/patch-src_oss.c b/audio/libcanberra/files/patch-src_oss.c new file mode 100644 index 000000000000..4da6d334793c --- /dev/null +++ b/audio/libcanberra/files/patch-src_oss.c @@ -0,0 +1,465 @@ +--- src/oss.c.orig 2008-08-09 16:04:21.964956000 -0400 ++++ src/oss.c 2008-08-09 16:41:45.000000000 -0400 +@@ -0,0 +1,462 @@ ++/*** ++ This file is part of libcanberra. ++ ++ Copyright 2008 Joe Marcus Clarke ++ ++ libcanberra is free software; you can redistribute it and/or modify ++ it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation, either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ libcanberra is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with libcanberra. If not, If not, see ++ <http://www.gnu.org/licenses/>. ++***/ ++ ++#ifdef HAVE_CONFIG_H ++#include <config.h> ++#endif ++ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <sys/uio.h> ++#include <unistd.h> ++ ++#ifdef HAVE_MACHINE_SOUNDCARD_H ++# include <machine/soundcard.h> ++#else ++# ifdef HAVE_SOUNDCARD_H ++# include <soundcard.h> ++# else ++# include <sys/soundcard.h> ++# endif ++#endif ++ ++#include <errno.h> ++#include <fcntl.h> ++#include <stdlib.h> ++#include <poll.h> ++#include <pthread.h> ++#include <semaphore.h> ++ ++#include "canberra.h" ++#include "common.h" ++#include "driver.h" ++#include "llist.h" ++#include "read-sound-file.h" ++#include "sound-theme-spec.h" ++#include "malloc.h" ++ ++struct private; ++ ++struct outstanding { ++ CA_LLIST_FIELDS(struct outstanding); ++ ca_bool_t dead; ++ uint32_t id; ++ ca_finish_callback_t callback; ++ void *userdata; ++ ca_sound_file *file; ++ int pcm; ++ int pipe_fd[2]; ++ ca_context *context; ++}; ++ ++struct private { ++ ca_theme_data *theme; ++ ca_mutex *outstanding_mutex; ++ ca_bool_t signal_semaphore; ++ sem_t semaphore; ++ ca_bool_t semaphore_allocated; ++ CA_LLIST_HEAD(struct outstanding, outstanding); ++}; ++ ++#define PRIVATE(c) ((struct private *) ((c)->private)) ++ ++static void outstanding_free(struct outstanding *o) { ++ ca_assert(o); ++ ++ if (o->pipe_fd[1] >= 0) ++ close(o->pipe_fd[1]); ++ ++ if (o->pipe_fd[0] >= 0) ++ close(o->pipe_fd[0]); ++ ++ if (o->file) ++ ca_sound_file_close(o->file); ++ ++ if (o->pcm > -1) { ++ close(o->pcm); ++ o->pcm = -1; ++ } ++ ++ ca_free(o); ++} ++ ++int driver_open(ca_context *c) { ++ struct private *p; ++ ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(!c->driver || ca_streq(c->driver, "oss"), CA_ERROR_NODRIVER); ++ ca_return_val_if_fail(!PRIVATE(c), CA_ERROR_STATE); ++ ++ if (!(c->private = p = ca_new0(struct private, 1))) ++ return CA_ERROR_OOM; ++ ++ if (!(p->outstanding_mutex = ca_mutex_new())) { ++ driver_destroy(c); ++ return CA_ERROR_OOM; ++ } ++ ++ if (sem_init(&p->semaphore, 0, 0) < 0) { ++ driver_destroy(c); ++ return CA_ERROR_OOM; ++ } ++ ++ p->semaphore_allocated = TRUE; ++ ++ return CA_SUCCESS; ++} ++ ++int driver_destroy(ca_context *c) { ++ struct private *p; ++ struct outstanding *out; ++ ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(c->private, CA_ERROR_STATE); ++ ++ p = PRIVATE(c); ++ ++ if (p->outstanding_mutex) { ++ ca_mutex_lock(p->outstanding_mutex); ++ ++ /* Tell all player threads to terminate */ ++ for (out = p->outstanding; out; out = out->next) { ++ ++ if (out->dead) ++ continue; ++ ++ out->dead = TRUE; ++ ++ if (out->callback) ++ out->callback(c, out->id, CA_ERROR_DESTROYED, out->userdata); ++ ++ /* This will cause the thread to wakeup and terminate */ ++ if (out->pipe_fd[1] >= 0) { ++ close(out->pipe_fd[1]); ++ out->pipe_fd[1] = -1; ++ } ++ } ++ ++ if (p->semaphore_allocated) { ++ /* Now wait until all players are destroyed */ ++ p->signal_semaphore = TRUE; ++ while (p->outstanding) { ++ ca_mutex_unlock(p->outstanding_mutex); ++ sem_wait(&p->semaphore); ++ ca_mutex_lock(p->outstanding_mutex); ++ } ++ } ++ ++ ca_mutex_unlock(p->outstanding_mutex); ++ ca_mutex_free(p->outstanding_mutex); ++ } ++ ++ if (p->theme) ++ ca_theme_data_free(p->theme); ++ ++ if (p->semaphore_allocated) ++ sem_destroy(&p->semaphore); ++ ++ ca_free(p); ++ ++ c->private = NULL; ++ ++ return CA_SUCCESS; ++} ++ ++int driver_change_device(ca_context *c, char *device) { ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(c->private, CA_ERROR_STATE); ++ ++ return CA_SUCCESS; ++} ++ ++int driver_change_props(ca_context *c, ca_proplist *changed, ca_proplist *merged) { ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(changed, CA_ERROR_INVALID); ++ ca_return_val_if_fail(merged, CA_ERROR_INVALID); ++ ++ return CA_SUCCESS; ++} ++ ++int driver_cache(ca_context *c, ca_proplist *proplist) { ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(proplist, CA_ERROR_INVALID); ++ ++ return CA_ERROR_NOTSUPPORTED; ++} ++ ++static int translate_error(int error) { ++ ++ switch (error) { ++ case ENODEV: ++ case ENOENT: ++ return CA_ERROR_NOTFOUND; ++ case EACCES: ++ case EPERM: ++ return CA_ERROR_ACCESS; ++ case ENOMEM: ++ return CA_ERROR_OOM; ++ case EBUSY: ++ return CA_ERROR_NOTAVAILABLE; ++ default: ++ if (ca_debug()) ++ fprintf(stderr, "Got unhandled error from OSS: %s\n", strerror(error)); ++ return CA_ERROR_IO; ++ } ++} ++ ++#define SAMPLE_FORMAT AFMT_S16_NE ++ ++static int open_oss(ca_context *c, struct outstanding *out) { ++ struct private *p; ++ int mode; ++ int val; ++ int ret; ++ ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(c->private, CA_ERROR_STATE); ++ ca_return_val_if_fail(out, CA_ERROR_INVALID); ++ ++ p = PRIVATE(c); ++ ++ if ((out->pcm = open(c->device ? c->device : "/dev/dsp", O_WRONLY | O_NONBLOCK, 0)) < 0) ++ goto finish; ++ ++ mode = fcntl(out->pcm, F_GETFL); ++ mode &= ~O_NONBLOCK; ++ fcntl(out->pcm, F_SETFL, mode); ++ ++ val = SAMPLE_FORMAT; ++ if (ioctl(out->pcm, SNDCTL_DSP_SETFMT, &val) < 0) ++ goto finish; ++ ++ val = 1; ++ if (ioctl(out->pcm, SNDCTL_DSP_STEREO, &val) < 0) ++ goto finish; ++ ++ val = ca_sound_file_get_rate(out->file); ++ if (ioctl(out->pcm, SNDCTL_DSP_SPEED, &val) < 0) ++ goto finish; ++ ++ return CA_SUCCESS; ++ ++finish: ++ ++ ret = errno; ++ close(out->pcm); ++ out->pcm = -1; ++ return translate_error(ret); ++} ++ ++#define BUFSIZE (4*1024) ++ ++static void* thread_func(void *userdata) { ++ struct outstanding *out = userdata; ++ int ret; ++ void *data, *d = NULL; ++ ssize_t bytes_written; ++ size_t fs, data_size; ++ size_t nbytes = 0; ++ struct pollfd *pfd = NULL; ++ nfds_t n_pfd; ++ struct private *p; ++ ++ p = PRIVATE(out->context); ++ ++ pthread_detach(pthread_self()); ++ ++ fs = ca_sound_file_frame_size(out->file); ++ data_size = (BUFSIZE/fs)*fs; ++ ++ if (!(data = ca_malloc(data_size))) { ++ ret = CA_ERROR_OOM; ++ goto finish; ++ } ++ ++ n_pfd = 2; ++ if (!(pfd = ca_new(struct pollfd, n_pfd))) { ++ ret = CA_ERROR_OOM; ++ goto finish; ++ } ++ ++ pfd[0].fd = out->pipe_fd[0]; ++ pfd[0].events = POLLIN; ++ pfd[0].revents = 0; ++ pfd[1].fd = out->pcm; ++ pfd[1].events = POLLOUT; ++ pfd[1].revents = 0; ++ ++ for (;;) { ++ if (out->dead) ++ break; ++ ++ if (poll(pfd, n_pfd, -1) < 0) { ++ ret = CA_ERROR_SYSTEM; ++ goto finish; ++ } ++ ++ /* We have been asked to shut down */ ++ if (pfd[0].revents) ++ break; ++ ++ if (nbytes <= 0) { ++ ++ nbytes = data_size; ++ ++ if ((ret = ca_sound_file_read_arbitrary(out->file, data, &nbytes)) < 0) ++ goto finish; ++ ++ d = data; ++ } ++ ++ if (nbytes <= 0) { ++ break; ++ } ++ ++ if ((bytes_written = write(out->pcm, d, nbytes)) <= 0) { ++ ret = errno; ++ goto finish; ++ ++ } ++ ++ nbytes -= bytes_written; ++ d = (uint8_t*) d + bytes_written; ++ } ++ ++ ret = CA_SUCCESS; ++ ++finish: ++ ++ ca_free(data); ++ ca_free(pfd); ++ ++ if (!out->dead) ++ if (out->callback) ++ out->callback(out->context, out->id, ret, out->userdata); ++ ++ ca_mutex_lock(p->outstanding_mutex); ++ ++ CA_LLIST_REMOVE(struct outstanding, p->outstanding, out); ++ ++ if (!p->outstanding && p->signal_semaphore) ++ sem_post(&p->semaphore); ++ ++ outstanding_free(out); ++ ++ ca_mutex_unlock(p->outstanding_mutex); ++ ++ return NULL; ++} ++ ++int driver_play(ca_context *c, uint32_t id, ca_proplist *proplist, ca_finish_callback_t cb, void *userdata) { ++ struct private *p; ++ struct outstanding *out = NULL; ++ int ret; ++ pthread_t thread; ++ ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(proplist, CA_ERROR_INVALID); ++ ca_return_val_if_fail(!userdata || cb, CA_ERROR_INVALID); ++ ca_return_val_if_fail(c->private, CA_ERROR_STATE); ++ ++ p = PRIVATE(c); ++ ++ if (!(out = ca_new0(struct outstanding, 1))) { ++ ret = CA_ERROR_OOM; ++ goto finish; ++ } ++ ++ out->context = c; ++ out->id = id; ++ out->callback = cb; ++ out->userdata = userdata; ++ out->pipe_fd[0] = out->pipe_fd[1] = -1; ++ ++ if (pipe(out->pipe_fd) < 0) { ++ ret = CA_ERROR_SYSTEM; ++ goto finish; ++ } ++ ++ if ((ret = ca_lookup_sound(&out->file, &p->theme, c->props, proplist)) < 0) ++ goto finish; ++ ++ if ((ret = open_oss(c, out)) < 0) ++ goto finish; ++ ++ /* OK, we're ready to go, so let's add this to our list */ ++ ca_mutex_lock(p->outstanding_mutex); ++ CA_LLIST_PREPEND(struct outstanding, p->outstanding, out); ++ ca_mutex_unlock(p->outstanding_mutex); ++ ++ if (pthread_create(&thread, NULL, thread_func, out) < 0) { ++ ret = CA_ERROR_OOM; ++ ++ ca_mutex_lock(p->outstanding_mutex); ++ CA_LLIST_REMOVE(struct outstanding, p->outstanding, out); ++ ca_mutex_unlock(p->outstanding_mutex); ++ ++ goto finish; ++ } ++ ++ ret = CA_SUCCESS; ++ ++finish: ++ ++ /* We keep the outstanding struct around if we need clean up later to */ ++ if (ret != CA_SUCCESS) ++ outstanding_free(out); ++ ++ return ret; ++} ++ ++int driver_cancel(ca_context *c, uint32_t id) { ++ struct private *p; ++ struct outstanding *out; ++ ++ ca_return_val_if_fail(c, CA_ERROR_INVALID); ++ ca_return_val_if_fail(c->private, CA_ERROR_STATE); ++ ++ p = PRIVATE(c); ++ ++ ca_mutex_lock(p->outstanding_mutex); ++ ++ for (out = p->outstanding; out; out = out->next) { ++ ++ if (out->id != id) ++ continue; ++ ++ if (out->dead) ++ continue; ++ ++ out->dead = TRUE; ++ ++ if (out->callback) ++ out->callback(c, out->id, CA_ERROR_CANCELED, out->userdata); ++ ++ /* This will cause the thread to wakeup and terminate */ ++ if (out->pipe_fd[1] >= 0) { ++ close(out->pipe_fd[1]); ++ out->pipe_fd[1] = -1; ++ } ++ } ++ ++ ca_mutex_unlock(p->outstanding_mutex); ++ ++ return CA_SUCCESS; ++} diff --git a/audio/libcanberra/pkg-plist b/audio/libcanberra/pkg-plist index 649aa73500c5..8a2a4703e878 100644 --- a/audio/libcanberra/pkg-plist +++ b/audio/libcanberra/pkg-plist @@ -18,6 +18,9 @@ lib/libcanberra/libcanberra-multi.so lib/libcanberra/libcanberra-null.a lib/libcanberra/libcanberra-null.la lib/libcanberra/libcanberra-null.so +%%OSS%%lib/libcanberra/libcanberra-oss.a +%%OSS%%lib/libcanberra/libcanberra-oss.la +%%OSS%%lib/libcanberra/libcanberra-oss.so %%PULSE%%lib/libcanberra/libcanberra-pulse.a %%PULSE%%lib/libcanberra/libcanberra-pulse.la %%PULSE%%lib/libcanberra/libcanberra-pulse.so |