From: Stanislav Motylkov Date: Fri, 11 Jan 2019 09:59:37 +0000 (+0300) Subject: [MMSYS] Properly select current MIDI output device X-Git-Tag: 0.4.13-dev~733 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=da528a660623f5a64c60e5101556c89d73b0df28 [MMSYS] Properly select current MIDI output device CORE-15582 --- diff --git a/dll/cpl/mmsys/audio.c b/dll/cpl/mmsys/audio.c index fa3a3e1e123..e6a1358bd59 100644 --- a/dll/cpl/mmsys/audio.c +++ b/dll/cpl/mmsys/audio.c @@ -116,6 +116,18 @@ InitAudioDlg(HWND hwnd) } else { + WCHAR DefaultDevice[MAX_PATH] = {0}; + HKEY hKey; + DWORD dwSize = sizeof(DefaultDevice); + UINT DefaultIndex = 0; + + if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Multimedia\\MIDIMap", 0, KEY_READ, &hKey) == ERROR_SUCCESS) + { + RegQueryValueExW(hKey, L"szPname", NULL, NULL, (LPBYTE)DefaultDevice, &dwSize); + DefaultDevice[MAX_PATH-1] = L'\0'; + RegCloseKey(hKey); + } + for (uIndex = 0; uIndex < DevsNum; uIndex++) { if (midiOutGetDevCaps(uIndex, &midiOutCaps, sizeof(midiOutCaps))) @@ -126,10 +138,11 @@ InitAudioDlg(HWND hwnd) if (CB_ERR != Res) { SendMessage(hCB, CB_SETITEMDATA, Res, (LPARAM) uIndex); - // TODO: Getting default device - SendMessage(hCB, CB_SETCURSEL, (WPARAM) Res, 0); + if (!wcsicmp(midiOutCaps.szPname, DefaultDevice)) + DefaultIndex = Res; } } + SendMessage(hCB, CB_SETCURSEL, (WPARAM) DefaultIndex, 0); } }