Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libSDL
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
libSDL
Commits
6053ae52
Commit
6053ae52
authored
Feb 28, 2011
by
Sam Lantinga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OSF isn't supported anymore.
parent
303287a1
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
2 additions
and
465 deletions
+2
-465
configure
configure
+1
-96
configure.in
configure.in
+1
-53
SDL_config.h.in
include/SDL_config.h.in
+0
-1
SDL_audio.c
src/audio/SDL_audio.c
+0
-4
SDL_mmeaudio.c
src/audio/mme/SDL_mmeaudio.c
+0
-260
SDL_mmeaudio.h
src/audio/mme/SDL_mmeaudio.h
+0
-51
No files found.
configure
View file @
6053ae52
...
@@ -21628,87 +21628,6 @@ _ACEOF
...
@@ -21628,87 +21628,6 @@ _ACEOF
fi
fi
}
}
CheckMME
()
{
case
$ARCH
in
osf
)
;;
*
)
return
;;
esac
if
test
x
$enable_audio
=
xyes
;
then
{
echo
"
$as_me
:
$LINENO
: checking for MME audio support"
>
&5
echo
$ECHO_N
"checking for MME audio support...
$ECHO_C
"
>
&6
;
}
MME_CFLAGS
=
"-I/usr/include/mme"
MME_LIBS
=
"-lmme"
have_mme
=
no
save_CFLAGS
=
"
$CFLAGS
"
CFLAGS
=
"
$CFLAGS
$MME_CFLAGS
"
cat
>
conftest.
$ac_ext
<<
_ACEOF
/* confdefs.h. */
_ACEOF
cat
confdefs.h
>>
conftest.
$ac_ext
cat
>>
conftest.
$ac_ext
<<
_ACEOF
/* end confdefs.h. */
#include <mme_api.h>
int
main ()
{
HWAVEOUT sound;
;
return 0;
}
_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
"echo
\"\$
as_me:
$LINENO
:
$ac_try_echo
\"
"
)
>
&5
(
eval
"
$ac_compile
"
)
2>conftest.er1
ac_status
=
$?
grep
-v
'^ *+'
conftest.er1
>
conftest.err
rm
-f
conftest.er1
cat
conftest.err
>
&5
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
have_mme
=
yes
else
echo
"
$as_me
: failed program was:"
>
&5
sed
's/^/| /'
conftest.
$ac_ext
>
&5
fi
rm
-f
core conftest.err conftest.
$ac_objext
conftest.
$ac_ext
CFLAGS
=
"
$save_CFLAGS
"
{
echo
"
$as_me
:
$LINENO
: result:
$have_mme
"
>
&5
echo
"
${
ECHO_T
}
$have_mme
"
>
&6
;
}
# Set up files for the audio library
if
test
x
$have_mme
=
xyes
;
then
cat
>>
confdefs.h
<<
\
_ACEOF
#define SDL_AUDIO_DRIVER_MMEAUDIO 1
_ACEOF
SOURCES
=
"
$SOURCES
$srcdir
/src/audio/mme/*.c"
EXTRA_CFLAGS
=
"
$EXTRA_CFLAGS
$MME_CFLAGS
"
EXTRA_LDFLAGS
=
"
$EXTRA_LDFLAGS
$MME_LIBS
"
have_audio
=
yes
fi
fi
}
CheckESD
()
CheckESD
()
{
{
# Check whether --enable-esd was given.
# Check whether --enable-esd was given.
...
@@ -24020,10 +23939,6 @@ fi
...
@@ -24020,10 +23939,6 @@ fi
xss_lib
=
'/usr/X11R6/lib/libXss.1.dylib'
xss_lib
=
'/usr/X11R6/lib/libXss.1.dylib'
xvidmode_lib
=
'/usr/X11R6/lib/libXxf86vm.1.dylib'
xvidmode_lib
=
'/usr/X11R6/lib/libXxf86vm.1.dylib'
;;
;;
*
-
*
-osf
*
)
x11_lib
=
'libX11.so'
x11ext_lib
=
'libXext.so'
;;
*
)
*
)
x11_lib
=
`
find_lib
"libX11.so.*"
"
$X_LIBS
-L/usr/X11/
$base_libdir
-L/usr/X11R6/
$base_libdir
"
|
sed
's/.*\/\(.*\)/\1/; q'
`
x11_lib
=
`
find_lib
"libX11.so.*"
"
$X_LIBS
-L/usr/X11/
$base_libdir
-L/usr/X11R6/
$base_libdir
"
|
sed
's/.*\/\(.*\)/\1/; q'
`
x11ext_lib
=
`
find_lib
"libXext.so.*"
"
$X_LIBS
-L/usr/X11/
$base_libdir
-L/usr/X11R6/
$base_libdir
"
|
sed
's/.*\/\(.*\)/\1/; q'
`
x11ext_lib
=
`
find_lib
"libXext.so.*"
"
$X_LIBS
-L/usr/X11/
$base_libdir
-L/usr/X11R6/
$base_libdir
"
|
sed
's/.*\/\(.*\)/\1/; q'
`
...
@@ -25766,14 +25681,6 @@ fi
...
@@ -25766,14 +25681,6 @@ fi
pthread_cflags
=
"-D_REENTRANT"
pthread_cflags
=
"-D_REENTRANT"
pthread_lib
=
"-L/usr/lib -lpthread"
pthread_lib
=
"-L/usr/lib -lpthread"
;;
;;
*
-
*
-osf
*
)
pthread_cflags
=
"-D_REENTRANT"
if
test
x
$ac_cv_c_compiler_gnu
=
xyes
;
then
pthread_lib
=
"-lpthread -lrt"
else
pthread_lib
=
"-lpthread -lexc -lrt"
fi
;;
*
)
*
)
pthread_cflags
=
"-D_REENTRANT"
pthread_cflags
=
"-D_REENTRANT"
pthread_lib
=
"-lpthread"
pthread_lib
=
"-lpthread"
...
@@ -28242,7 +28149,7 @@ fi
...
@@ -28242,7 +28149,7 @@ fi
}
}
case
"
$host
"
in
case
"
$host
"
in
*
-
*
-linux
*
|
*
-
*
-uclinux
*
|
*
-
*
-gnu
*
|
*
-
*
-k
*
bsd
*
-gnu
|
*
-
*
-bsdi
*
|
*
-
*
-freebsd
*
|
*
-
*
-dragonfly
*
|
*
-
*
-netbsd
*
|
*
-
*
-openbsd
*
|
*
-
*
-sysv5
*
|
*
-
*
-solaris
*
|
*
-
*
-hpux
*
|
*
-
*
-aix
*
|
*
-
*
-
osf
*
|
*
-
*
-
minix
*
)
*
-
*
-linux
*
|
*
-
*
-uclinux
*
|
*
-
*
-gnu
*
|
*
-
*
-k
*
bsd
*
-gnu
|
*
-
*
-bsdi
*
|
*
-
*
-freebsd
*
|
*
-
*
-dragonfly
*
|
*
-
*
-netbsd
*
|
*
-
*
-openbsd
*
|
*
-
*
-sysv5
*
|
*
-
*
-solaris
*
|
*
-
*
-hpux
*
|
*
-
*
-aix
*
|
*
-
*
-minix
*
)
case
"
$host
"
in
case
"
$host
"
in
*
-
*
-linux
*
)
ARCH
=
linux
;;
*
-
*
-linux
*
)
ARCH
=
linux
;;
*
-
*
-uclinux
*
)
ARCH
=
linux
;;
*
-
*
-uclinux
*
)
ARCH
=
linux
;;
...
@@ -28259,7 +28166,6 @@ case "$host" in
...
@@ -28259,7 +28166,6 @@ case "$host" in
*
-
*
-solaris
*
)
ARCH
=
solaris
;;
*
-
*
-solaris
*
)
ARCH
=
solaris
;;
*
-
*
-hpux
*
)
ARCH
=
hpux
;;
*
-
*
-hpux
*
)
ARCH
=
hpux
;;
*
-
*
-aix
*
)
ARCH
=
aix
;;
*
-
*
-aix
*
)
ARCH
=
aix
;;
*
-
*
-osf
*
)
ARCH
=
osf
;;
*
-
*
-minix
*
)
ARCH
=
minix
;;
*
-
*
-minix
*
)
ARCH
=
minix
;;
esac
esac
CheckVisibilityHidden
CheckVisibilityHidden
...
@@ -28268,7 +28174,6 @@ case "$host" in
...
@@ -28268,7 +28174,6 @@ case "$host" in
CheckDummyAudio
CheckDummyAudio
CheckDLOPEN
CheckDLOPEN
CheckOSS
CheckOSS
CheckMME
CheckALSA
CheckALSA
CheckPulseAudio
CheckPulseAudio
CheckARTSC
CheckARTSC
...
...
configure.in
View file @
6053ae52
...
@@ -758,44 +758,6 @@ AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[de
...
@@ -758,44 +758,6 @@ AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[de
fi
fi
}
}
dnl Check whether we want to use Tru64 UNIX native audio or not
CheckMME()
{
dnl Make sure we are running on an Tru64 UNIX
case $ARCH in
osf)
;;
*)
return
;;
esac
if test x$enable_audio = xyes; then
AC_MSG_CHECKING(for MME audio support)
MME_CFLAGS="-I/usr/include/mme"
MME_LIBS="-lmme"
have_mme=no
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $MME_CFLAGS"
AC_TRY_COMPILE([
#include <mme_api.h>
],[
HWAVEOUT sound;
],[
have_mme=yes
])
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT($have_mme)
# Set up files for the audio library
if test x$have_mme = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_MMEAUDIO)
SOURCES="$SOURCES $srcdir/src/audio/mme/*.c"
EXTRA_CFLAGS="$EXTRA_CFLAGS $MME_CFLAGS"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MME_LIBS"
have_audio=yes
fi
fi
}
dnl Find the ESD includes and libraries
dnl Find the ESD includes and libraries
CheckESD()
CheckESD()
{
{
...
@@ -1072,10 +1034,6 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma
...
@@ -1072,10 +1034,6 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=ma
xss_lib='/usr/X11R6/lib/libXss.1.dylib'
xss_lib='/usr/X11R6/lib/libXss.1.dylib'
xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
;;
;;
*-*-osf*)
x11_lib='libX11.so'
x11ext_lib='libXext.so'
;;
*)
*)
x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
...
@@ -1619,14 +1577,6 @@ AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]])
...
@@ -1619,14 +1577,6 @@ AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]])
pthread_cflags="-D_REENTRANT"
pthread_cflags="-D_REENTRANT"
pthread_lib="-L/usr/lib -lpthread"
pthread_lib="-L/usr/lib -lpthread"
;;
;;
*-*-osf*)
pthread_cflags="-D_REENTRANT"
if test x$ac_cv_prog_gcc = xyes; then
pthread_lib="-lpthread -lrt"
else
pthread_lib="-lpthread -lexc -lrt"
fi
;;
*)
*)
pthread_cflags="-D_REENTRANT"
pthread_cflags="-D_REENTRANT"
pthread_lib="-lpthread"
pthread_lib="-lpthread"
...
@@ -1986,7 +1936,7 @@ AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]
...
@@ -1986,7 +1936,7 @@ AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]
dnl Set up the configuration based on the host platform!
dnl Set up the configuration based on the host platform!
case "$host" in
case "$host" in
*-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-
osf*|*-*-
minix*)
*-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
case "$host" in
case "$host" in
*-*-linux*) ARCH=linux ;;
*-*-linux*) ARCH=linux ;;
*-*-uclinux*) ARCH=linux ;;
*-*-uclinux*) ARCH=linux ;;
...
@@ -2003,7 +1953,6 @@ case "$host" in
...
@@ -2003,7 +1953,6 @@ case "$host" in
*-*-solaris*) ARCH=solaris ;;
*-*-solaris*) ARCH=solaris ;;
*-*-hpux*) ARCH=hpux ;;
*-*-hpux*) ARCH=hpux ;;
*-*-aix*) ARCH=aix ;;
*-*-aix*) ARCH=aix ;;
*-*-osf*) ARCH=osf ;;
*-*-minix*) ARCH=minix ;;
*-*-minix*) ARCH=minix ;;
esac
esac
CheckVisibilityHidden
CheckVisibilityHidden
...
@@ -2012,7 +1961,6 @@ case "$host" in
...
@@ -2012,7 +1961,6 @@ case "$host" in
CheckDummyAudio
CheckDummyAudio
CheckDLOPEN
CheckDLOPEN
CheckOSS
CheckOSS
CheckMME
CheckALSA
CheckALSA
CheckPulseAudio
CheckPulseAudio
CheckARTSC
CheckARTSC
...
...
include/SDL_config.h.in
View file @
6053ae52
...
@@ -200,7 +200,6 @@
...
@@ -200,7 +200,6 @@
#undef SDL_AUDIO_DRIVER_DSOUND
#undef SDL_AUDIO_DRIVER_DSOUND
#undef SDL_AUDIO_DRIVER_ESD
#undef SDL_AUDIO_DRIVER_ESD
#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
#undef SDL_AUDIO_DRIVER_MMEAUDIO
#undef SDL_AUDIO_DRIVER_NAS
#undef SDL_AUDIO_DRIVER_NAS
#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
#undef SDL_AUDIO_DRIVER_NDS
#undef SDL_AUDIO_DRIVER_NDS
...
...
src/audio/SDL_audio.c
View file @
6053ae52
...
@@ -64,7 +64,6 @@ extern AudioBootStrap SNDMGR_bootstrap;
...
@@ -64,7 +64,6 @@ extern AudioBootStrap SNDMGR_bootstrap;
extern
AudioBootStrap
DISKAUD_bootstrap
;
extern
AudioBootStrap
DISKAUD_bootstrap
;
extern
AudioBootStrap
DUMMYAUD_bootstrap
;
extern
AudioBootStrap
DUMMYAUD_bootstrap
;
extern
AudioBootStrap
DCAUD_bootstrap
;
extern
AudioBootStrap
DCAUD_bootstrap
;
extern
AudioBootStrap
MMEAUDIO_bootstrap
;
extern
AudioBootStrap
DART_bootstrap
;
extern
AudioBootStrap
DART_bootstrap
;
extern
AudioBootStrap
NDSAUD_bootstrap
;
extern
AudioBootStrap
NDSAUD_bootstrap
;
extern
AudioBootStrap
FUSIONSOUND_bootstrap
;
extern
AudioBootStrap
FUSIONSOUND_bootstrap
;
...
@@ -125,9 +124,6 @@ static const AudioBootStrap *const bootstrap[] = {
...
@@ -125,9 +124,6 @@ static const AudioBootStrap *const bootstrap[] = {
#if SDL_AUDIO_DRIVER_DUMMY
#if SDL_AUDIO_DRIVER_DUMMY
&
DUMMYAUD_bootstrap
,
&
DUMMYAUD_bootstrap
,
#endif
#endif
#if SDL_AUDIO_DRIVER_MMEAUDIO
&
MMEAUDIO_bootstrap
,
#endif
#if SDL_AUDIO_DRIVER_NDS
#if SDL_AUDIO_DRIVER_NDS
&
NDSAUD_bootstrap
,
&
NDSAUD_bootstrap
,
#endif
#endif
...
...
src/audio/mme/SDL_mmeaudio.c
deleted
100644 → 0
View file @
303287a1
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#include "SDL_config.h"
/* Tru64 UNIX MME support */
#include <mme_api.h>
#include "SDL_timer.h"
#include "SDL_audio.h"
#include "../SDL_audio_c.h"
#include "SDL_mmeaudio.h"
static
BOOL
inUse
[
NUM_BUFFERS
];
static
void
SetMMerror
(
char
*
function
,
MMRESULT
code
)
{
int
len
;
char
errbuf
[
MAXERRORLENGTH
];
SDL_snprintf
(
errbuf
,
SDL_arraysize
(
errbuf
),
"%s: "
,
function
);
len
=
SDL_strlen
(
errbuf
);
waveOutGetErrorText
(
code
,
errbuf
+
len
,
MAXERRORLENGTH
-
len
);
SDL_SetError
(
"%s"
,
errbuf
);
}
static
void
CALLBACK
MME_Callback
(
HWAVEOUT
hwo
,
UINT
uMsg
,
DWORD
dwInstance
,
LPARAM
dwParam1
,
LPARAM
dwParam2
)
{
WAVEHDR
*
wp
=
(
WAVEHDR
*
)
dwParam1
;
if
(
uMsg
==
WOM_DONE
)
inUse
[
wp
->
dwUser
]
=
FALSE
;
}
static
int
MME_OpenDevice
(
_THIS
,
const
char
*
devname
,
int
iscapture
)
{
int
valid_format
=
0
;
MMRESULT
result
;
Uint8
*
mixbuf
=
NULL
;
int
i
;
/* Initialize all variables that we clean on shutdown */
this
->
hidden
=
(
struct
SDL_PrivateAudioData
*
)
SDL_malloc
((
sizeof
*
this
->
hidden
));
if
(
this
->
hidden
==
NULL
)
{
SDL_OutOfMemory
();
return
0
;
}
SDL_memset
(
this
->
hidden
,
0
,
(
sizeof
*
this
->
hidden
));
/* Set basic WAVE format parameters */
this
->
hidden
->
shm
=
mmeAllocMem
(
sizeof
(
*
this
->
hidden
->
shm
));
if
(
this
->
hidden
->
shm
==
NULL
)
{
MME_CloseDevice
(
this
);
SDL_OutOfMemory
();
return
0
;
}
SDL_memset
(
this
->
hidden
->
shm
,
'\0'
,
sizeof
(
*
this
->
hidden
->
shm
));
this
->
hidden
->
shm
->
sound
=
0
;
this
->
hidden
->
shm
->
wFmt
.
wf
.
wFormatTag
=
WAVE_FORMAT_PCM
;
/* Determine the audio parameters from the AudioSpec */
/* Try for a closest match on audio format */
for
(
test_format
=
SDL_FirstAudioFormat
(
this
->
spec
.
format
);
!
valid_format
&&
test_format
;)
{
valid_format
=
1
;
switch
(
test_format
)
{
case
AUDIO_U8
:
case
AUDIO_S16
:
case
AUDIO_S32
:
break
;
default:
valid_format
=
0
;
test_format
=
SDL_NextAudioFormat
();
}
}
if
(
!
valid_format
)
{
MME_CloseDevice
(
this
);
SDL_SetError
(
"Unsupported audio format"
);
return
0
;
}
this
->
spec
.
format
=
test_format
;
this
->
hidden
->
shm
->
wFmt
.
wBitsPerSample
=
SDL_AUDIO_BITSIZE
(
test_format
);
/* !!! FIXME: Can this handle more than stereo? */
this
->
hidden
->
shm
->
wFmt
.
wf
.
nChannels
=
this
->
spec
.
channels
;
this
->
hidden
->
shm
->
wFmt
.
wf
.
nSamplesPerSec
=
this
->
spec
.
freq
;
this
->
hidden
->
shm
->
wFmt
.
wf
.
nBlockAlign
=
this
->
hidden
->
shm
->
wFmt
.
wf
.
nChannels
*
this
->
hidden
->
shm
->
wFmt
.
wBitsPerSample
/
8
;
this
->
hidden
->
shm
->
wFmt
.
wf
.
nAvgBytesPerSec
=
this
->
hidden
->
shm
->
wFmt
.
wf
.
nSamplesPerSec
*
this
->
hidden
->
shm
->
wFmt
.
wf
.
nBlockAlign
;
/* Check the buffer size -- minimum of 1/4 second (word aligned) */
if
(
this
->
spec
.
samples
<
(
this
->
spec
.
freq
/
4
))
this
->
spec
.
samples
=
((
this
->
spec
.
freq
/
4
)
+
3
)
&
~
3
;
/* Update the fragment size as size in bytes */
SDL_CalculateAudioSpec
(
&
this
->
spec
);
/* Open the audio device */
result
=
waveOutOpen
(
&
(
this
->
hidden
->
shm
->
sound
),
WAVE_MAPPER
,
&
(
this
->
hidden
->
shm
->
wFmt
.
wf
),
MME_Callback
,
NULL
,
(
CALLBACK_FUNCTION
|
WAVE_OPEN_SHAREABLE
));
if
(
result
!=
MMSYSERR_NOERROR
)
{
MME_CloseDevice
(
this
);
SetMMerror
(
"waveOutOpen()"
,
result
);
return
0
;
}
/* Create the sound buffers */
mixbuf
=
(
Uint8
*
)
mmeAllocBuffer
(
NUM_BUFFERS
*
(
this
->
spec
.
size
));
if
(
mixbuf
==
NULL
)
{
MME_CloseDevice
(
this
);
SDL_OutOfMemory
();
return
0
;
}
this
->
hidden
->
mixbuf
=
mixbuf
;
for
(
i
=
0
;
i
<
NUM_BUFFERS
;
i
++
)
{
this
->
hidden
->
shm
->
wHdr
[
i
].
lpData
=
&
mixbuf
[
i
*
(
this
->
spec
.
size
)];
this
->
hidden
->
shm
->
wHdr
[
i
].
dwBufferLength
=
this
->
spec
.
size
;
this
->
hidden
->
shm
->
wHdr
[
i
].
dwFlags
=
0
;
this
->
hidden
->
shm
->
wHdr
[
i
].
dwUser
=
i
;
this
->
hidden
->
shm
->
wHdr
[
i
].
dwLoops
=
0
;
/* loop control counter */
this
->
hidden
->
shm
->
wHdr
[
i
].
lpNext
=
NULL
;
/* reserved for driver */
this
->
hidden
->
shm
->
wHdr
[
i
].
reserved
=
0
;
inUse
[
i
]
=
FALSE
;
}
this
->
hidden
->
next_buffer
=
0
;
return
1
;
}
static
void
MME_WaitDevice
(
_THIS
)
{
while
(
inUse
[
this
->
hidden
->
next_buffer
])
{
mmeWaitForCallbacks
();
mmeProcessCallbacks
();
}
}
static
Uint8
*
MME_GetDeviceBuf
(
_THIS
)
{
void
*
retval
=
this
->
hidden
->
shm
->
wHdr
[
this
->
hidden
->
next_buffer
].
lpData
;
inUse
[
this
->
hidden
->
next_buffer
]
=
TRUE
;
return
(
Uint8
*
)
retval
;
}
static
void
MME_PlayDevice
(
_THIS
)
{
/* Queue it up */
waveOutWrite
(
this
->
hidden
->
shm
->
sound
,
&
(
this
->
hidden
->
shm
->
wHdr
[
this
->
hidden
->
next_buffer
]),
sizeof
(
WAVEHDR
));
this
->
hidden
->
next_buffer
=
(
this
->
hidden
->
next_buffer
+
1
)
%
NUM_BUFFERS
;
}
static
void
MME_WaitDone
(
_THIS
)
{
MMRESULT
result
;
int
i
;
if
(
this
->
hidden
->
shm
->
sound
)
{
for
(
i
=
0
;
i
<
NUM_BUFFERS
;
i
++
)
while
(
inUse
[
i
])
{
mmeWaitForCallbacks
();
mmeProcessCallbacks
();
}
result
=
waveOutReset
(
this
->
hidden
->
shm
->
sound
);
if
(
result
!=
MMSYSERR_NOERROR
)
SetMMerror
(
"waveOutReset()"
,
result
);
mmeProcessCallbacks
();
}
}
static
void
MME_CloseDevice
(
_THIS
)
{
if
(
this
->
hidden
!=
NULL
)
{
MMRESULT
result
;
if
(
this
->
hidden
->
mixbuf
)
{
result
=
mmeFreeBuffer
(
this
->
hidden
->
mixbuf
);
if
(
result
!=
MMSYSERR_NOERROR
)
SetMMerror
(
"mmeFreeBuffer"
,
result
);
this
->
hidden
->
mixbuf
=
NULL
;
}
if
(
this
->
hidden
->
shm
)
{
if
(
this
->
hidden
->
shm
->
sound
)
{
result
=
waveOutClose
(
this
->
hidden
->
shm
->
sound
);
if
(
result
!=
MMSYSERR_NOERROR
)
SetMMerror
(
"waveOutClose()"
,
result
);
mmeProcessCallbacks
();
}
result
=
mmeFreeMem
(
this
->
hidden
->
shm
);
if
(
result
!=
MMSYSERR_NOERROR
)
SetMMerror
(
"mmeFreeMem()"
,
result
);
this
->
hidden
->
shm
=
NULL
;
}
SDL_free
(
this
->
hidden
);
this
->
hidden
=
NULL
;
}
}
static
int
MME_Init
(
SDL_AudioDriverImpl
*
impl
)
{
/* Set the function pointers */
impl
->
OpenDevice
=
MME_OpenDevice
;
impl
->
WaitDevice
=
MME_WaitDevice
;
impl
->
WaitDone
=
MME_WaitDone
;
impl
->
PlayDevice
=
MME_PlayDevice
;
impl
->
GetDeviceBuf
=
MME_GetDeviceBuf
;
impl
->
CloseDevice
=
MME_CloseDevice
;
impl
->
OnlyHasDefaultOutputDevice
=
1
;
return
1
;
/* this audio target is available. */
}
/* !!! FIXME: Windows "windib" driver is called waveout, too */
AudioBootStrap
MMEAUDIO_bootstrap
=
{
"waveout"
,
"Tru64 MME WaveOut"
,
MME_Init
,
0
};
/* vi: set ts=4 sw=4 expandtab: */
src/audio/mme/SDL_mmeaudio.h
deleted
100644 → 0
View file @
303287a1
/*
SDL - Simple DirectMedia Layer
Copyright (C) 1997-2011 Sam Lantinga
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
*/
#include "SDL_config.h"
/* Allow access to a raw mixing buffer */
#ifndef _SDL_mmeaudio_h
#define _SDL_mmeaudio_h
#include "../SDL_sysaudio.h"
/* Hidden "this" pointer for the audio functions */
#define _THIS SDL_AudioDevice *this
#define NUM_BUFFERS 2
struct
SharedMem
{
HWAVEOUT
sound
;
WAVEHDR
wHdr
[
NUM_BUFFERS
];
PCMWAVEFORMAT
wFmt
;
};
struct
SDL_PrivateAudioData
{
Uint8
*
mixbuf
;
/* The raw allocated mixing buffer */
struct
SharedMem
*
shm
;
int
next_buffer
;
};
#endif
/* _SDL_mmeaudio_h */
/* vi: set ts=4 sw=4 expandtab: */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment