Implemented an Esound driver.
This commit is contained in:
parent
4fa411fa07
commit
7a15eb9318
26
configure.ac
26
configure.ac
|
@ -725,6 +725,27 @@ then
|
|||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
dnl **** Check for EsounD ****
|
||||
AC_PATH_PROG(ESDCONFIG, esd-config)
|
||||
if test x$ESDCONFIG != x -a x$ESDCONFIG != x'"$ESDCONFIG"';
|
||||
then
|
||||
ESD_CFLAGS=""
|
||||
for i in `$ESDCONFIG --cflags`
|
||||
do
|
||||
case "$i" in
|
||||
-I*) ESD_CFLAGS="$ESD_CFLAGS $i";;
|
||||
esac
|
||||
done
|
||||
ESD_LIBS=`$ESDCONFIG --libs`
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $ESD_CFLAGS"
|
||||
AC_CHECK_LIB(esd,esd_open_sound,
|
||||
[AC_SUBST(ESDLIBS, $ESD_LIBS)
|
||||
AC_SUBST(ESDINCL, $ESD_CFLAGS)
|
||||
AC_DEFINE(HAVE_ESD, 1, [Define if you have EsounD sound server])])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
dnl **** Check for ALSA 1.x ****
|
||||
AC_SUBST(ALSALIBS,"")
|
||||
AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
|
||||
|
@ -1753,6 +1774,7 @@ dlls/winmm/wavemap/Makefile
|
|||
dlls/winmm/winealsa/Makefile
|
||||
dlls/winmm/winearts/Makefile
|
||||
dlls/winmm/wineaudioio/Makefile
|
||||
dlls/winmm/wineesd/Makefile
|
||||
dlls/winmm/winejack/Makefile
|
||||
dlls/winmm/winenas/Makefile
|
||||
dlls/winmm/wineoss/Makefile
|
||||
|
@ -1848,11 +1870,11 @@ fi
|
|||
|
||||
if test -z "$ALSALIBS" -a -z "$ARTSC_LIBS" -a -z "$AUDIOIOLIBS" -a \
|
||||
-z "$ac_cv_lib_soname_jack" -a -z "$NASLIBS" -a \
|
||||
"$ac_cv_c_opensoundsystem" = "no"
|
||||
"$ac_cv_c_opensoundsystem" = "no" -a -z "$ESD_LIBS"
|
||||
then
|
||||
echo "*** No sound system was found. Windows applications will be silent."
|
||||
echo "*** The currently supported sound systems are:"
|
||||
echo "*** ALSA, ARTS, AudioIO, Jack, NAS and OSS"
|
||||
echo "*** ALSA, ARTS, EsounD, AudioIO, Jack, NAS and OSS"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
|
|
@ -164,6 +164,7 @@ BASEDIRS = \
|
|||
winmm/winealsa \
|
||||
winmm/winearts \
|
||||
winmm/wineaudioio \
|
||||
winmm/wineesd \
|
||||
winmm/winejack \
|
||||
winmm/winenas \
|
||||
winmm/wineoss \
|
||||
|
@ -403,6 +404,7 @@ SYMLINKS_SO = \
|
|||
winearts.drv.so \
|
||||
wineaudioio.drv.so \
|
||||
winedos.dll.so \
|
||||
wineesd.drv.so \
|
||||
winejack.drv.so \
|
||||
winemp3.acm.so \
|
||||
winenas.drv.so \
|
||||
|
@ -956,6 +958,9 @@ winedos.dll.so: winedos/winedos.dll.so
|
|||
wprocs.dll.so : winedos.dll.so
|
||||
$(RM) $@ && $(LN_S) winedos.dll.so $@
|
||||
|
||||
wineesd.drv.so: winmm/wineesd/wineesd.drv.so
|
||||
$(RM) $@ && $(LN_S) winmm/wineesd/wineesd.drv.so $@
|
||||
|
||||
winejack.drv.so: winmm/winejack/winejack.drv.so
|
||||
$(RM) $@ && $(LN_S) winmm/winejack/winejack.drv.so $@
|
||||
|
||||
|
@ -1758,6 +1763,7 @@ winmm/winearts/winearts.drv.so: winmm/winearts
|
|||
winmm/wineaudioio/wineaudioio.drv.so: winmm/wineaudioio
|
||||
wined3d/wined3d.dll.so: wined3d
|
||||
winedos/winedos.dll.so: winedos
|
||||
winmm/wineesd/wineesd.drv.so: winmm/wineesd
|
||||
winmm/winejack/winejack.drv.so: winmm/winejack
|
||||
msacm/winemp3/winemp3.acm.so: msacm/winemp3
|
||||
winmm/winenas/winenas.drv.so: winmm/winenas
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Makefile
|
||||
wineesd.drv.dbg.c
|
|
@ -0,0 +1,16 @@
|
|||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = wineesd.drv
|
||||
IMPORTS = winmm user32 kernel32
|
||||
EXTRAINCL = @ESDINCL@
|
||||
EXTRALIBS = @ESDLIBS@ -ldxguid -luuid
|
||||
|
||||
C_SRCS = \
|
||||
esound.c \
|
||||
audio.c
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
### Dependencies:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Wine Driver for EsounD Sound Server
|
||||
* http://www.tux.org/~ricdude/EsounD.html
|
||||
*
|
||||
* Copyright 2004 Zhangrong Huang <hzhr@users.sourceforge.net>
|
||||
*
|
||||
* Code massively copied from Eric Pouech's OSS driver
|
||||
* and Chris Morgan aRts driver
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "mmddk.h"
|
||||
#include "esound.h"
|
||||
|
||||
#ifdef HAVE_ESD
|
||||
static int esd = 0;
|
||||
|
||||
/**************************************************************************
|
||||
* ESD_drvOpen [internal]
|
||||
*/
|
||||
static DWORD ESD_drvOpen(LPSTR str)
|
||||
{
|
||||
if (esd)
|
||||
return 0;
|
||||
|
||||
/* I know, this is ugly, but who cares... */
|
||||
esd = 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
* ESD_drvClose [internal]
|
||||
*/
|
||||
static DWORD ESD_drvClose(DWORD dwDevID)
|
||||
{
|
||||
if (esd) {
|
||||
esd = 0;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* #ifdef HAVE_ESD */
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* DriverProc (WINEESD.@)
|
||||
*/
|
||||
LONG CALLBACK ESD_DriverProc(DWORD dwDevID, HDRVR hDriv, DWORD wMsg,
|
||||
DWORD dwParam1, DWORD dwParam2)
|
||||
{
|
||||
/* EPP TRACE("(%08lX, %04X, %08lX, %08lX, %08lX)\n", */
|
||||
/* EPP dwDevID, hDriv, wMsg, dwParam1, dwParam2); */
|
||||
|
||||
switch(wMsg) {
|
||||
#ifdef HAVE_ESD
|
||||
case DRV_LOAD: if (ESD_WaveInit()<0) return 0;
|
||||
return 1;
|
||||
case DRV_FREE: return ESD_WaveClose();
|
||||
case DRV_OPEN: return ESD_drvOpen((LPSTR)dwParam1);
|
||||
case DRV_CLOSE: return ESD_drvClose(dwDevID);
|
||||
case DRV_ENABLE: return 1;
|
||||
case DRV_DISABLE: return 1;
|
||||
case DRV_QUERYCONFIGURE: return 1;
|
||||
case DRV_CONFIGURE: MessageBoxA(0, "EsounD MultiMedia Driver!", "EsounD Driver", MB_OK); return 1;
|
||||
case DRV_INSTALL: return DRVCNF_RESTART;
|
||||
case DRV_REMOVE: return DRVCNF_RESTART;
|
||||
#endif
|
||||
default:
|
||||
return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/* Definition for EsounD drivers : wine multimedia system
|
||||
*
|
||||
* Copyright 2004 Zhangrong Huang <hzhr@users.sourceforge.net>
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __WINE_ESD_H
|
||||
#define __WINE_ESD_H
|
||||
|
||||
#ifndef __WINE_CONFIG_H
|
||||
# error You must include config.h to use this header
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_ERRNO_H
|
||||
#include <sys/errno.h>
|
||||
#endif
|
||||
|
||||
extern LONG ESD_WaveInit(void);
|
||||
extern LONG ESD_WaveClose(void);
|
||||
|
||||
#endif /* __WINE_ESD_H */
|
|
@ -0,0 +1,3 @@
|
|||
@ stdcall DriverProc(long long long long long) ESD_DriverProc
|
||||
@ stdcall wodMessage(long long long long long) ESD_wodMessage
|
||||
@ stdcall widMessage(long long long long long) ESD_widMessage
|
|
@ -86,6 +86,9 @@
|
|||
/* Define to 1 if you have the `epoll_create' function. */
|
||||
#undef HAVE_EPOLL_CREATE
|
||||
|
||||
/* Define if you have EsounD sound server */
|
||||
#undef HAVE_ESD
|
||||
|
||||
/* Define to 1 if you have the `ffs' function. */
|
||||
#undef HAVE_FFS
|
||||
|
||||
|
|
|
@ -210,6 +210,15 @@ static const char *audioAutoDetect(void)
|
|||
numFound++;
|
||||
}
|
||||
|
||||
/* try to detect EsounD */
|
||||
argv_new[2] = "ps awx|grep esd|grep -v grep|grep esd > /dev/null";
|
||||
if(!spawnvp(_P_WAIT, "/bin/sh", argv_new))
|
||||
{
|
||||
driversFound[numFound] = "esd";
|
||||
name[numFound] = "EsounD";
|
||||
numFound++;
|
||||
}
|
||||
|
||||
/* try to detect nas */
|
||||
/* TODO */
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ static const DLL_DESC sDLLType[] = {
|
|||
static const AUDIO_DRIVER sAudioDrivers[] = {
|
||||
{"ALSA", "alsa"},
|
||||
{"aRts", "arts"},
|
||||
{"EsounD", "esd"},
|
||||
{"OSS", "oss"},
|
||||
{"JACK", "jack"},
|
||||
{"NAS", "nas"},
|
||||
|
|
Loading…
Reference in New Issue