diff --git a/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp b/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp index a5016a8d7..389274807 100644 --- a/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp +++ b/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp @@ -76,6 +76,7 @@ ENUM2STR_START(DS_RESULT) ENUM2STR_END_and_LOGRENDER(DS_RESULT) ENUM2STR_START(WAVEFORMAT_TAG) + ENUM2STR_CASE(0) ENUM2STR_CASE(WAVE_FORMAT_PCM) ENUM2STR_CASE(WAVE_FORMAT_ADPCM) ENUM2STR_CASE(WAVE_FORMAT_XBOX_ADPCM) @@ -100,7 +101,6 @@ ENUM2STR_END_and_LOGRENDER(WAVEFORMAT_CHANNEL) LOGRENDER(WAVEFORMATEX) { - // TODO: Implement case for different type of structure data. return os LOGRENDER_MEMBER_TYPE(WAVEFORMAT_TAG, wFormatTag) LOGRENDER_MEMBER_TYPE(WAVEFORMAT_CHANNEL, nChannels) @@ -112,6 +112,34 @@ LOGRENDER(WAVEFORMATEX) ; } +LOGRENDER_HEADER(GUID); +LOGRENDER(GUID) +{ + return os + LOGRENDER_MEMBER(Data1) + LOGRENDER_MEMBER(Data2) + LOGRENDER_MEMBER(Data3) + LOGRENDER_MEMBER(Data4) + ; +} + +LOGRENDER(WAVEFORMATEXTENSIBLE) +{ + if (value.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + return os + LOGRENDER_MEMBER_TYPE(WAVEFORMATEX, Format) + LOGRENDER_MEMBER(Samples.wValidBitsPerSample) + LOGRENDER_MEMBER(dwChannelMask) + LOGRENDER_MEMBER_TYPE(GUID, SubFormat) + ; + } + else { + return os + LOGRENDER_MEMBER_TYPE(WAVEFORMATEX, Format) + ; + } +} + LOGRENDER(DSBUFFERDESC) { return os diff --git a/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp b/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp index 4b9817098..4e888b298 100644 --- a/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp +++ b/src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp @@ -26,6 +26,7 @@ #define DIRECTSOUNDLOGGING_H #include +#include #include "Logging.h" enum DS_BCAPS; @@ -38,6 +39,7 @@ ENUM2STR_HEADER(WAVEFORMAT_CHANNEL) ENUM2STR_HEADER(WAVEFORMAT_TAG) LOGRENDER_HEADER(WAVEFORMATEX) +LOGRENDER_HEADER(WAVEFORMATEXTENSIBLE) LOGRENDER_HEADER(DSBUFFERDESC) LOGRENDER_HEADER(D3DVECTOR)