Moved the audio driver configuration to HKCU\Software\Wine\Drivers and changed it a bit to follow the model of the graphics driver.
diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c index 0b62099..4805882 100644 --- a/dlls/winmm/lolvldrv.c +++ b/dlls/winmm/lolvldrv.c
@@ -723,8 +723,7 @@ char driver_buffer[256]; char mapper_buffer[256]; char midi_buffer[256]; - char* p1; - char* p2; + char* p; DWORD type, size; BOOL ret = FALSE; TRACE("()\n"); @@ -733,13 +732,29 @@ strcpy(mapper_buffer, WINE_DEFAULT_WINMM_MAPPER); strcpy(midi_buffer, WINE_DEFAULT_WINMM_MIDI); + /* @@ Wine registry key: HKCU\Software\Wine\Drivers */ + if (!RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Drivers", &hKey)) + { + size = sizeof(driver_buffer); + if (RegQueryValueExA(hKey, "Audio", 0, &type, (LPVOID)driver_buffer, &size)) + strcpy(driver_buffer, WINE_DEFAULT_WINMM_DRIVER); + } + + p = driver_buffer; + while (p) + { + char filename[sizeof(driver_buffer)+10]; + char *next = strchr(p, ','); + if (next) *next++ = 0; + sprintf( filename, "wine%s.drv", p ); + ret |= MMDRV_Install( filename, filename, FALSE ); + p = next; + } + + /* finish with mappers */ + /* @@ Wine registry key: HKLM\Software\Wine\Wine\Config\WinMM */ if (! RegCreateKeyA(HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config\\WinMM", &hKey)) { - size = sizeof(driver_buffer); - if (RegQueryValueExA(hKey, "Drivers", 0, &type, (LPVOID)driver_buffer, &size)) - strcpy(driver_buffer, WINE_DEFAULT_WINMM_DRIVER); - - /* finish with mappers */ size = sizeof(mapper_buffer); if (RegQueryValueExA(hKey, "WaveMapper", 0, &type, (LPVOID)mapper_buffer, &size)) strcpy(mapper_buffer, WINE_DEFAULT_WINMM_MAPPER); @@ -751,14 +766,6 @@ RegCloseKey(hKey); } - p1 = driver_buffer; - while (p1) { - p2 = strchr(p1, ';'); - if (p2) *p2++ = '\0'; - ret |= MMDRV_Install(p1, p1, FALSE); - p1 = p2; - } - ret |= MMDRV_Install("wavemapper", mapper_buffer, TRUE); ret |= MMDRV_Install("midimapper", midi_buffer, TRUE); return ret;
diff --git a/dlls/winmm/winemm.h b/dlls/winmm/winemm.h index bd65b73..0815840 100644 --- a/dlls/winmm/winemm.h +++ b/dlls/winmm/winemm.h
@@ -28,7 +28,7 @@ #include "winbase.h" #include "mmddk.h" -#define WINE_DEFAULT_WINMM_DRIVER "wineoss.drv" +#define WINE_DEFAULT_WINMM_DRIVER "oss" #define WINE_DEFAULT_WINMM_MAPPER "msacm.drv" #define WINE_DEFAULT_WINMM_MIDI "midimap.drv"
diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c index 09aa0ec..08f0a70 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c
@@ -55,7 +55,7 @@ { if (!strcmp (pAudioDrv->szDriver, drivername)) { - set_reg_key("Winmm", "Drivers", (char *) pAudioDrv->szDriver); + set_reg_key("Drivers", "Audio", (char *) pAudioDrv->szDriver); SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM) hDlg, 0); /* enable apply button */ SendDlgItemMessage(hDlg, IDC_AUDIO_DRIVER, CB_SETCURSEL, (WPARAM) i, 0); @@ -66,7 +66,7 @@ static void initAudioDlg (HWND hDlg) { - char *curAudioDriver = get_reg_key("Winmm", "Drivers", "winealsa.drv"); + char *curAudioDriver = get_reg_key("Drivers", "Audio", "alsa"); const AUDIO_DRIVER *pAudioDrv = NULL; int i; @@ -101,7 +101,7 @@ if(fd) { close(fd); - driversFound[numFound] = "wineoss.drv"; + driversFound[numFound] = "oss"; name[numFound] = "OSS"; numFound++; } @@ -109,7 +109,7 @@ /* try to detect alsa */ if(!stat("/proc/asound", &buf)) { - driversFound[numFound] = "winealsa.drv"; + driversFound[numFound] = "alsa"; name[numFound] = "Alsa"; numFound++; } @@ -118,7 +118,7 @@ argv_new[2] = "ps awx|grep artsd|grep -v grep|grep artsd > /dev/null"; if(!spawnvp(_P_WAIT, "/bin/sh", argv_new)) { - driversFound[numFound] = "winearts.drv"; + driversFound[numFound] = "arts"; name[numFound] = "aRts"; numFound++; } @@ -127,7 +127,7 @@ argv_new[2] = "ps awx|grep jackd|grep -v grep|grep jackd > /dev/null"; if(!spawnvp(_P_WAIT, "/bin/sh", argv_new)) { - driversFound[numFound] = "winejack.drv"; + driversFound[numFound] = "jack"; name[numFound] = "jack"; numFound++; }
diff --git a/programs/winecfg/properties.c b/programs/winecfg/properties.c index 9d8d52d..8cc477f 100644 --- a/programs/winecfg/properties.c +++ b/programs/winecfg/properties.c
@@ -58,12 +58,12 @@ }; static AUDIO_DRIVER sAudioDrivers[] = { - {"Alsa", "winealsa.drv"}, - {"aRts", "winearts.drv"}, - {"OSS", "wineoss.drv"}, - {"Jack", "winejack.drv"}, - {"Nas", "winenas.drv"}, - {"Audio IO(Solaris)", "wineaudioio.drv"}, + {"Alsa", "alsa"}, + {"aRts", "arts"}, + {"OSS", "oss"}, + {"Jack", "jack"}, + {"Nas", "nas"}, + {"Audio IO(Solaris)", "audioio"}, {"Disable sound", ""}, {"", ""} };