From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmloader/loader.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/dlls/dmloader/loader.c b/dlls/dmloader/loader.c index d15c99f6fb6..89796f337c1 100644 --- a/dlls/dmloader/loader.c +++ b/dlls/dmloader/loader.c @@ -20,6 +20,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(dmloader);
+#define LOADER_UNIX_DEFAULT_GM_SF2 "/usr/share/sounds/sf2/default-GM.sf2" + static const GUID *classes[] = { &GUID_DirectMusicAllTypes, /* Keep as first */ &CLSID_DirectMusicAudioPathConfig, @@ -318,6 +320,13 @@ static HRESULT WINAPI loader_GetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDE lstrcpyW(p, pDesc->wszFileName); }
+ if (!wcsicmp(file_name, L"C:\windows\system32\drivers\gm.dls") + && GetFileAttributesW(file_name) == INVALID_FILE_ATTRIBUTES) + { + WARN("Using " LOADER_UNIX_DEFAULT_GM_SF2 " instead of gm.dls\n"); + wcscpy(file_name, L"\??\unix" LOADER_UNIX_DEFAULT_GM_SF2); + } + TRACE(": loading from file (%s)\n", debugstr_w(file_name)); if (FAILED(hr = file_stream_create(file_name, &pStream))) return hr; } @@ -458,6 +467,13 @@ static HRESULT WINAPI loader_SetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDE lstrcpyW(p, pDesc->wszFileName); }
+ if (!wcsicmp(file_name, L"C:\windows\system32\drivers\gm.dls") + && GetFileAttributesW(file_name) == INVALID_FILE_ATTRIBUTES) + { + WARN("Using " LOADER_UNIX_DEFAULT_GM_SF2 " instead of gm.dls\n"); + wcscpy(file_name, L"\??\unix" LOADER_UNIX_DEFAULT_GM_SF2); + } + if (FAILED(hr = file_stream_create(file_name, &pStream))) return hr; } else if (pDesc->dwValidData & DMUS_OBJ_STREAM)