Maarten Lankhorst : wineesd.drv: Clean up loading.
Alexandre Julliard
julliard at winehq.org
Wed Apr 21 10:40:27 CDT 2010
Module: wine
Branch: master
Commit: 3c640ddacd275ad58184b6fde55ae9fc1094b3c4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3c640ddacd275ad58184b6fde55ae9fc1094b3c4
Author: Maarten Lankhorst <m.b.lankhorst at 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 at 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 */
More information about the wine-cvs
mailing list