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