diff --git a/stepmania/src/arch/Sound/DSoundHelpers.cpp b/stepmania/src/arch/Sound/DSoundHelpers.cpp index c45482d857..081e3f2fd5 100644 --- a/stepmania/src/arch/Sound/DSoundHelpers.cpp +++ b/stepmania/src/arch/Sound/DSoundHelpers.cpp @@ -12,13 +12,25 @@ #pragma comment(lib, "dsound.lib") #pragma comment(lib, "dxguid.lib") +BOOL CALLBACK DSound::EnumCallback(LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext) +{ + LOG->Info("DirectSound Driver: %s (%s)", lpcstrDescription, lpcstrModule); + if(lpGuid) + LOG->Info(" ID: {%8.8x-%4.4x-%4.4x-%6.6x}", lpGuid->Data1, lpGuid->Data2, lpGuid->Data3, lpGuid->Data4); + + return TRUE; +} + + DSound::DSound() { HRESULT hr; if(FAILED(hr=DirectSoundCreate8(NULL, &ds8, NULL))) RageException::ThrowNonfatal(hr_ssprintf(hr, "DirectSoundCreate8")); - + + DirectSoundEnumerate(EnumCallback, 0); + /* Try to set primary mixing privileges */ hr = ds8->SetCooperativeLevel(GetDesktopWindow(), DSSCL_PRIORITY); } diff --git a/stepmania/src/arch/Sound/DSoundHelpers.h b/stepmania/src/arch/Sound/DSoundHelpers.h index 462677f13f..238f0a4f11 100644 --- a/stepmania/src/arch/Sound/DSoundHelpers.h +++ b/stepmania/src/arch/Sound/DSoundHelpers.h @@ -9,6 +9,7 @@ struct IDirectSoundBuffer8; class DSound { IDirectSound8 *ds8; + static BOOL CALLBACK EnumCallback( LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext); public: IDirectSound8 *GetDS8() const { return ds8; }