From 28166cf4a30c57f66beac609d0da244ecf93c1f9 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 17 Feb 2003 03:02:13 +0000 Subject: [PATCH] also log sound drivers via WaveOut system --- .../src/archutils/Win32/DebugInfoHunt.cpp | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/stepmania/src/archutils/Win32/DebugInfoHunt.cpp b/stepmania/src/archutils/Win32/DebugInfoHunt.cpp index 3e10ca864b..9a491ec524 100644 --- a/stepmania/src/archutils/Win32/DebugInfoHunt.cpp +++ b/stepmania/src/archutils/Win32/DebugInfoHunt.cpp @@ -58,9 +58,45 @@ static void GetDisplayDriverDebugInfo() CoUninitialize(); } +static CString wo_ssprintf( MMRESULT err, const char *fmt, ...) +{ + char buf[MAXERRORLENGTH]; + waveOutGetErrorText(err, buf, MAXERRORLENGTH); + + va_list va; + va_start(va, fmt); + CString s = vssprintf( fmt, va ); + va_end(va); + + return s += ssprintf( "(%s)", buf ); +} + +static void GetSoundDriverDebugInfo() +{ + int cnt = waveOutGetNumDevs(); + + for(int i = 0; i < cnt; ++i) + { + WAVEOUTCAPS caps; + + MMRESULT ret = waveOutGetDevCaps(i, &caps, sizeof(caps)); + if(ret != MMSYSERR_NOERROR) + { + LOG->Info(wo_ssprintf(ret, "waveOutGetDevCaps(%i) failed", i)); + continue; + } + LOG->Info("Sound device %i: %s, %i.%i, MID %i, PID %i %s", i, caps.szPname, + HIBYTE(caps.vDriverVersion), + LOBYTE(caps.vDriverVersion), + caps.wMid, caps.wPid, + caps.dwSupport & WAVECAPS_SAMPLEACCURATE? "":"(INACCURATE)"); + } +} + void SearchForDebugInfo() { GetDisplayDriverDebugInfo(); + GetSoundDriverDebugInfo(); /* Detect operating system. */ OSVERSIONINFO ovi;