Skip to content

Commit

Permalink
Added 3 more verbose log detail to DirectSound plugin
Browse files Browse the repository at this point in the history
Added WAVEFORMAT_CHANNEL, WAVEFORMAT_TAG, and DS_BCAPS
  • Loading branch information
RadWolfie committed Feb 20, 2019
1 parent 5538833 commit 1607c5a
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 7 deletions.
3 changes: 1 addition & 2 deletions src/core/hle/DSOUND/DirectSound/DirectSound.hpp
Expand Up @@ -114,9 +114,8 @@ struct X_CDirectSoundBuffer
LONG Xb_VolumeMixbin;
DWORD Xb_dwHeadroom;
X_DSENVOLOPEDESC Xb_EnvolopeDesc;
};
};

#define WAVE_FORMAT_XBOX_ADPCM 0x0069
//Custom flags (4 bytes support up to 31 shifts,starting from 0)
#define DSE_FLAG_PCM (1 << 0)
#define DSE_FLAG_XADPCM (1 << 1)
Expand Down
54 changes: 51 additions & 3 deletions src/core/hle/DSOUND/DirectSound/DirectSoundLogging.cpp
Expand Up @@ -34,6 +34,30 @@

#include "Logging.h"
#include "DirectSoundLogging.hpp"
#include <mmreg.h>

namespace XTL {
#include "..\XbDSoundTypes.h"
}

FLAGS2STR_START(DS_BCAPS)
FLAG2STR(DSBCAPS_PRIMARYBUFFER)
FLAG2STR(DSBCAPS_STATIC)
FLAG2STR(DSBCAPS_LOCHARDWARE)
FLAG2STR(DSBCAPS_LOCSOFTWARE)
FLAG2STR(DSBCAPS_CTRL3D)
FLAG2STR(DSBCAPS_CTRLFREQUENCY)
FLAG2STR(DSBCAPS_CTRLPAN)
FLAG2STR(DSBCAPS_CTRLVOLUME)
FLAG2STR(DSBCAPS_CTRLPOSITIONNOTIFY)
FLAG2STR(DSBCAPS_CTRLFX)
FLAG2STR(DSBCAPS_STICKYFOCUS)
FLAG2STR(DSBCAPS_GLOBALFOCUS)
FLAG2STR(DSBCAPS_GETCURRENTPOSITION2)
FLAG2STR(DSBCAPS_MUTE3DATMAXDISTANCE)
FLAG2STR(DSBCAPS_LOCDEFER)
FLAG2STR(DSBCAPS_TRUEPLAYPOSITION)
FLAGS2STR_END_and_LOGRENDER(DS_BCAPS)

ENUM2STR_START(DS_RESULT)
ENUM2STR_CASE(DS_OK)
Expand Down Expand Up @@ -63,11 +87,35 @@ ENUM2STR_START(DS_RESULT)
ENUM2STR_CASE(DSERR_FXUNAVAILABLE)
ENUM2STR_END_and_LOGRENDER(DS_RESULT)

ENUM2STR_START(WAVEFORMAT_TAG)
ENUM2STR_CASE(WAVE_FORMAT_PCM)
ENUM2STR_CASE(WAVE_FORMAT_ADPCM)
ENUM2STR_CASE(WAVE_FORMAT_XBOX_ADPCM)
ENUM2STR_CASE(WAVE_FORMAT_EXTENSIBLE)
ENUM2STR_END_and_LOGRENDER(WAVEFORMAT_TAG)

#define WFC_MONO 1
#define WFC_STEREO 2
#define WFC_2POINT1 3
#define WFC_QUAD 4
#define WFC_5POINT0 5
#define WFC_5POINT1 6

ENUM2STR_START(WAVEFORMAT_CHANNEL)
ENUM2STR_CASE(WFC_MONO)
ENUM2STR_CASE(WFC_STEREO)
ENUM2STR_CASE(WFC_2POINT1)
ENUM2STR_CASE(WFC_QUAD)
ENUM2STR_CASE(WFC_5POINT0)
ENUM2STR_CASE(WFC_5POINT1)
ENUM2STR_END_and_LOGRENDER(WAVEFORMAT_CHANNEL)

