#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>
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++)
{
*
* 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);
WInDev[i].caps.wReserved1 = 0;
}
- return 0;
+ return 1;
}
/******************************************************************
#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.@)
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;
}
}
+++ /dev/null
-/* 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 */