15 const IDirectSoundBuffer8Vtbl *lpVtbl;
59 DPRINT(
"No Interface for class %s\n", pStr);
139 if (pdwCurrentWriteCursor)
141 *pdwCurrentWriteCursor =
This->BufferPosition;
152 DWORD dwSizeAllocated,
160 if (!pwfxFormat && !pdwSizeWritten)
169 *pdwSizeWritten = FormatSize;
174 if (dwSizeAllocated >= FormatSize)
180 *pdwSizeWritten = FormatSize;
207 *plVolume =
This->Volume;
227 *plPan =
This->VolumePan;
247 *pdwFrequency =
This->dwFrequency;
303 DPRINT(
"This %p dwOffset %u dwBytes %u ppvAudioPtr1 %p pdwAudioBytes1 %p ppvAudioPtr2 %p pdwAudioBytes2 %p dwFlags %x This->BufferSize %u\n",
304 This,
dwOffset, dwBytes, ppvAudioPtr1, pdwAudioBytes1, ppvAudioPtr2, pdwAudioBytes2,
dwFlags,
This->BufferSize);
309 *pdwAudioBytes1 =
This->BufferSize;
311 *ppvAudioPtr2 =
NULL;
330 *pdwAudioBytes1 = dwBytes;
334 if (
This->BufferPosition ==
This->BufferSize)
335 This->BufferPosition = 0;
338 *ppvAudioPtr2 =
NULL;
357 if (dwReserved1 != 0)
379 DPRINT1(
"Failed to set format Tag %u Samples %u Bytes %u nChannels %u\n",
This->Format->wFormatTag,
This->Format->nSamplesPerSec,
This->Format->wBitsPerSample,
This->Format->nChannels);
392 DPRINT(
"SetFormatSuccess PrimaryBuffer %p\n",
This->PrimaryBuffer);
406 DPRINT(
"Setting position %u\n", dwNewPosition);
407 This->Position = dwNewPosition;
438 This->Volume = lVolume;
458 This->VolumePan = lPan;
474 dwFrequency =
This->Format->nSamplesPerSec;
483 if (dwFrequency !=
This->dwFrequency)
489 This->dwFrequency = dwFrequency;
505 DPRINT(
"SecondaryDirectSoundBuffer8Impl_fnStop\n");
510 This->BufferPosition = 0;
546 DWORD dwEffectsCount,
559 DWORD dwEffectsCount,
656 This->dwLevel = dwLevel;
665 This->PrimaryBuffer = PrimaryBuffer;
#define InterlockedIncrement
#define InterlockedDecrement
VOID PrimaryDirectSoundBuffer_ReleaseLock(LPDIRECTSOUNDBUFFER8 iface)
VOID PrimaryDirectSoundBuffer_AcquireLock(LPDIRECTSOUNDBUFFER8 iface)
DWORD PrimaryDirectSoundBuffer_Write(LPDIRECTSOUNDBUFFER8 iface, LPVOID Buffer, DWORD BufferSize)
VOID PrimaryDirectSoundBuffer_SetState(LPDIRECTSOUNDBUFFER8 iface, KSSTATE State)
HRESULT PrimaryDirectSoundBuffer_GetPosition(LPDIRECTSOUNDBUFFER8 iface, LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor)
HRESULT PrimaryDirectSoundBuffer_SetFormat(LPDIRECTSOUNDBUFFER8 iface, LPWAVEFORMATEX pcfxFormat, BOOL bLooped)
#define HeapFree(x, y, z)
#define DSERR_ALREADYINITIALIZED
#define DSERR_UNSUPPORTED
#define DSERR_OUTOFMEMORY
#define DSBLOCK_ENTIREBUFFER
#define DSBLOCK_FROMWRITECURSOR
#define DSBSTATUS_LOOPING
#define DSBFREQUENCY_ORIGINAL
#define DSERR_INVALIDCALL
struct IDirectSound * LPDIRECTSOUND
#define DSBSTATUS_PLAYING
#define DSERR_INVALIDPARAM
struct IDirectSoundBuffer8 * LPDIRECTSOUNDBUFFER8
#define FillMemory(BUF, SIZ, MASK)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
VOID WINAPI CoTaskMemFree(LPVOID ptr)
_In_ DWORD _In_ DWORD dwOffset
_Check_return_ HRESULT WINAPI StringFromIID(_In_ REFIID rclsid, _Outptr_ LPOLESTR *lplpsz)
#define IsEqualIID(riid1, riid2)
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnAcquireResources(LPDIRECTSOUNDBUFFER8 iface, DWORD dwFlags, DWORD dwEffectsCount, LPDWORD pdwResultCodes)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetCurrentPosition(LPDIRECTSOUNDBUFFER8 iface, LPDWORD pdwCurrentPlayCursor, LPDWORD pdwCurrentWriteCursor)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetCaps(LPDIRECTSOUNDBUFFER8 iface, LPDSBCAPS pDSBufferCaps)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnPlay(LPDIRECTSOUNDBUFFER8 iface, DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags)
HRESULT NewSecondarySoundBuffer(LPDIRECTSOUNDBUFFER8 *OutBuffer, LPFILTERINFO Filter, DWORD dwLevel, LPCDSBUFFERDESC lpcDSBufferDesc, LPDIRECTSOUNDBUFFER8 PrimaryBuffer)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetVolume(LPDIRECTSOUNDBUFFER8 iface, LONG lVolume)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetStatus(LPDIRECTSOUNDBUFFER8 iface, LPDWORD pdwStatus)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetFrequency(LPDIRECTSOUNDBUFFER8 iface, LPDWORD pdwFrequency)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetVolume(LPDIRECTSOUNDBUFFER8 iface, LPLONG plVolume)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetPan(LPDIRECTSOUNDBUFFER8 iface, LONG lPan)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnRestore(LPDIRECTSOUNDBUFFER8 iface)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetObjectInPath(LPDIRECTSOUNDBUFFER8 iface, REFGUID rguidObject, DWORD dwIndex, REFGUID rguidInterface, LPVOID *ppObject)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetFormat(LPDIRECTSOUNDBUFFER8 iface, LPWAVEFORMATEX pwfxFormat, DWORD dwSizeAllocated, LPDWORD pdwSizeWritten)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnUnlock(LPDIRECTSOUNDBUFFER8 iface, LPVOID pvAudioPtr1, DWORD dwAudioBytes1, LPVOID pvAudioPtr2, DWORD dwAudioBytes2)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetFrequency(LPDIRECTSOUNDBUFFER8 iface, DWORD dwFrequency)
ULONG WINAPI SecondaryDirectSoundBuffer8Impl_fnRelease(LPDIRECTSOUNDBUFFER8 iface)
static IDirectSoundBuffer8Vtbl vt_DirectSoundBuffer8
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnGetPan(LPDIRECTSOUNDBUFFER8 iface, LPLONG plPan)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnLock(LPDIRECTSOUNDBUFFER8 iface, DWORD dwOffset, DWORD dwBytes, LPVOID *ppvAudioPtr1, LPDWORD pdwAudioBytes1, LPVOID *ppvAudioPtr2, LPDWORD pdwAudioBytes2, DWORD dwFlags)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnStop(LPDIRECTSOUNDBUFFER8 iface)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnQueryInterface(LPDIRECTSOUNDBUFFER8 iface, IN REFIID riid, LPVOID *ppobj)
ULONG WINAPI SecondaryDirectSoundBuffer8Impl_fnAddRef(LPDIRECTSOUNDBUFFER8 iface)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnInitialize(LPDIRECTSOUNDBUFFER8 iface, LPDIRECTSOUND pDirectSound, LPCDSBUFFERDESC pcDSBufferDesc)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetFormat(LPDIRECTSOUNDBUFFER8 iface, LPCWAVEFORMATEX pcfxFormat)
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetCurrentPosition(LPDIRECTSOUNDBUFFER8 iface, DWORD dwNewPosition)
struct CDirectSoundBuffer * LPCDirectSoundBuffer
HRESULT WINAPI SecondaryDirectSoundBuffer8Impl_fnSetFX(LPDIRECTSOUNDBUFFER8 iface, DWORD dwEffectsCount, LPDSEFFECTDESC pDSFXDesc, LPDWORD pdwResultCodes)
LPDIRECTSOUNDBUFFER8 PrimaryBuffer
DWORD dwUnlockTransferRate
LPWAVEFORMATEX lpwfxFormat
#define CONTAINING_RECORD(address, type, field)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags