diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-02-07 10:33:30 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-02-07 10:33:30 +0000 |
| commit | 7cf18befaa6309a60c5950b5f349204f267f88f4 (patch) | |
| tree | 045b389bb8924dbf3c5fb28bb1be2e870f6cf241 | |
| parent | 9bf85f976ca1c539788e6d1d60995434eb856812 (diff) | |
| download | pcsxr-7cf18befaa6309a60c5950b5f349204f267f88f4.tar.gz | |
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@41219 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rw-r--r-- | ChangeLog | 14 | ||||
| -rw-r--r-- | Makefile.in | 3 | ||||
| -rwxr-xr-x | configure | 577 | ||||
| -rw-r--r-- | configure.ac | 25 | ||||
| -rw-r--r-- | data/Makefile.in | 3 | ||||
| -rw-r--r-- | doc/Makefile.in | 3 | ||||
| -rw-r--r-- | gui/Makefile.in | 3 | ||||
| -rw-r--r-- | libpcsxcore/Makefile.in | 3 | ||||
| -rw-r--r-- | pixmaps/Makefile.in | 3 | ||||
| -rw-r--r-- | plugins/dfcdrom/Makefile.in | 3 | ||||
| -rw-r--r-- | plugins/dfinput/Makefile.in | 3 | ||||
| -rw-r--r-- | plugins/dfsound/Makefile.am | 12 | ||||
| -rw-r--r-- | plugins/dfsound/Makefile.in | 31 | ||||
| -rw-r--r-- | plugins/dfsound/alsa.c | 2 | ||||
| -rw-r--r-- | plugins/dfsound/nullsnd.c | 2 | ||||
| -rw-r--r-- | plugins/dfsound/pulseaudio.c | 242 | ||||
| -rw-r--r-- | plugins/dfsound/pulseaudiosimple.c | 111 | ||||
| -rw-r--r-- | plugins/dfsound/spu.c | 6 | ||||
| -rw-r--r-- | plugins/dfxvideo/Makefile.in | 3 | ||||
| -rw-r--r-- | plugins/peopsxgl/Makefile.in | 3 | ||||
| -rw-r--r-- | po/pcsx.pot | 28 | ||||
| -rw-r--r-- | po/pt_BR.po | 28 | ||||
| -rw-r--r-- | po/zh_CN.po | 30 | ||||
| -rw-r--r-- | po/zh_TW.po | 30 |
24 files changed, 914 insertions, 254 deletions
@@ -1,3 +1,17 @@ +February 7, 2010 Tristin Celestin <cetris1@umbc.edu> + + * plugins/dfsound/pulseaudio.c: Added PulseAudio support (not working yet). + * plugins/dfsound/pulseaudiosimple.c: Added PulseAudio Simple API support + (not working with SPUasync). + * plugins/dfsound/alsa.c: Fixed the alsa plugin so that it produces cleaner + audio through PulseAudio. + * plugins/dfsound/nullsnd.c: Don't compile when PulseAudio or PulseAudio + Simple API support is enabled. + * plugins/dfsound/spu.c: Added strings for PulseAudio plugin. + * plugins/dfsound/Makefile.am: Added pulseaudio.c and pulseaudiosimple.c. + * configure.ac: Added PulseAudio-related stuff. + * po/zh_CN.po, po/zh_TW.po, po/pt_BR.po, po/pcsx.pot: Updated. + February 1, 2010 Wei Mingzhi <whistler_wmz@users.sf.net> * macosx/plugins/HIDInput/src/HID_Utilities.h: Removed duplicate file. diff --git a/Makefile.in b/Makefile.in index 5dbe2b28..7bb2ab41 100644 --- a/Makefile.in +++ b/Makefile.in @@ -73,6 +73,7 @@ GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -152,6 +153,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ @@ -796,9 +796,16 @@ NASM X86_NASM_FALSE X86_NASM_TRUE PEOPSXGL -ALSA_LIBS HAVE_ALSA_FALSE HAVE_ALSA_TRUE +PULSEAUDIO_LIBS +PULSEAUDIO_CFLAGS +ALSA_LIBS +ALSA_CFLAGS +HAVE_PULSEAUDIOSIMPLE_FALSE +HAVE_PULSEAUDIOSIMPLE_TRUE +HAVE_PULSEAUDIO_FALSE +HAVE_PULSEAUDIO_TRUE HAVE_OSS_FALSE HAVE_OSS_TRUE SDL_LIBS @@ -964,6 +971,8 @@ with_sdl_prefix with_sdl_exec_prefix enable_sdltest enable_alsa +enable_pulseaudio +enable_pasimple enable_opengl enable_dynarec ' @@ -984,7 +993,11 @@ GLIB2_LIBS GTK2_CFLAGS GTK2_LIBS GLADE2_CFLAGS -GLADE2_LIBS' +GLADE2_LIBS +ALSA_CFLAGS +ALSA_LIBS +PULSEAUDIO_CFLAGS +PULSEAUDIO_LIBS' # Initialize some variables set by options. @@ -1629,6 +1642,8 @@ Optional Features: --disable-rpath do not hardcode runtime library paths --disable-sdltest Do not try to compile and run a test SDL program --enable-alsa use ALSA sound output (default=no) + --enable-pulseaudio use PulseAudio sound output (default=no) + --enable-pasimple use PulseAudio simple sound output (default=no) --enable-opengl build OpenGL plugin (default=no) --enable-dynarec=... force selection of dynamic recompiler platform (x86, x86_64, ppc) (default: autodetect) @@ -1666,6 +1681,12 @@ Some influential environment variables: GLADE2_CFLAGS C compiler flags for GLADE2, overriding pkg-config GLADE2_LIBS linker flags for GLADE2, overriding pkg-config + ALSA_CFLAGS C compiler flags for ALSA, overriding pkg-config + ALSA_LIBS linker flags for ALSA, overriding pkg-config + PULSEAUDIO_CFLAGS + C compiler flags for PULSEAUDIO, overriding pkg-config + PULSEAUDIO_LIBS + linker flags for PULSEAUDIO, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -4603,13 +4624,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4606: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4627: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4609: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4630: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4612: output\"" >&5) + (eval echo "\"\$as_me:4633: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5815,7 +5836,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5818 "configure"' > conftest.$ac_ext + echo '#line 5839 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7638,11 +7659,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:7641: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7662: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7645: \$? = $ac_status" >&5 + echo "$as_me:7666: \$? = $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. @@ -7977,11 +7998,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:7980: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8001: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7984: \$? = $ac_status" >&5 + echo "$as_me:8005: \$? = $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. @@ -8082,11 +8103,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:8085: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8106: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8089: \$? = $ac_status" >&5 + echo "$as_me:8110: \$? = $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 @@ -8137,11 +8158,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:8140: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8161: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8144: \$? = $ac_status" >&5 + echo "$as_me:8165: \$? = $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 @@ -10950,7 +10971,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10953 "configure" +#line 10974 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11046,7 +11067,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11049 "configure" +#line 11070 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14562,6 +14583,22 @@ else HAVE_OSS_FALSE= fi + if false; then + HAVE_PULSEAUDIO_TRUE= + HAVE_PULSEAUDIO_FALSE='#' +else + HAVE_PULSEAUDIO_TRUE='#' + HAVE_PULSEAUDIO_FALSE= +fi + + if false; then + HAVE_PULSEAUDIOSIMPLE_TRUE= + HAVE_PULSEAUDIOSIMPLE_FALSE='#' +else + HAVE_PULSEAUDIOSIMPLE_TRUE='#' + HAVE_PULSEAUDIOSIMPLE_FALSE= +fi + # Check whether --enable-alsa was given. @@ -14571,213 +14608,321 @@ else BUILD_ALSA="no" fi +# Check whether --enable-pulseaudio was given. +if test "${enable_pulseaudio+set}" = set; then + enableval=$enable_pulseaudio; BUILD_PULSEAUDIO="$enableval" +else + BUILD_PULSEAUDIO="no" +fi -if test "$BUILD_ALSA" = "yes"; then - { $as_echo "$as_me:$LINENO: checking for snd_pcm_open in -lasound" >&5 -$as_echo_n "checking for snd_pcm_open in -lasound... " >&6; } -if test "${ac_cv_lib_asound_snd_pcm_open+set}" = set; then - $as_echo_n "(cached) " >&6 +# Check whether --enable-pasimple was given. +if test "${enable_pasimple+set}" = set; then + enableval=$enable_pasimple; BUILD_PULSEAUDIOSIMPLE="$enableval" else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lasound $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ + BUILD_PULSEAUDIOSIMPLE="no" +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char snd_pcm_open (); -int -main () -{ -return snd_pcm_open (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -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_link") 2>conftest.er1 + +if test "$BUILD_ALSA" = "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for ALSA" >&5 +$as_echo_n "checking for ALSA... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$ALSA_CFLAGS"; then + pkg_cv_ALSA_CFLAGS="$ALSA_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"alsa >= 1.0.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "alsa >= 1.0.0") 2>&5 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_exeext && { - test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext - }; then - ac_cv_lib_asound_snd_pcm_open=yes + (exit $ac_status); }; then + pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa >= 1.0.0" 2>/dev/null` else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_asound_snd_pcm_open=no + pkg_failed=yes fi - -rm -rf conftest.dSYM -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$ALSA_LIBS"; then + pkg_cv_ALSA_LIBS="$ALSA_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"alsa >= 1.0.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "alsa >= 1.0.0") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa >= 1.0.0" 2>/dev/null` +else + pkg_failed=yes fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_asound_snd_pcm_open" >&5 -$as_echo "$ac_cv_lib_asound_snd_pcm_open" >&6; } -if test "x$ac_cv_lib_asound_snd_pcm_open" = x""yes; then - have_alsa=yes + fi else - have_alsa=no + pkg_failed=untried fi - if test "${ac_cv_header_alsa_asoundlib_h+set}" = set; then - { $as_echo "$as_me:$LINENO: checking for alsa/asoundlib.h" >&5 -$as_echo_n "checking for alsa/asoundlib.h... " >&6; } -if test "${ac_cv_header_alsa_asoundlib_h+set}" = set; then - $as_echo_n "(cached) " >&6 + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_alsa_asoundlib_h" >&5 -$as_echo "$ac_cv_header_alsa_asoundlib_h" >&6; } + if test $_pkg_short_errors_supported = yes; then + ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "alsa >= 1.0.0"` + else + ALSA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "alsa >= 1.0.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$ALSA_PKG_ERRORS" >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + have_alsa=no +elif test $pkg_failed = untried; then + have_alsa=no else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking alsa/asoundlib.h usability" >&5 -$as_echo_n "checking alsa/asoundlib.h 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 <alsa/asoundlib.h> -_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 + ALSA_CFLAGS=$pkg_cv_ALSA_CFLAGS + ALSA_LIBS=$pkg_cv_ALSA_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + have_alsa=yes +fi +elif test "$BUILD_PULSEAUDIOSIMPLE" = "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for PULSEAUDIO" >&5 +$as_echo_n "checking for PULSEAUDIO... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$PULSEAUDIO_CFLAGS"; then + pkg_cv_PULSEAUDIO_CFLAGS="$PULSEAUDIO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9.16\"") >&5 + ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9.16") 2>&5 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 + (exit $ac_status); }; then + pkg_cv_PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags "libpulse-simple >= 0.9.16" 2>/dev/null` else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no + pkg_failed=yes 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 alsa/asoundlib.h presence" >&5 -$as_echo_n "checking alsa/asoundlib.h 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 <alsa/asoundlib.h> -_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 + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$PULSEAUDIO_LIBS"; then + pkg_cv_PULSEAUDIO_LIBS="$PULSEAUDIO_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpulse-simple >= 0.9.16\"") >&5 + ($PKG_CONFIG --exists --print-errors "libpulse-simple >= 0.9.16") 2>&5 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 + (exit $ac_status); }; then + pkg_cv_PULSEAUDIO_LIBS=`$PKG_CONFIG --libs "libpulse-simple >= 0.9.16" 2>/dev/null` else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi - ac_header_preproc=no + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpulse-simple >= 0.9.16"` + else + PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpulse-simple >= 0.9.16"` + fi + # Put the nasty error message in config.log where it belongs + echo "$PULSEAUDIO_PKG_ERRORS" >&5 -rm -f conftest.err conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } + { { $as_echo "$as_me:$LINENO: error: Package requirements (libpulse-simple >= 0.9.16) were not met: -# 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: alsa/asoundlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: alsa/asoundlib.h: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: alsa/asoundlib.h: in the future, the compiler will take precedence" >&2;} +$PULSEAUDIO_PKG_ERRORS - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for alsa/asoundlib.h" >&5 -$as_echo_n "checking for alsa/asoundlib.h... " >&6; } -if test "${ac_cv_header_alsa_asoundlib_h+set}" = set; then - $as_echo_n "(cached) " >&6 +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +$as_echo "$as_me: error: Package requirements (libpulse-simple >= 0.9.16) were not met: + +$PULSEAUDIO_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } else - ac_cv_header_alsa_asoundlib_h=$ac_header_preproc + PULSEAUDIO_CFLAGS=$pkg_cv_PULSEAUDIO_CFLAGS + PULSEAUDIO_LIBS=$pkg_cv_PULSEAUDIO_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + have_pulseaudiosimple=yes fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_alsa_asoundlib_h" >&5 -$as_echo "$ac_cv_header_alsa_asoundlib_h" >&6; } +elif test "$BUILD_PULSEAUDIO" = "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for PULSEAUDIO" >&5 +$as_echo_n "checking for PULSEAUDIO... " >&6; } +if test -n "$PKG_CONFIG"; then + if test -n "$PULSEAUDIO_CFLAGS"; then + pkg_cv_PULSEAUDIO_CFLAGS="$PULSEAUDIO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.16\"") >&5 + ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.16") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags "libpulse >= 0.9.16" 2>/dev/null` +else + pkg_failed=yes fi -if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then - : + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$PULSEAUDIO_LIBS"; then + pkg_cv_PULSEAUDIO_LIBS="$PULSEAUDIO_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libpulse >= 0.9.16\"") >&5 + ($PKG_CONFIG --exists --print-errors "libpulse >= 0.9.16") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_PULSEAUDIO_LIBS=`$PKG_CONFIG --libs "libpulse >= 0.9.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - have_alsa=no + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpulse >= 0.9.16"` + else + PULSEAUDIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpulse >= 0.9.16"` + fi + # Put the nasty error message in config.log where it belongs + echo "$PULSEAUDIO_PKG_ERRORS" >&5 + + { { $as_echo "$as_me:$LINENO: error: Package requirements (libpulse >= 0.9.16) were not met: + +$PULSEAUDIO_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +$as_echo "$as_me: error: Package requirements (libpulse >= 0.9.16) were not met: + +$PULSEAUDIO_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables PULSEAUDIO_CFLAGS +and PULSEAUDIO_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +else + PULSEAUDIO_CFLAGS=$pkg_cv_PULSEAUDIO_CFLAGS + PULSEAUDIO_LIBS=$pkg_cv_PULSEAUDIO_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + have_pulseaudio=yes +fi else if test "${ac_cv_header_sys_soundcard_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for sys/soundcard.h" >&5 @@ -14928,12 +15073,6 @@ fi fi fi -if test "x$have_alsa" = xyes; then - ALSA_LIBS="-lasound" -else - ALSA_LIBS="" -fi - if test "x$have_alsa" = xyes; then HAVE_ALSA_TRUE= HAVE_ALSA_FALSE='#' @@ -14943,6 +15082,24 @@ else fi + if test "x$have_pulseaudiosimple" = xyes; then + HAVE_PULSEAUDIOSIMPLE_TRUE= + HAVE_PULSEAUDIOSIMPLE_FALSE='#' +else + HAVE_PULSEAUDIOSIMPLE_TRUE='#' + HAVE_PULSEAUDIOSIMPLE_FALSE= +fi + + if test "x$have_pulseaudio" = xyes; then + HAVE_PULSEAUDIO_TRUE= + HAVE_PULSEAUDIO_FALSE='#' +else + HAVE_PULSEAUDIO_TRUE='#' + HAVE_PULSEAUDIO_FALSE= +fi + + + if test "${ac_cv_header_zlib_h+set}" = set; then { $as_echo "$as_me:$LINENO: checking for zlib.h" >&5 @@ -16612,6 +16769,20 @@ $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_PULSEAUDIO_TRUE}" && test -z "${HAVE_PULSEAUDIO_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_PULSEAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_PULSEAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_PULSEAUDIOSIMPLE_TRUE}" && test -z "${HAVE_PULSEAUDIOSIMPLE_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_PULSEAUDIOSIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_PULSEAUDIOSIMPLE\" was never defined. +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 @@ -16626,6 +16797,20 @@ $as_echo "$as_me: error: conditional \"HAVE_ALSA\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${HAVE_PULSEAUDIOSIMPLE_TRUE}" && test -z "${HAVE_PULSEAUDIOSIMPLE_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_PULSEAUDIOSIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_PULSEAUDIOSIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_PULSEAUDIO_TRUE}" && test -z "${HAVE_PULSEAUDIO_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_PULSEAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_PULSEAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${X86_NASM_TRUE}" && test -z "${X86_NASM_FALSE}"; then { { $as_echo "$as_me:$LINENO: error: conditional \"X86_NASM\" was never defined. Usually this means the macro was only invoked conditionally." >&5 diff --git a/configure.ac b/configure.ac index b8dc01d5..0c509154 100644 --- a/configure.ac +++ b/configure.ac @@ -48,15 +48,24 @@ then fi AM_CONDITIONAL(HAVE_OSS, false) +AM_CONDITIONAL(HAVE_PULSEAUDIO, false) +AM_CONDITIONAL(HAVE_PULSEAUDIOSIMPLE, false) -dnl Check for ALSA 0.9.x +dnl Check for ALSA 1.x, OSS, or PulseAudio AC_ARG_ENABLE(alsa, [ --enable-alsa use ALSA sound output (default=no)], [ BUILD_ALSA="$enableval" ],[ BUILD_ALSA="no" ]) +AC_ARG_ENABLE(pulseaudio, [ --enable-pulseaudio use PulseAudio sound output (default=no)], +[ BUILD_PULSEAUDIO="$enableval" ],[ BUILD_PULSEAUDIO="no" ]) +AC_ARG_ENABLE(pasimple, [ --enable-pasimple use PulseAudio simple sound output (default=no)], +[ BUILD_PULSEAUDIOSIMPLE="$enableval" ],[ BUILD_PULSEAUDIOSIMPLE="no" ]) if test "$BUILD_ALSA" = "yes"; then - AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no) - AC_CHECK_HEADER(alsa/asoundlib.h, , have_alsa=no) + PKG_CHECK_MODULES(ALSA, alsa >= 1.0.0, have_alsa=yes, have_alsa=no) +elif test "$BUILD_PULSEAUDIOSIMPLE" = "yes"; then + PKG_CHECK_MODULES(PULSEAUDIO, libpulse-simple >= 0.9.16, have_pulseaudiosimple=yes) +elif test "$BUILD_PULSEAUDIO" = "yes"; then + PKG_CHECK_MODULES(PULSEAUDIO, libpulse >= 0.9.16, have_pulseaudio=yes) else AC_CHECK_HEADER(sys/soundcard.h, have_oss=yes, have_oss=no) if test "x$have_oss" = xno; then @@ -66,14 +75,12 @@ else fi fi -if test "x$have_alsa" = xyes; then - ALSA_LIBS="-lasound" -else - ALSA_LIBS="" -fi - AM_CONDITIONAL(HAVE_ALSA,test "x$have_alsa" = xyes) AC_SUBST(ALSA_LIBS) +AM_CONDITIONAL(HAVE_PULSEAUDIOSIMPLE,test "x$have_pulseaudiosimple" = xyes) +AM_CONDITIONAL(HAVE_PULSEAUDIO,test "x$have_pulseaudio" = xyes) +AC_SUBST(PULSEAUDIO_CFLAGS) +AC_SUBST(PULSEAUDIO_LIBS) AC_CHECK_HEADER(zlib.h, have_zlib=yes, have_zlib=no) if test "x$have_zlib" = xno; then diff --git a/data/Makefile.in b/data/Makefile.in index 16b5582a..ac1d52aa 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -56,6 +56,7 @@ gladeDATA_INSTALL = $(INSTALL_DATA) DATA = $(desktop_DATA) $(glade_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -135,6 +136,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/doc/Makefile.in b/doc/Makefile.in index 7688ba11..3d77c192 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -49,6 +49,7 @@ NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -128,6 +129,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/gui/Makefile.in b/gui/Makefile.in index 6d0254bd..040e7b6d 100644 --- a/gui/Makefile.in +++ b/gui/Makefile.in @@ -71,6 +71,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -150,6 +151,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/libpcsxcore/Makefile.in b/libpcsxcore/Makefile.in index 3b0925cf..d9392ea9 100644 --- a/libpcsxcore/Makefile.in +++ b/libpcsxcore/Makefile.in @@ -168,6 +168,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -247,6 +248,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/pixmaps/Makefile.in b/pixmaps/Makefile.in index b3bbfb04..b31737b2 100644 --- a/pixmaps/Makefile.in +++ b/pixmaps/Makefile.in @@ -56,6 +56,7 @@ pixmapDATA_INSTALL = $(INSTALL_DATA) DATA = $(icon_DATA) $(pixmap_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -135,6 +136,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/plugins/dfcdrom/Makefile.in b/plugins/dfcdrom/Makefile.in index 7bde668c..dff6d84e 100644 --- a/plugins/dfcdrom/Makefile.in +++ b/plugins/dfcdrom/Makefile.in @@ -87,6 +87,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -166,6 +167,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/plugins/dfinput/Makefile.in b/plugins/dfinput/Makefile.in index 83615d69..64c54ae1 100644 --- a/plugins/dfinput/Makefile.in +++ b/plugins/dfinput/Makefile.in @@ -90,6 +90,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -169,6 +170,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/plugins/dfsound/Makefile.am b/plugins/dfsound/Makefile.am index 70f3d650..91788212 100644 --- a/plugins/dfsound/Makefile.am +++ b/plugins/dfsound/Makefile.am @@ -10,7 +10,7 @@ libdir = @libdir@/games/psemu/ lib_LTLIBRARIES = libDFSound.la libDFSound_la_SOURCES = spu.c cfg.c dma.c freeze.c psemu.c registers.c \ - alsa.c oss.c nullsnd.c + alsa.c oss.c pulseaudio.c pulseaudiosimple.c nullsnd.c libDFSound_la_CFLAGS = libDFSound_la_LDFLAGS = -module -avoid-version -lpthread -lm @@ -24,6 +24,16 @@ if HAVE_OSS libDFSound_la_CFLAGS += -DUSEOSS=1 endif +if HAVE_PULSEAUDIOSIMPLE +libDFSound_la_CFLAGS += $(PULSEAUDIO_CFLAGS) -DUSEPULSEAUDIOSIMPLE=1 +libDFSound_la_LDFLAGS += $(PULSEAUDIO_LIBS) +endif + +if HAVE_PULSEAUDIO +libDFSound_la_CFLAGS += $(PULSEAUDIO_CFLAGS) -DUSEPULSEAUDIO=1 +libDFSound_la_LDFLAGS += $(PULSEAUDIO_LIBS) +endif + bin_PROGRAMS = cfgDFSound cfgDFSound_SOURCES = spucfg-0.1df/main.c cfgDFSound_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) diff --git a/plugins/dfsound/Makefile.in b/plugins/dfsound/Makefile.in index d13c1dbe..b304dfe0 100644 --- a/plugins/dfsound/Makefile.in +++ b/plugins/dfsound/Makefile.in @@ -38,6 +38,10 @@ target_triplet = @target@ @HAVE_ALSA_TRUE@am__append_1 = -DUSEALSA=1 @HAVE_ALSA_TRUE@am__append_2 = $(ALSA_LIBS) @HAVE_OSS_TRUE@am__append_3 = -DUSEOSS=1 +@HAVE_PULSEAUDIOSIMPLE_TRUE@am__append_4 = $(PULSEAUDIO_CFLAGS) -DUSEPULSEAUDIOSIMPLE=1 +@HAVE_PULSEAUDIOSIMPLE_TRUE@am__append_5 = $(PULSEAUDIO_LIBS) +@HAVE_PULSEAUDIO_TRUE@am__append_6 = $(PULSEAUDIO_CFLAGS) -DUSEPULSEAUDIO=1 +@HAVE_PULSEAUDIO_TRUE@am__append_7 = $(PULSEAUDIO_LIBS) bin_PROGRAMS = cfgDFSound$(EXEEXT) subdir = plugins/dfsound DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in @@ -63,6 +67,7 @@ am_libDFSound_la_OBJECTS = libDFSound_la-spu.lo libDFSound_la-cfg.lo \ libDFSound_la-dma.lo libDFSound_la-freeze.lo \ libDFSound_la-psemu.lo libDFSound_la-registers.lo \ libDFSound_la-alsa.lo libDFSound_la-oss.lo \ + libDFSound_la-pulseaudio.lo libDFSound_la-pulseaudiosimple.lo \ libDFSound_la-nullsnd.lo libDFSound_la_OBJECTS = $(am_libDFSound_la_OBJECTS) libDFSound_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -94,6 +99,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -173,6 +179,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ @@ -250,11 +258,12 @@ INCLUDES = -DPIXMAPDIR=\"${datadir}/pixmaps/\" \ lib_LTLIBRARIES = libDFSound.la libDFSound_la_SOURCES = spu.c cfg.c dma.c freeze.c psemu.c registers.c \ - alsa.c oss.c nullsnd.c + alsa.c oss.c pulseaudio.c pulseaudiosimple.c nullsnd.c -libDFSound_la_CFLAGS = $(am__append_1) $(am__append_3) +libDFSound_la_CFLAGS = $(am__append_1) $(am__append_3) $(am__append_4) \ + $(am__append_6) libDFSound_la_LDFLAGS = -module -avoid-version -lpthread -lm \ - $(am__append_2) + $(am__append_2) $(am__append_5) $(am__append_7) cfgDFSound_SOURCES = spucfg-0.1df/main.c cfgDFSound_LDADD = $(GTK2_LIBS) $(GLADE2_LIBS) glade_DATA = spucfg-0.1df/dfsound.glade2 @@ -367,6 +376,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-nullsnd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-oss.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-psemu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-pulseaudio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-pulseaudiosimple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-registers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libDFSound_la-spu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @@ -448,6 +459,20 @@ libDFSound_la-oss.lo: oss.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) $(libDFSound_la_CFLAGS) $(CFLAGS) -c -o libDFSound_la-oss.lo `test -f 'oss.c' || echo '$(srcdir)/'`oss.c +libDFSound_la-pulseaudio.lo: pulseaudio.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libDFSound_la_CFLAGS) $(CFLAGS) -MT libDFSound_la-pulseaudio.lo -MD -MP -MF $(DEPDIR)/libDFSound_la-pulseaudio.Tpo -c -o libDFSound_la-pulseaudio.lo `test -f 'pulseaudio.c' || echo '$(srcdir)/'`pulseaudio.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libDFSound_la-pulseaudio.Tpo $(DEPDIR)/libDFSound_la-pulseaudio.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulseaudio.c' object='libDFSound_la-pulseaudio.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) $(libDFSound_la_CFLAGS) $(CFLAGS) -c -o libDFSound_la-pulseaudio.lo `test -f 'pulseaudio.c' || echo '$(srcdir)/'`pulseaudio.c + +libDFSound_la-pulseaudiosimple.lo: pulseaudiosimple.c +@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libDFSound_la_CFLAGS) $(CFLAGS) -MT libDFSound_la-pulseaudiosimple.lo -MD -MP -MF $(DEPDIR)/libDFSound_la-pulseaudiosimple.Tpo -c -o libDFSound_la-pulseaudiosimple.lo `test -f 'pulseaudiosimple.c' || echo '$(srcdir)/'`pulseaudiosimple.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libDFSound_la-pulseaudiosimple.Tpo $(DEPDIR)/libDFSound_la-pulseaudiosimple.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pulseaudiosimple.c' object='libDFSound_la-pulseaudiosimple.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) $(libDFSound_la_CFLAGS) $(CFLAGS) -c -o libDFSound_la-pulseaudiosimple.lo `test -f 'pulseaudiosimple.c' || echo '$(srcdir)/'`pulseaudiosimple.c + libDFSound_la-nullsnd.lo: nullsnd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libDFSound_la_CFLAGS) $(CFLAGS) -MT libDFSound_la-nullsnd.lo -MD -MP -MF $(DEPDIR)/libDFSound_la-nullsnd.Tpo -c -o libDFSound_la-nullsnd.lo `test -f 'nullsnd.c' || echo '$(srcdir)/'`nullsnd.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libDFSound_la-nullsnd.Tpo $(DEPDIR)/libDFSound_la-nullsnd.Plo diff --git a/plugins/dfsound/alsa.c b/plugins/dfsound/alsa.c index 67b10396..d771cfaa 100644 --- a/plugins/dfsound/alsa.c +++ b/plugins/dfsound/alsa.c @@ -139,7 +139,7 @@ unsigned long SoundGetBytesBuffered(void) if (handle == NULL) // failed to open? return SOUNDSIZE; - l = snd_pcm_avail_update(handle); + l = snd_pcm_avail(handle); if (l < 0) return 0; if (l < buffer_size / 2) // can we write in at least the half of fragments? l = SOUNDSIZE; // -> no? wait diff --git a/plugins/dfsound/nullsnd.c b/plugins/dfsound/nullsnd.c index ebbefa2e..d417136b 100644 --- a/plugins/dfsound/nullsnd.c +++ b/plugins/dfsound/nullsnd.c @@ -2,7 +2,7 @@ #define _IN_OSS #include "externals.h" -#if !defined (USEALSA) && !defined (USEOSS) +#if !defined (USEALSA) && !defined (USEOSS) && !defined (USEPULSEAUDIO) && !defined(USEPULSEAUDIOSIMPLE) #warning "Using NULL sound output..." diff --git a/plugins/dfsound/pulseaudio.c b/plugins/dfsound/pulseaudio.c new file mode 100644 index 00000000..513af91c --- /dev/null +++ b/plugins/dfsound/pulseaudio.c @@ -0,0 +1,242 @@ +/*************************************************************************** + pulseaudio.c - description + ------------------- +begin : Thu Feb 04 2010 +copyright : (C) 2010 by Tristin Celestin +email : cetris1@umbc.edu +comment : Much of this was taken from pulseaudio.cpp (authored + by RedDwarf) in bsnes (http://byuu.org/bsnes/) +***************************************************************************/ +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#include "stdafx.h" + +#ifdef USEPULSEAUDIO + +#define _IN_OSS + +#include "externals.h" +#include <pulse/pulseaudio.h> + +//////////////////////////////////////////////////////////////////////// +// declarations for pulseaudio callbacks +//////////////////////////////////////////////////////////////////////// +void announce_connection_success (pa_context *context, const char *name, pa_proplist *property_list, void *user_data); + + +//////////////////////////////////////////////////////////////////////// +// pulseaudio structs +//////////////////////////////////////////////////////////////////////// + +typedef struct { + pa_mainloop *mainloop; + pa_context *context; + pa_mainloop_api *api; + pa_stream *stream; + pa_sample_spec spec; + pa_buffer_attr buffer_attr; + int first; +} Device; + +typedef struct { + unsigned int frequency; + unsigned int latency; +} Settings; + +//////////////////////////////////////////////////////////////////////// +// pulseaudio globals +//////////////////////////////////////////////////////////////////////// + +static Device device = { + .mainloop = NULL, + .api = NULL, + .context = NULL, + .stream = NULL +}; + +static Settings settings = { + .frequency = 44100, + .latency = 80 +}; + +//////////////////////////////////////////////////////////////////////// +// SETUP SOUND +//////////////////////////////////////////////////////////////////////// + +void SetupSound (void) +{ + int error_number; + + // Acquire mainloop /////////////////////////////////////////////////////// + device.mainloop = pa_mainloop_new (); + if (device.mainloop == NULL) + { + fprintf (stderr, "Could not acquire PulseAudio main loop\n"); + return; + } + + // Acquire context //////////////////////////////////////////////////////// + device.api = pa_mainloop_get_api (device.mainloop); + device.context = pa_context_new (device.api, "PCSX"); + if (device.context == NULL) + { + fprintf (stderr, "Could not acquire PulseAudio device context\n"); + return; + } + + // Connect to PulseAudio server /////////////////////////////////////////// + error_number = pa_context_connect (device.context, NULL, 0, NULL); + if (error_number < 0) { + fprintf (stderr, "Could not connect to PulseAudio server: %s\n", pa_strerror(error_number)); + return; + } + else + { + fprintf (stderr, "Connected to PulseAudio synchronously.\n"); + } + + // Run mainloop until sever is ready ////////////////////////////////////// + pa_context_state_t context_state; + do + { + error_number = pa_mainloop_iterate (device.mainloop, 1, NULL); + if (error_number < 0) { + fprintf (stderr, "Could not run pa_mainloop_iterate ():%s\n", pa_strerror (error_number)); + return; + } + + context_state = pa_context_get_state (device.context); + if (! PA_CONTEXT_IS_GOOD (context_state)) + { + fprintf (stderr, "Context state is not good.\n"); + return; + } + else + { + fprintf (stderr, "PulseAudio context state is %d\n", context_state); + } + } while (context_state != PA_CONTEXT_READY); + + // Set sample spec //////////////////////////////////////////////////////// + device.spec.format = PA_SAMPLE_S16LE; + if (iDisStereo) + device.spec.channels = 1; + else + device.spec.channels = 2; + device.spec.rate = settings.frequency; + + // Set buffer attributes ////////////////////////////////////////////////// + int mixlen = pa_usec_to_bytes (settings.latency * PA_USEC_PER_MSEC, &device.spec); + device.buffer_attr.maxlength = -1; + device.buffer_attr.tlength = 2 * mixlen; + device.buffer_attr.prebuf = -1; + device.buffer_attr.minreq = mixlen; + + // Acquire new stream using spec and buffer attributes //////////////////// + device.stream = pa_stream_new (device.context, "PCSX", &device.spec, NULL); + if (device.stream == NULL) + { + fprintf (stderr, "Could not get new PulseAudio stream.\n"); + return; + } + + pa_stream_flags_t flags = (pa_stream_flags_t) (PA_STREAM_ADJUST_LATENCY | PA_STREAM_VARIABLE_RATE); + error_number = pa_stream_connect_playback (device.stream, NULL, &device.buffer_attr, flags, NULL, NULL); + if (error_number < 0) { + fprintf (stderr, "Could not connect for playback successfully :%s\n", pa_strerror (error_number)); + return; + } + + // Run mainloop until stream is ready ///////////////////////////////////// + pa_stream_state_t stream_state; + do { + error_number = pa_mainloop_iterate (device.mainloop, 1, NULL); + if (error_number < 0) { + fprintf (stderr, "Could not run pa_mainloop_iterate ():%s\n", pa_strerror (error_number)); + return; + } + + stream_state = pa_stream_get_state (device.stream); + if (! PA_STREAM_IS_GOOD (stream_state)) + { + fprintf (stderr, "Could not acquire PulseAudio stream.\n"); + return; + } + else + { + fprintf (stderr, "PulseAudio stream state is %d.\n", stream_state); + } + } while (stream_state != PA_STREAM_READY); + + return; +} + +//////////////////////////////////////////////////////////////////////// +// REMOVE SOUND +//////////////////////////////////////////////////////////////////////// + +void RemoveSound (void) +{ + + if (device.stream != NULL) + { + pa_stream_disconnect (device.stream); + pa_stream_unref (device.stream); + device.stream = NULL; + } + + if (device.context != NULL) + { + pa_context_disconnect (device.context); + pa_context_unref (device.context); + device.context = NULL; + } + + if (device.mainloop != NULL) + { + pa_mainloop_free (device.mainloop); + device.mainloop = NULL; + } +} + +//////////////////////////////////////////////////////////////////////// +// GET BYTES BUFFERED +//////////////////////////////////////////////////////////////////////// + +unsigned long SoundGetBytesBuffered (void) +{ + int size; + + fprintf (stderr, "In SoundGetBytesBuffered\n"); + + size = pa_stream_writable_size (device.stream); + fprintf (stderr, "Writable size: %d\n", size); + + // need to figure out length of buffer + if (size > TESTSIZE) + return size; + else + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// FEED SOUND DATA +//////////////////////////////////////////////////////////////////////// + +void SoundFeedStreamData (unsigned char *pSound, long lBytes) +{ + fprintf (stderr, "In SoundFeedStreamData\n"); + + if (pa_stream_write (device.stream, pSound, lBytes, NULL, 0LL, PA_SEEK_RELATIVE) < 0) + fprintf (stderr, "Error: Could not perform write with PulseAudio\n"); +} + +#endif diff --git a/plugins/dfsound/pulseaudiosimple.c b/plugins/dfsound/pulseaudiosimple.c new file mode 100644 index 00000000..0ca92a4b --- /dev/null +++ b/plugins/dfsound/pulseaudiosimple.c @@ -0,0 +1,111 @@ +/*************************************************************************** + pulseaudiosimple.c - description + ------------------- +begin : Thu Feb 04 2010 +copyright : (C) 2010 by Tristin Celestin +email : cetris1@umbc.edu +***************************************************************************/ +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#include "stdafx.h" + +#ifdef USEPULSEAUDIOSIMPLE + +#define _IN_OSS + +#include "externals.h" +#include <pulse/simple.h> +#include <pulse/error.h> +#include <pulse/timeval.h> + +//////////////////////////////////////////////////////////////////////// +// pulseaudio globals +//////////////////////////////////////////////////////////////////////// + +#define PLAYBACK_RATE 44100 +#define LATENCY_IN_MS 20 + +static pa_simple *playback_stream; +static pa_sample_spec sample_specification; + +//////////////////////////////////////////////////////////////////////// +// SETUP SOUND +//////////////////////////////////////////////////////////////////////// + +void SetupSound(void) +{ + int error_number = 0; + int buffer_length; + pa_buffer_attr buffer_attributes; + + // Set sample specification /////////////////////////////////////////////// + sample_specification.format = PA_SAMPLE_S16LE; + sample_specification.rate = PLAYBACK_RATE; + if (iDisStereo) + sample_specification.channels = 1; + else + sample_specification.channels = 2; + + // Set buffer attributes ////////////////////////////////////////////////// + // See http://0pointer.de/lennart/projects/pulseaudio/doxygen/streams.html + // for parameter explanations + /////////////////////////////////////////////////////////////////////////// + int mixlen = pa_usec_to_bytes(LATENCY_IN_MS * PA_USEC_PER_MSEC, &sample_specification); + buffer_attributes.maxlength = -1; + buffer_attributes.tlength = mixlen; + buffer_attributes.prebuf = -1; + buffer_attributes.minreq = -1; + + // Get connection from PulseAudio server + playback_stream = pa_simple_new(NULL, "PCSX", PA_STREAM_PLAYBACK, NULL, "PCSX", &sample_specification, NULL, &buffer_attributes, &error_number); + if (playback_stream == NULL) + { + fprintf(stderr, "Failed to connect to Pulseaudio server with pa_simple_new(): %s\n", pa_strerror(error_number)); + return; + } +} + +//////////////////////////////////////////////////////////////////////// +// REMOVE SOUND +//////////////////////////////////////////////////////////////////////// + +void RemoveSound(void) +{ + int error_number = 0; + + if (pa_simple_drain(playback_stream, &error_number) < 0) + fprintf(stderr, "Unable to drain audio: %s\n", pa_strerror (error_number)); + if (playback_stream) + pa_simple_free(playback_stream); +} + +//////////////////////////////////////////////////////////////////////// +// GET BYTES BUFFERED +//////////////////////////////////////////////////////////////////////// + +unsigned long SoundGetBytesBuffered(void) +{ + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// FEED SOUND DATA +//////////////////////////////////////////////////////////////////////// + +void SoundFeedStreamData(unsigned char *pSound, long lBytes) +{ + int error_number = 0; + + if (pa_simple_write(playback_stream, pSound, (ssize_t)lBytes, &error_number) < 0) + fprintf(stderr, "Could not write - pa_simple_write() failed: %s\n", pa_strerror(error_number)); +} + +#endif diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index fe44b323..1a14c839 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -34,12 +34,16 @@ #define N_(x) (x) #endif -#if defined(USEALSA) +#if defined (USEALSA) static char * libraryName = N_("ALSA Sound"); #elif defined (USEMACOSX) static char * libraryName = N_("Mac OS X Sound"); #elif defined (USEOSS) static char * libraryName = N_("OSS Sound"); +#elif defined (USEPULSEAUDIOSIMPLE) +static char * libraryName = N_("PulseAudio Simple Sound"); +#elif defined (USEPULSEAUDIO) +static char * libraryName = N_("PulseAudio Sound"); #else static char * libraryName = N_("NULL Sound"); #endif diff --git a/plugins/dfxvideo/Makefile.in b/plugins/dfxvideo/Makefile.in index b5491783..5fb8285a 100644 --- a/plugins/dfxvideo/Makefile.in +++ b/plugins/dfxvideo/Makefile.in @@ -94,6 +94,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -173,6 +174,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/plugins/peopsxgl/Makefile.in b/plugins/peopsxgl/Makefile.in index 296fe747..2c77dacd 100644 --- a/plugins/peopsxgl/Makefile.in +++ b/plugins/peopsxgl/Makefile.in @@ -85,6 +85,7 @@ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ +ALSA_CFLAGS = @ALSA_CFLAGS@ ALSA_LIBS = @ALSA_LIBS@ AMTAR = @AMTAR@ AR = @AR@ @@ -164,6 +165,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ PEOPSXGL = @PEOPSXGL@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ +PULSEAUDIO_CFLAGS = @PULSEAUDIO_CFLAGS@ +PULSEAUDIO_LIBS = @PULSEAUDIO_LIBS@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ diff --git a/po/pcsx.pot b/po/pcsx.pot index ccc6c3a2..e7e517b5 100644 --- a/po/pcsx.pot +++ b/po/pcsx.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 16:38+0800\n" +"POT-Creation-Date: 2010-02-07 18:32+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1309,21 +1309,21 @@ msgstr "" msgid "Debugger stopped.\n" msgstr "" -#: ../libpcsxcore/misc.c:395 +#: ../libpcsxcore/misc.c:392 #, c-format msgid "Error opening file: %s.\n" msgstr "" -#: ../libpcsxcore/misc.c:435 +#: ../libpcsxcore/misc.c:432 #, c-format msgid "Unknown CPE opcode %02x at position %08x.\n" msgstr "" -#: ../libpcsxcore/misc.c:442 +#: ../libpcsxcore/misc.c:439 msgid "COFF files not supported.\n" msgstr "" -#: ../libpcsxcore/misc.c:446 +#: ../libpcsxcore/misc.c:443 msgid "This file does not appear to be a valid PSX file.\n" msgstr "" @@ -1396,17 +1396,17 @@ msgstr "" msgid "Plugins loaded.\n" msgstr "" -#: ../libpcsxcore/ppf.c:206 +#: ../libpcsxcore/ppf.c:207 #, c-format msgid "Invalid PPF patch: %s.\n" msgstr "" -#: ../libpcsxcore/ppf.c:282 +#: ../libpcsxcore/ppf.c:283 #, c-format msgid "Unsupported PPF version (%d).\n" msgstr "" -#: ../libpcsxcore/ppf.c:321 +#: ../libpcsxcore/ppf.c:322 #, c-format msgid "Loaded PPF %d.0 patch: %s.\n" msgstr "" @@ -1420,7 +1420,7 @@ msgstr "" msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n" msgstr "" -#: ../libpcsxcore/r3000a.c:34 +#: ../libpcsxcore/r3000a.c:35 #, c-format msgid "Running PCSX Version %s (%s).\n" msgstr "" @@ -2063,10 +2063,18 @@ msgid "OSS Sound" msgstr "" #: ../plugins/dfsound/spu.c:44 +msgid "PulseAudio Simple Sound" +msgstr "" + +#: ../plugins/dfsound/spu.c:46 +msgid "PulseAudio Sound" +msgstr "" + +#: ../plugins/dfsound/spu.c:48 msgid "NULL Sound" msgstr "" -#: ../plugins/dfsound/spu.c:47 +#: ../plugins/dfsound/spu.c:51 msgid "" "P.E.Op.S. OSS Driver V1.7\n" "Coded by Pete Bernert and the P.E.Op.S. team\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 72f71458..889b61e1 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pcsx-df\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 16:38+0800\n" +"POT-Creation-Date: 2010-02-07 18:32+0800\n" "PO-Revision-Date: 2009-11-28 23:57+0700\n" "Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n" "Language-Team: PoBRE <romhackers@gmail.com>\n" @@ -1337,21 +1337,21 @@ msgstr "" msgid "Debugger stopped.\n" msgstr "" -#: ../libpcsxcore/misc.c:395 +#: ../libpcsxcore/misc.c:392 #, c-format msgid "Error opening file: %s.\n" msgstr "Erro ao abrir o arquivo \"%s\"!\n" -#: ../libpcsxcore/misc.c:435 +#: ../libpcsxcore/misc.c:432 #, c-format msgid "Unknown CPE opcode %02x at position %08x.\n" msgstr "Código operacional CPE %02x desconhecido, na posição %08x.\n" -#: ../libpcsxcore/misc.c:442 +#: ../libpcsxcore/misc.c:439 msgid "COFF files not supported.\n" msgstr "Arquivos COFF não são suportados!\n" -#: ../libpcsxcore/misc.c:446 +#: ../libpcsxcore/misc.c:443 msgid "This file does not appear to be a valid PSX file.\n" msgstr "Esse arquivo não parece ser um arquivo válido de PSX!\n" @@ -1424,17 +1424,17 @@ msgstr "Erro ao iniciar a extensão de jogo em rede \"%d\"!" msgid "Plugins loaded.\n" msgstr "Extensões carregadas.\n" -#: ../libpcsxcore/ppf.c:206 +#: ../libpcsxcore/ppf.c:207 #, c-format msgid "Invalid PPF patch: %s.\n" msgstr "" -#: ../libpcsxcore/ppf.c:282 +#: ../libpcsxcore/ppf.c:283 #, c-format msgid "Unsupported PPF version (%d).\n" msgstr "" -#: ../libpcsxcore/ppf.c:321 +#: ../libpcsxcore/ppf.c:322 #, fuzzy, c-format msgid "Loaded PPF %d.0 patch: %s.\n" msgstr "Arquivo de estado \"%s\" carregado." @@ -1448,7 +1448,7 @@ msgstr "Erro ao alocar memória!" msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n" msgstr "Não conseguiu abrir a BIOS\"%s\". Usando BIOS HLE!\n" -#: ../libpcsxcore/r3000a.c:34 +#: ../libpcsxcore/r3000a.c:35 #, c-format msgid "Running PCSX Version %s (%s).\n" msgstr "Rodando o PCSX Versão %s (%s).\n" @@ -2147,10 +2147,18 @@ msgid "OSS Sound" msgstr "Sistema OSS" #: ../plugins/dfsound/spu.c:44 +msgid "PulseAudio Simple Sound" +msgstr "" + +#: ../plugins/dfsound/spu.c:46 +msgid "PulseAudio Sound" +msgstr "" + +#: ../plugins/dfsound/spu.c:48 msgid "NULL Sound" msgstr "Sem som" -#: ../plugins/dfsound/spu.c:47 +#: ../plugins/dfsound/spu.c:51 msgid "" "P.E.Op.S. OSS Driver V1.7\n" "Coded by Pete Bernert and the P.E.Op.S. team\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index 7badfdec..85cbee52 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pcsxr 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 16:38+0800\n" -"PO-Revision-Date: 2010-01-23 16:39+0700\n" +"POT-Creation-Date: 2010-02-07 18:32+0800\n" +"PO-Revision-Date: 2010-02-07 18:32+0700\n" "Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n" "Language-Team: Simplified Chinese <whistler@openoffice.org>\n" "MIME-Version: 1.0\n" @@ -1434,21 +1434,21 @@ msgstr "调试器已启动。\n" msgid "Debugger stopped.\n" msgstr "调试器已停止。\n" -#: ../libpcsxcore/misc.c:395 +#: ../libpcsxcore/misc.c:392 #, c-format msgid "Error opening file: %s.\n" msgstr "打开文件错误: %s。\n" -#: ../libpcsxcore/misc.c:435 +#: ../libpcsxcore/misc.c:432 #, c-format msgid "Unknown CPE opcode %02x at position %08x.\n" msgstr "未知 CPE 指令码 %02x 位于 %08x。\n" -#: ../libpcsxcore/misc.c:442 +#: ../libpcsxcore/misc.c:439 msgid "COFF files not supported.\n" msgstr "COFF 文件尚未支持。\n" -#: ../libpcsxcore/misc.c:446 +#: ../libpcsxcore/misc.c:443 msgid "This file does not appear to be a valid PSX file.\n" msgstr "此文件不是一个合法的 PSX 文件。\n" @@ -1521,17 +1521,17 @@ msgstr "联网游戏插件初始化错误: %d" msgid "Plugins loaded.\n" msgstr "插件已加载。\n" -#: ../libpcsxcore/ppf.c:206 +#: ../libpcsxcore/ppf.c:207 #, c-format msgid "Invalid PPF patch: %s.\n" msgstr "非法 PPF 补丁: %s。\n" -#: ../libpcsxcore/ppf.c:282 +#: ../libpcsxcore/ppf.c:283 #, c-format msgid "Unsupported PPF version (%d).\n" msgstr "不支持的 PPF 补丁版本 (%d)。\n" -#: ../libpcsxcore/ppf.c:321 +#: ../libpcsxcore/ppf.c:322 #, c-format msgid "Loaded PPF %d.0 patch: %s.\n" msgstr "已加载 PPF %d.0 补丁文件: %s。\n" @@ -1545,7 +1545,7 @@ msgstr "分配内存错误!" msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n" msgstr "无法打开 BIOS: \"%s\"。使用内部 HLE Bios。\n" -#: ../libpcsxcore/r3000a.c:34 +#: ../libpcsxcore/r3000a.c:35 #, c-format msgid "Running PCSX Version %s (%s).\n" msgstr "正在运行 PCSX 版本 %s (%s)。\n" @@ -2259,10 +2259,18 @@ msgid "OSS Sound" msgstr "OSS 声音" #: ../plugins/dfsound/spu.c:44 +msgid "PulseAudio Simple Sound" +msgstr "PulseAudio Simple 声音" + +#: ../plugins/dfsound/spu.c:46 +msgid "PulseAudio Sound" +msgstr "PulseAudio 声音" + +#: ../plugins/dfsound/spu.c:48 msgid "NULL Sound" msgstr "空声音" -#: ../plugins/dfsound/spu.c:47 +#: ../plugins/dfsound/spu.c:51 msgid "" "P.E.Op.S. OSS Driver V1.7\n" "Coded by Pete Bernert and the P.E.Op.S. team\n" diff --git a/po/zh_TW.po b/po/zh_TW.po index d68c244c..2b7d783a 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pcsxr 1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 16:38+0800\n" -"PO-Revision-Date: 2010-01-23 16:40+0700\n" +"POT-Creation-Date: 2010-02-07 18:32+0800\n" +"PO-Revision-Date: 2010-02-07 18:33+0700\n" "Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n" "Language-Team: Traditional Chinese <whistler@openoffice.org>\n" "MIME-Version: 1.0\n" @@ -1434,21 +1434,21 @@ msgstr "調試器已啟動。\n" msgid "Debugger stopped.\n" msgstr "調試器已停止。\n" -#: ../libpcsxcore/misc.c:395 +#: ../libpcsxcore/misc.c:392 #, c-format msgid "Error opening file: %s.\n" msgstr "開啟檔案錯誤: %s.\n" -#: ../libpcsxcore/misc.c:435 +#: ../libpcsxcore/misc.c:432 #, c-format msgid "Unknown CPE opcode %02x at position %08x.\n" msgstr "未知 CPE opcode %02x 位於 %08x.\n" -#: ../libpcsxcore/misc.c:442 +#: ../libpcsxcore/misc.c:439 msgid "COFF files not supported.\n" msgstr "COFF 檔案不被支援.\n" -#: ../libpcsxcore/misc.c:446 +#: ../libpcsxcore/misc.c:443 msgid "This file does not appear to be a valid PSX file.\n" msgstr "此檔案不是一個合法的 PSX 檔案。\n" @@ -1521,17 +1521,17 @@ msgstr "聯網遊戲外掛初始化錯誤: %d" msgid "Plugins loaded.\n" msgstr "外掛已加載。\n" -#: ../libpcsxcore/ppf.c:206 +#: ../libpcsxcore/ppf.c:207 #, c-format msgid "Invalid PPF patch: %s.\n" msgstr "無效 PPF 補丁: %s。\n" -#: ../libpcsxcore/ppf.c:282 +#: ../libpcsxcore/ppf.c:283 #, c-format msgid "Unsupported PPF version (%d).\n" msgstr "不支援的 PPF 補丁版本 (%d)。\n" -#: ../libpcsxcore/ppf.c:321 +#: ../libpcsxcore/ppf.c:322 #, c-format msgid "Loaded PPF %d.0 patch: %s.\n" msgstr "已加載 PPF %d.0 補丁: %s。\n" @@ -1545,7 +1545,7 @@ msgstr "分配內存錯誤!" msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n" msgstr "無法開啟 BIOS: \"%s\"。使用內部 HLE Bios。\n" -#: ../libpcsxcore/r3000a.c:34 +#: ../libpcsxcore/r3000a.c:35 #, c-format msgid "Running PCSX Version %s (%s).\n" msgstr "PCSX 版本 %s (%s) 執行中。\n" @@ -2259,10 +2259,18 @@ msgid "OSS Sound" msgstr "OSS 聲音" #: ../plugins/dfsound/spu.c:44 +msgid "PulseAudio Simple Sound" +msgstr "PulseAudio Simple 聲音" + +#: ../plugins/dfsound/spu.c:46 +msgid "PulseAudio Sound" +msgstr "PulseAudio 聲音" + +#: ../plugins/dfsound/spu.c:48 msgid "NULL Sound" msgstr "NULL 聲音" -#: ../plugins/dfsound/spu.c:47 +#: ../plugins/dfsound/spu.c:51 msgid "" "P.E.Op.S. OSS Driver V1.7\n" "Coded by Pete Bernert and the P.E.Op.S. team\n" |
