Commit 9b0ba7ca authored by Chris Morgan's avatar Chris Morgan Committed by Alexandre Julliard

Added aRts driver.

parent cc7c1c0b
...@@ -78,6 +78,7 @@ Other DLLs: ...@@ -78,6 +78,7 @@ Other DLLs:
wing/ - WinG (for games) internface wing/ - WinG (for games) internface
winmm/ - multimedia (16 & 32 bit) winmm/ - multimedia (16 & 32 bit)
mciXXX/ - various MCI drivers mciXXX/ - various MCI drivers
winearts/ - ARTS audio driver
wineoss/- MM driver for OSS systems wineoss/- MM driver for OSS systems
wavemap/- audio mapper wavemap/- audio mapper
midimap/- midi mapper midimap/- midi mapper
......
...@@ -510,6 +510,37 @@ then ...@@ -510,6 +510,37 @@ then
AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)]) AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
fi fi
dnl **** Check for aRts Sound Server ****
AC_PATH_PROG(ARTSCCONFIG, artsc-config)
AC_CACHE_CHECK([for aRts Sound server],
ac_cv_c_artsserver,
if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
then
ac_cv_c_artsserver=no
else
ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
ARTSC_LIBS=`$ARTSCCONFIG --libs`
ac_cv_c_artsserver=no
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $ARTSC_CFLAGS"
AC_TRY_COMPILE([
#include <artsc.h>
],[
arts_stream_t stream;
],[
ac_cv_c_artsserver=yes
])
CFLAGS="$save_CFLAGS"
fi)
if test "$ac_cv_c_artsserver" = "yes"
then
AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
fi
dnl **** Check for broken glibc mmap64 **** dnl **** Check for broken glibc mmap64 ****
AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works, AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
...@@ -1317,6 +1348,7 @@ dlls/winmm/mciseq/Makefile ...@@ -1317,6 +1348,7 @@ dlls/winmm/mciseq/Makefile
dlls/winmm/mciwave/Makefile dlls/winmm/mciwave/Makefile
dlls/winmm/midimap/Makefile dlls/winmm/midimap/Makefile
dlls/winmm/wavemap/Makefile dlls/winmm/wavemap/Makefile
dlls/winmm/winearts/Makefile
dlls/winmm/wineoss/Makefile dlls/winmm/wineoss/Makefile
dlls/winnls/Makefile dlls/winnls/Makefile
dlls/winsock/Makefile dlls/winsock/Makefile
......
...@@ -87,6 +87,7 @@ SUBDIRS = \ ...@@ -87,6 +87,7 @@ SUBDIRS = \
winmm/mciwave \ winmm/mciwave \
winmm/midimap \ winmm/midimap \
winmm/wavemap \ winmm/wavemap \
winmm/winearts \
winmm/wineoss \ winmm/wineoss \
winnls \ winnls \
winsock \ winsock \
...@@ -207,6 +208,7 @@ all: \ ...@@ -207,6 +208,7 @@ all: \
win87em.dll$(DLLEXT) \ win87em.dll$(DLLEXT) \
winaspi.dll$(DLLEXT) \ winaspi.dll$(DLLEXT) \
windebug.dll$(DLLEXT) \ windebug.dll$(DLLEXT) \
winearts.drv$(DLLEXT) \
winedos.dll$(DLLEXT) \ winedos.dll$(DLLEXT) \
wineoss.drv$(DLLEXT) \ wineoss.drv$(DLLEXT) \
wineps.dll$(DLLEXT) \ wineps.dll$(DLLEXT) \
...@@ -440,6 +442,9 @@ version.dll$(DLLEXT) ver.dll$(DLLEXT): version/version.dll$(DLLEXT) ...@@ -440,6 +442,9 @@ version.dll$(DLLEXT) ver.dll$(DLLEXT): version/version.dll$(DLLEXT)
w32skrnl.dll$(DLLEXT) w32sys.dll$(DLLEXT) win32s16.dll$(DLLEXT): win32s/w32skrnl.dll$(DLLEXT) w32skrnl.dll$(DLLEXT) w32sys.dll$(DLLEXT) win32s16.dll$(DLLEXT): win32s/w32skrnl.dll$(DLLEXT)
$(RM) $@ && $(LN_S) win32s/w32skrnl.dll$(DLLEXT) $@ $(RM) $@ && $(LN_S) win32s/w32skrnl.dll$(DLLEXT) $@
winearts.drv$(DLLEXT): winmm/winearts/winearts.drv$(DLLEXT)
$(RM) $@ && $(LN_S) winmm/winearts/winearts.drv$(DLLEXT) $@
winedos.dll$(DLLEXT): winedos/winedos.dll$(DLLEXT) winedos.dll$(DLLEXT): winedos/winedos.dll$(DLLEXT)
$(RM) $@ && $(LN_S) winedos/winedos.dll$(DLLEXT) $@ $(RM) $@ && $(LN_S) winedos/winedos.dll$(DLLEXT) $@
...@@ -753,6 +758,10 @@ winmm/wavemap/msacm.drv$(DLLEXT): dummy msacm32.dll$(DLLEXT) winmm.dll$(DLLEXT) ...@@ -753,6 +758,10 @@ winmm/wavemap/msacm.drv$(DLLEXT): dummy msacm32.dll$(DLLEXT) winmm.dll$(DLLEXT)
user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) user32.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
@cd winmm/wavemap && $(MAKE) msacm.drv$(DLLEXT) @cd winmm/wavemap && $(MAKE) msacm.drv$(DLLEXT)
winmm/winearts/winearts.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
@cd winmm/winearts && $(MAKE) winearts.drv$(DLLEXT)
winmm/wineoss/wineoss.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \ winmm/wineoss/wineoss.drv$(DLLEXT): dummy winmm.dll$(DLLEXT) user32.dll$(DLLEXT) \
kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT) kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
@cd winmm/wineoss && $(MAKE) wineoss.drv$(DLLEXT) @cd winmm/wineoss && $(MAKE) wineoss.drv$(DLLEXT)
......
...@@ -294,7 +294,7 @@ HRESULT WINAPI DirectSoundEnumerateA( ...@@ -294,7 +294,7 @@ HRESULT WINAPI DirectSoundEnumerateA(
#ifdef HAVE_OSS #ifdef HAVE_OSS
if (lpDSEnumCallback != NULL) if (lpDSEnumCallback != NULL)
lpDSEnumCallback(NULL,"WINE DirectSound using Open Sound System", lpDSEnumCallback(NULL,"WINE DirectSound",
"sound",lpContext); "sound",lpContext);
#endif #endif
......
Makefile
winearts.drv.spec.c
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = winearts.drv
EXTRADEFS = @ARTSINCL@
EXTRALIBS = @ARTSLIBS@
LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o
C_SRCS = \
arts.c \
audio.c
@MAKE_DLL_RULES@
### Dependencies:
/* -*- tab-width: 8; c-basic-offset: 4 -*- */
/*
* Wine Driver for aRts Sound Server
* http://www.arts-project.org
*
* Copyright 2002 Chris Morgan<cmorgan@alum.wpi.edu>
* Code massively copied from Eric Pouech's OSS 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 "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "mmddk.h"
#include "arts.h"
#ifdef HAVE_ARTS
static int arts = 0;
/**************************************************************************
* ARTS_drvOpen [internal]
*/
static DWORD ARTS_drvOpen(LPSTR str)
{
if (arts)
return 0;
/* I know, this is ugly, but who cares... */
arts = 1;
return 1;
}
/**************************************************************************
* ARTS_drvClose [internal]
*/
static DWORD ARTS_drvClose(DWORD dwDevID)
{
if (arts) {
arts = 0;
return 1;
}
return 0;
}
#endif /* #ifdef HAVE_ARTS */
/**************************************************************************
* DriverProc (WINEARTS.@)
*/
LONG CALLBACK ARTS_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_ARTS
case DRV_LOAD: ARTS_WaveInit();
/* ARTS_MidiInit(); FIXME: no midi
support in artsc so we don't have any in the arts driver */
return 1;
case DRV_FREE: return ARTS_CloseDevice();
case DRV_OPEN: return ARTS_drvOpen((LPSTR)dwParam1);
case DRV_CLOSE: return ARTS_drvClose(dwDevID);
case DRV_ENABLE: return 1;
case DRV_DISABLE: return 1;
case DRV_QUERYCONFIGURE: return 1;
case DRV_CONFIGURE: MessageBoxA(0, "aRts MultiMedia Driver!", "aRts 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);
}
}
/* Definition for aRts drivers : wine multimedia system
*
* Copyright 2002 Chris Morgan<cmorgan@alum.wpi.edu>
*
* 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_ARTS_H
#define __WINE_ARTS_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 ARTS_WaveInit(void);
extern LONG ARTS_CloseDevice(void);
#endif /* __WINE_ARTS_H */
name winearts
file winearts.drv
type win32
import winmm.dll
import user32.dll
import kernel32.dll
import ntdll.dll
debug_channels (wave)
@ stdcall DriverProc(long long long long long) ARTS_DriverProc
@ stdcall wodMessage(long long long long long) ARTS_wodMessage
...@@ -238,6 +238,7 @@ WINE REGISTRY Version 2 ...@@ -238,6 +238,7 @@ WINE REGISTRY Version 2
[WinMM] [WinMM]
"Drivers" = "wineoss.drv" "Drivers" = "wineoss.drv"
#"Drivers" = "winearts.drv"
"WaveMapper" = "msacm.drv" "WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv" "MidiMapper" = "midimap.drv"
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
/* Define if you have the <arpa/nameser.h> header file. */ /* Define if you have the <arpa/nameser.h> header file. */
#undef HAVE_ARPA_NAMESER_H #undef HAVE_ARPA_NAMESER_H
/* Define if you have ARTS sound server */
#undef HAVE_ARTS
/* Define to use .string instead of .ascii */ /* Define to use .string instead of .ascii */
#undef HAVE_ASM_STRING #undef HAVE_ASM_STRING
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment