Maarten Lankhorst : winealsa.drv: Clean up initialisation.
Alexandre Julliard
julliard at winehq.org
Mon May 3 11:54:13 CDT 2010
Module: wine
Branch: master
Commit: 755c25d84eff23abee532652b4e0ff7c548da317
URL: http://source.winehq.org/git/wine.git/?a=commit;h=755c25d84eff23abee532652b4e0ff7c548da317
Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Thu Apr 22 22:52:19 2010 +0200
winealsa.drv: Clean up initialisation.
---
dlls/winealsa.drv/alsa.c | 3 +--
dlls/winealsa.drv/alsa.h | 5 +----
dlls/winealsa.drv/midi.c | 10 +++++-----
dlls/winealsa.drv/wavein.c | 1 +
dlls/winealsa.drv/waveinit.c | 10 ++++++----
dlls/winealsa.drv/waveout.c | 1 +
6 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/dlls/winealsa.drv/alsa.c b/dlls/winealsa.drv/alsa.c
index 5ed7109..9eb50cd 100644
--- a/dlls/winealsa.drv/alsa.c
+++ b/dlls/winealsa.drv/alsa.c
@@ -725,8 +725,7 @@ LRESULT CALLBACK ALSA_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg,
switch(wMsg) {
#ifdef HAVE_ALSA
- case DRV_LOAD: ALSA_WaveInit();
- ALSA_MidiInit();
+ case DRV_LOAD:
case DRV_FREE:
case DRV_OPEN:
case DRV_CLOSE:
diff --git a/dlls/winealsa.drv/alsa.h b/dlls/winealsa.drv/alsa.h
index 88529fb..7c2f0f4 100644
--- a/dlls/winealsa.drv/alsa.h
+++ b/dlls/winealsa.drv/alsa.h
@@ -199,10 +199,7 @@ DWORD widDsDesc(UINT wDevID, PDSDRIVERDESC desc);
DWORD wodDsCreate(UINT wDevID, PIDSDRIVER* drv);
DWORD wodDsDesc(UINT wDevID, PDSDRIVERDESC desc);
-/* midi.c */
-extern LONG ALSA_MidiInit(void);
-
/* waveinit.c */
-extern LONG ALSA_WaveInit(void);
+extern void ALSA_WaveInit(void);
#endif /* __ALSA_H */
diff --git a/dlls/winealsa.drv/midi.c b/dlls/winealsa.drv/midi.c
index 00a54bf..0eee1c8 100644
--- a/dlls/winealsa.drv/midi.c
+++ b/dlls/winealsa.drv/midi.c
@@ -1222,8 +1222,6 @@ static void ALSA_AddMidiPort(snd_seq_client_info_t* cinfo, snd_seq_port_info_t*
}
}
-#endif /* HAVE_ALSA */
-
/*======================================================================*
* MIDI entry points *
@@ -1234,9 +1232,8 @@ static void ALSA_AddMidiPort(snd_seq_client_info_t* cinfo, snd_seq_port_info_t*
*
* Initializes the MIDI devices information variables
*/
-LONG ALSA_MidiInit(void)
+static LONG ALSA_MidiInit(void)
{
-#ifdef HAVE_ALSA
static BOOL bInitDone = FALSE;
snd_seq_client_info_t *cinfo;
snd_seq_port_info_t *pinfo;
@@ -1290,10 +1287,11 @@ LONG ALSA_MidiInit(void)
HeapFree( GetProcessHeap(), 0, pinfo );
TRACE("End\n");
-#endif
return TRUE;
}
+#endif
+
/**************************************************************************
* midMessage (WINEALSA.@)
*/
@@ -1305,6 +1303,7 @@ DWORD WINAPI ALSA_midMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser,
switch (wMsg) {
#ifdef HAVE_ALSA
case DRVM_INIT:
+ ALSA_MidiInit();
case DRVM_EXIT:
case DRVM_ENABLE:
case DRVM_DISABLE:
@@ -1349,6 +1348,7 @@ DWORD WINAPI ALSA_modMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser,
switch (wMsg) {
#ifdef HAVE_ALSA
case DRVM_INIT:
+ ALSA_MidiInit();
case DRVM_EXIT:
case DRVM_ENABLE:
case DRVM_DISABLE:
diff --git a/dlls/winealsa.drv/wavein.c b/dlls/winealsa.drv/wavein.c
index 625e36e..8985ec3 100644
--- a/dlls/winealsa.drv/wavein.c
+++ b/dlls/winealsa.drv/wavein.c
@@ -750,6 +750,7 @@ DWORD WINAPI ALSA_widMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser,
switch (wMsg) {
case DRVM_INIT:
+ ALSA_WaveInit();
case DRVM_EXIT:
case DRVM_ENABLE:
case DRVM_DISABLE:
diff --git a/dlls/winealsa.drv/waveinit.c b/dlls/winealsa.drv/waveinit.c
index f2eaece..4da53c9 100644
--- a/dlls/winealsa.drv/waveinit.c
+++ b/dlls/winealsa.drv/waveinit.c
@@ -962,7 +962,7 @@ static int ALSA_AddUserSpecifiedDevice(const char *ctlname, const char *pcmname)
** is a way to exactly specify the devices used by Wine.
**
*/
-LONG ALSA_WaveInit(void)
+void ALSA_WaveInit(void)
{
DWORD rc;
BOOL AutoScanCards = TRUE;
@@ -971,6 +971,10 @@ LONG ALSA_WaveInit(void)
DWORD DeviceCount = 0;
HKEY key = 0;
int i;
+ static int loaded;
+
+ if (loaded++)
+ return;
/* @@ Wine registry key: HKCU\Software\Wine\Alsa Driver */
rc = RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Wine\\Alsa Driver", 0, KEY_QUERY_VALUE, &key);
@@ -983,7 +987,7 @@ LONG ALSA_WaveInit(void)
}
if (AutoScanCards)
- rc = ALSA_PerformDefaultScan(UseDirectHW, AutoScanDevices);
+ ALSA_PerformDefaultScan(UseDirectHW, AutoScanDevices);
for (i = 0; i < DeviceCount; i++)
{
@@ -1005,8 +1009,6 @@ LONG ALSA_WaveInit(void)
if (key)
RegCloseKey(key);
-
- return (rc);
}
#endif /* HAVE_ALSA */
diff --git a/dlls/winealsa.drv/waveout.c b/dlls/winealsa.drv/waveout.c
index df0027f..4001f26 100644
--- a/dlls/winealsa.drv/waveout.c
+++ b/dlls/winealsa.drv/waveout.c
@@ -1169,6 +1169,7 @@ DWORD WINAPI ALSA_wodMessage(UINT wDevID, UINT wMsg, DWORD_PTR dwUser,
switch (wMsg) {
case DRVM_INIT:
+ ALSA_WaveInit();
case DRVM_EXIT:
case DRVM_ENABLE:
case DRVM_DISABLE:
More information about the wine-cvs
mailing list