Added aRts driver.

This commit is contained in:
Chris Morgan 2002-03-21 01:38:19 +00:00 committed by Alexandre Julliard
parent cc7c1c0b93
commit 9b0ba7ca2b
13 changed files with 2112 additions and 368 deletions

View File

@ -78,6 +78,7 @@ Other DLLs:
wing/ - WinG (for games) internface
winmm/ - multimedia (16 & 32 bit)
mciXXX/ - various MCI drivers
winearts/ - ARTS audio driver
wineoss/- MM driver for OSS systems
wavemap/- audio mapper
midimap/- midi mapper

843
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -510,6 +510,37 @@ then
AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
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 ****
AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
@ -1317,6 +1348,7 @@ dlls/winmm/mciseq/Makefile
dlls/winmm/mciwave/Makefile
dlls/winmm/midimap/Makefile
dlls/winmm/wavemap/Makefile
dlls/winmm/winearts/Makefile
dlls/winmm/wineoss/Makefile
dlls/winnls/Makefile
dlls/winsock/Makefile

View File

@ -87,6 +87,7 @@ SUBDIRS = \
winmm/mciwave \
winmm/midimap \
winmm/wavemap \
winmm/winearts \
winmm/wineoss \
winnls \
winsock \
@ -207,6 +208,7 @@ all: \
win87em.dll$(DLLEXT) \
winaspi.dll$(DLLEXT) \
windebug.dll$(DLLEXT) \
winearts.drv$(DLLEXT) \
winedos.dll$(DLLEXT) \
wineoss.drv$(DLLEXT) \
wineps.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)
$(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)
$(RM) $@ && $(LN_S) winedos/winedos.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)
@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) \
kernel32.dll$(DLLEXT) ntdll.dll$(DLLEXT)
@cd winmm/wineoss && $(MAKE) wineoss.drv$(DLLEXT)

View File

@ -294,7 +294,7 @@ HRESULT WINAPI DirectSoundEnumerateA(
#ifdef HAVE_OSS
if (lpDSEnumCallback != NULL)
lpDSEnumCallback(NULL,"WINE DirectSound using Open Sound System",
lpDSEnumCallback(NULL,"WINE DirectSound",
"sound",lpContext);
#endif

View File

@ -0,0 +1,2 @@
Makefile
winearts.drv.spec.c

View File

@ -0,0 +1,18 @@
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:

View File

@ -0,0 +1,93 @@
/* -*- 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);
}
}

View File

@ -0,0 +1,34 @@
/* 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 */

1429
dlls/winmm/winearts/audio.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
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

View File

@ -238,6 +238,7 @@ WINE REGISTRY Version 2
[WinMM]
"Drivers" = "wineoss.drv"
#"Drivers" = "winearts.drv"
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"

View File

@ -25,6 +25,9 @@
/* Define if you have the <arpa/nameser.h> header file. */
#undef HAVE_ARPA_NAMESER_H
/* Define if you have ARTS sound server */
#undef HAVE_ARTS
/* Define to use .string instead of .ascii */
#undef HAVE_ASM_STRING