Prepare to use DSVOICEPROPS for buffer/stream classes.

This commit is contained in:
RadWolfie 2019-07-01 21:00:58 -05:00 committed by PatrickvL
parent 7039332abd
commit ced70f2334
3 changed files with 32 additions and 30 deletions

View File

@ -105,6 +105,7 @@ struct X_CDirectSoundBuffer
LONG Xb_VolumeMixbin;
DWORD Xb_dwHeadroom;
X_DSENVOLOPEDESC Xb_EnvolopeDesc;
X_DSVOICEPROPS Xb_VoiceProperties;
};
//Custom flags (4 bytes support up to 31 shifts,starting from 0)
@ -256,6 +257,7 @@ class X_CDirectSoundStream
LONG Xb_VolumeMixbin;
DWORD Xb_dwHeadroom;
X_DSENVOLOPEDESC Xb_EnvolopeDesc;
X_DSVOICEPROPS Xb_VoiceProperties;
};
// ******************************************************************

View File

@ -318,7 +318,7 @@ LOGRENDER(X_DSBUFFERDESC)
LOGRENDER_MEMBER_TYPE(DSBCAPS_FLAG, dwFlags)
LOGRENDER_MEMBER(dwBufferBytes)
LOGRENDER_MEMBER_TYPE(LPWAVEFORMATEX, lpwfxFormat)
LOGRENDER_MEMBER(lpMixBins) // TODO: Need loop support since lpMixBins is dynamic array.
LOGRENDER_MEMBER(lpMixBinsOutput) // TODO: Need loop support since lpMixBinsOutput is dynamic array.
LOGRENDER_MEMBER(dwInputMixBin)
;
}
@ -332,7 +332,7 @@ LOGRENDER(X_DSSTREAMDESC)
LOGRENDER_MEMBER_TYPE(LPWAVEFORMATEX, lpwfxFormat)
LOGRENDER_MEMBER_TYPE(void*, lpfnCallback)
LOGRENDER_MEMBER(lpvContext)
LOGRENDER_MEMBER(lpMixBins) // TODO: Need loop support since lpMixBins is dynamic array.
LOGRENDER_MEMBER(lpMixBinsOutput) // TODO: Need loop support since lpMixBinsOutput is dynamic array.
;
}

View File

@ -33,6 +33,32 @@
#define WAVE_FORMAT_XBOX_ADPCM 0x0069
// XDSMIXBIN Flags
#define XDSMIXBIN_FRONT_LEFT 0
#define XDSMIXBIN_FRONT_RIGHT 1
#define XDSMIXBIN_FRONT_CENTER 2
#define XDSMIXBIN_LOW_FREQUENCY 3
#define XDSMIXBIN_BACK_LEFT 4
#define XDSMIXBIN_BACK_RIGHT 5
#define XDSMIXBIN_SPEAKERS_MAX 6 // Max count for speakers
// Other flags are used
// ******************************************************************
// * X_DSMIXBINVOLUMEPAIR
// ******************************************************************
typedef struct _XDSMIXBINVOLUMEPAIR {
DWORD dwMixBin;
LONG lVolume;
} X_DSMIXBINVOLUMEPAIR, *X_LPDSMIXBINVOLUMEPAIR;
// ******************************************************************
// * X_DSMIXBINS
// ******************************************************************
typedef struct _XDSMIXBINS {
DWORD dwCount;
X_LPDSMIXBINVOLUMEPAIR lpMixBinVolumePairs;
} X_DSMIXBINS, *X_LPDSMIXBINS;
// EmuIDirectSoundBuffer_Play flags
#define X_DSBPLAY_LOOPING 0x00000001
#define X_DSBPLAY_FROMSTART 0x00000002
@ -92,7 +118,7 @@ struct X_DSBUFFERDESC
DWORD dwFlags;
DWORD dwBufferBytes;
LPWAVEFORMATEX lpwfxFormat;
LPVOID lpMixBins; // TODO: Implement
X_LPDSMIXBINS lpMixBinsOutput;
DWORD dwInputMixBin;
};
@ -133,7 +159,7 @@ struct X_DSSTREAMDESC
LPWAVEFORMATEX lpwfxFormat;
LPFNXMOCALLBACK lpfnCallback;
LPVOID lpvContext;
PVOID lpMixBins; // TODO: Implement
X_LPDSMIXBINS lpMixBinsOutput;
};
// ******************************************************************
@ -184,32 +210,6 @@ XMEDIAINFO, *PXEIDIAINFO, *LPXMEDIAINFO;
#define XMO_STREAMF_IN_PLACE 0x00000010 // The object supports in-place modification of data
#define XMO_STREAMF_MASK 0x0000001F
// XDSMIXBIN Flags
#define XDSMIXBIN_FRONT_LEFT 0
#define XDSMIXBIN_FRONT_RIGHT 1
#define XDSMIXBIN_FRONT_CENTER 2
#define XDSMIXBIN_LOW_FREQUENCY 3
#define XDSMIXBIN_BACK_LEFT 4
#define XDSMIXBIN_BACK_RIGHT 5
#define XDSMIXBIN_SPEAKERS_MAX 6 // Max count for speakers
// Other flags are used
// ******************************************************************
// * X_DSMIXBINVOLUMEPAIR
// ******************************************************************
typedef struct _XDSMIXBINVOLUMEPAIR {
DWORD dwMixBin;
LONG lVolume;
} X_DSMIXBINVOLUMEPAIR, *X_LPDSMIXBINVOLUMEPAIR;
// ******************************************************************
// * X_DSMB
// ******************************************************************
typedef struct _XDSMIXBINS {
DWORD dwCount;
X_LPDSMIXBINVOLUMEPAIR lpMixBinVolumePairs;
} X_DSMIXBINS, *X_LPDSMIXBINS;
// ******************************************************************
// * X_DSFILTERDESC
// ******************************************************************