summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-02-07 10:33:30 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-02-07 10:33:30 +0000
commit7cf18befaa6309a60c5950b5f349204f267f88f4 (patch)
tree045b389bb8924dbf3c5fb28bb1be2e870f6cf241
parent9bf85f976ca1c539788e6d1d60995434eb856812 (diff)
downloadpcsxr-7cf18befaa6309a60c5950b5f349204f267f88f4.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@41219 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--ChangeLog14
-rw-r--r--Makefile.in3
-rwxr-xr-xconfigure577
-rw-r--r--configure.ac25
-rw-r--r--data/Makefile.in3
-rw-r--r--doc/Makefile.in3
-rw-r--r--gui/Makefile.in3
-rw-r--r--libpcsxcore/Makefile.in3
-rw-r--r--pixmaps/Makefile.in3
-rw-r--r--plugins/dfcdrom/Makefile.in3
-rw-r--r--plugins/dfinput/Makefile.in3
-rw-r--r--plugins/dfsound/Makefile.am12
-rw-r--r--plugins/dfsound/Makefile.in31
-rw-r--r--plugins/dfsound/alsa.c2
-rw-r--r--plugins/dfsound/nullsnd.c2
-rw-r--r--plugins/dfsound/pulseaudio.c242
-rw-r--r--plugins/dfsound/pulseaudiosimple.c111
-rw-r--r--plugins/dfsound/spu.c6
-rw-r--r--plugins/dfxvideo/Makefile.in3
-rw-r--r--plugins/peopsxgl/Makefile.in3
-rw-r--r--po/pcsx.pot28
-rw-r--r--po/pt_BR.po28
-rw-r--r--po/zh_CN.po30
-rw-r--r--po/zh_TW.po30
24 files changed, 914 insertions, 254 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ba6b5d9..88260702 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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@
diff --git a/configure b/configure
index 40c9b652..26e3a158 100755
--- a/configure
+++ b/configure
@@ -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"