Module: wine Branch: master Commit: 3c640ddacd275ad58184b6fde55ae9fc1094b3c4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3c640ddacd275ad58184b6fde5...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Wed Apr 21 13:45:33 2010 +0200
wineesd.drv: Clean up loading.
---
dlls/wineesd.drv/audio.c | 19 +++++++++++++---- dlls/wineesd.drv/esound.c | 46 ++++++++++---------------------------------- dlls/wineesd.drv/esound.h | 34 --------------------------------- 3 files changed, 25 insertions(+), 74 deletions(-)
diff --git a/dlls/wineesd.drv/audio.c b/dlls/wineesd.drv/audio.c index a69949c..3d4225a 100644 --- a/dlls/wineesd.drv/audio.c +++ b/dlls/wineesd.drv/audio.c @@ -63,11 +63,14 @@ #include "ks.h" #include "ksguid.h" #include "ksmedia.h" -#include "esound.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(wave);
+#ifdef HAVE_SYS_ERRNO_H +#include <sys/errno.h> +#endif + #ifdef HAVE_ESD
#include <esd.h> @@ -384,13 +387,17 @@ static void ESD_CloseWaveInDevice(WINE_WAVEIN* wwi) wwi->stream_fd = -1; }
+static int WAVE_loadcount; /****************************************************************** * ESD_WaveClose */ -LONG ESD_WaveClose(void) +static LONG ESD_WaveClose(void) { int iDevice;
+ if (--WAVE_loadcount) + return 1; + /* close all open devices */ for(iDevice = 0; iDevice < MAX_WAVEOUTDRV; iDevice++) { @@ -416,18 +423,20 @@ LONG ESD_WaveClose(void) * * Initialize internal structures from ESD server info */ -LONG ESD_WaveInit(void) +static LONG ESD_WaveInit(void) { int i; int fd;
TRACE("called\n"); + if (WAVE_loadcount++) + return 1;
/* Testing whether the esd host is alive. */ if ((fd = esd_open_sound(NULL)) < 0) { WARN("esd_open_sound() failed (%d)\n", errno); - return -1; + return 0; } esd_close(fd);
@@ -497,7 +506,7 @@ LONG ESD_WaveInit(void)
WInDev[i].caps.wReserved1 = 0; } - return 0; + return 1; }
/****************************************************************** diff --git a/dlls/wineesd.drv/esound.c b/dlls/wineesd.drv/esound.c index c3455f4..64c0753 100644 --- a/dlls/wineesd.drv/esound.c +++ b/dlls/wineesd.drv/esound.c @@ -31,27 +31,6 @@ #include "wingdi.h" #include "winuser.h" #include "mmddk.h" -#include "esound.h" - -#ifdef HAVE_ESD - -/************************************************************************** - * ESD_drvOpen [internal] - */ -static LRESULT ESD_drvOpen(LPSTR str) -{ - return 1; -} - -/************************************************************************** - * ESD_drvClose [internal] - */ -static LRESULT ESD_drvClose(DWORD_PTR dwDevID) -{ - return 1; -} -#endif /* #ifdef HAVE_ESD */ -
/************************************************************************** * DriverProc (WINEESD.@) @@ -59,24 +38,21 @@ static LRESULT ESD_drvClose(DWORD_PTR dwDevID) LRESULT CALLBACK ESD_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg, LPARAM dwParam1, LPARAM 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_LOAD: + case DRV_FREE: + case DRV_OPEN: + case DRV_CLOSE: + case DRV_INSTALL: + case DRV_REMOVE: + case DRV_ENABLE: + case DRV_DISABLE: + 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); + return 0; } } diff --git a/dlls/wineesd.drv/esound.h b/dlls/wineesd.drv/esound.h deleted file mode 100644 index e8ebd0e..0000000 --- a/dlls/wineesd.drv/esound.h +++ /dev/null @@ -1,34 +0,0 @@ -/* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, 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 */