LOGRENDER(WAVEFORMATEX)
{
// TODO: Implement case for different type of structure data.
return os
LOGRENDER_MEMBER(wFormatTag)
LOGRENDER_MEMBER(nChannels)
LOGRENDER_MEMBER_TYPE(WAVEFORMAT_TAG, wFormatTag)
LOGRENDER_MEMBER_TYPE(WAVEFORMAT_CHANNEL, nChannels)
LOGRENDER_MEMBER(nSamplesPerSec)
LOGRENDER_MEMBER(nAvgBytesPerSec)
LOGRENDER_MEMBER(nBlockAlign)
Expand All @@ -80,7 +128,7 @@ LOGRENDER(DSBUFFERDESC)
{
return os
LOGRENDER_MEMBER(dwSize)
LOGRENDER_MEMBER(dwFlags)
LOGRENDER_MEMBER_TYPE(DS_BCAPS, dwFlags)
LOGRENDER_MEMBER(dwBufferBytes)
LOGRENDER_MEMBER(dwReserved)
LOGRENDER_MEMBER_TYPE(LPWAVEFORMATEX, lpwfxFormat)
Expand Down
6 changes: 6 additions & 0 deletions src/core/hle/DSOUND/DirectSound/DirectSoundLogging.hpp
Expand Up @@ -37,8 +37,14 @@
#include <dsound.h>
#include "Logging.h"

enum DS_BCAPS;
enum DS_RESULT;
enum WAVEFORMAT_CHANNEL;
enum WAVEFORMAT_TAG;
FLAGS2STR_HEADER(DS_BCAPS)
ENUM2STR_HEADER(DS_RESULT)
ENUM2STR_HEADER(WAVEFORMAT_CHANNEL)
ENUM2STR_HEADER(WAVEFORMAT_TAG)

LOGRENDER_HEADER(WAVEFORMATEX)
LOGRENDER_HEADER(DSBUFFERDESC)
Expand Down
4 changes: 2 additions & 2 deletions src/core/hle/DSOUND/XbDSoundLogging.cpp
Expand Up @@ -302,7 +302,7 @@ LOGRENDER(X_DSBUFFERDESC)
{
return os
LOGRENDER_MEMBER(dwSize)
LOGRENDER_MEMBER(dwFlags)
LOGRENDER_MEMBER(dwFlags) // TODO: Need custom flags setup
LOGRENDER_MEMBER(dwBufferBytes)
LOGRENDER_MEMBER_TYPE(LPWAVEFORMATEX, lpwfxFormat)
LOGRENDER_MEMBER(lpMixBins)
Expand All @@ -314,7 +314,7 @@ LOGRENDER(X_DSBUFFERDESC)
LOGRENDER(X_DSSTREAMDESC)
{
return os
LOGRENDER_MEMBER(dwFlags)
LOGRENDER_MEMBER(dwFlags) // TODO: Need custom flags setup
LOGRENDER_MEMBER(dwMaxAttachedPackets)
LOGRENDER_MEMBER_TYPE(LPWAVEFORMATEX, lpwfxFormat)
LOGRENDER_MEMBER_TYPE(void*, lpfnCallback)
Expand Down
2 changes: 2 additions & 0 deletions src/core/hle/DSOUND/XbDSoundTypes.h
Expand Up @@ -40,6 +40,8 @@
// TODO: Also need to use fixed size to able support cross-platform without extra work.
// Such as uint32_t, uint16_t, etc.

#define WAVE_FORMAT_XBOX_ADPCM 0x0069

// EmuIDirectSoundBuffer_Play flags
#define X_DSBPLAY_LOOPING 0x00000001
#define X_DSBPLAY_FROMSTART 0x00000002
Expand Down

0 comments on commit 1607c5a

Please sign in to comment.