Module: wine Branch: master Commit: 755c25d84eff23abee532652b4e0ff7c548da317 URL: http://source.winehq.org/git/wine.git/?a=commit;h=755c25d84eff23abee532652b4...
Author: Maarten Lankhorst m.b.lankhorst@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: