From 5c5ed245aa080189e09bfc175453b687d8a9286d Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Thu, 26 Apr 2012 08:08:43 +0200 Subject: [PATCH] dmusic: IDirectMusicBufferImpl_GetUsedBytes. --- dlls/dmusic/buffer.c | 9 +++++++-- dlls/dmusic/tests/dmusic.c | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/dmusic/buffer.c b/dlls/dmusic/buffer.c index fd1d2179436..f4ea22cec15 100644 --- a/dlls/dmusic/buffer.c +++ b/dlls/dmusic/buffer.c @@ -177,11 +177,16 @@ static HRESULT WINAPI IDirectMusicBufferImpl_GetStartTime(LPDIRECTMUSICBUFFER if return S_OK; } -static HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes(LPDIRECTMUSICBUFFER iface, LPDWORD pcb) +static HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes(LPDIRECTMUSICBUFFER iface, LPDWORD used_bytes) { IDirectMusicBufferImpl *This = impl_from_IDirectMusicBuffer(iface); - FIXME("(%p, %p): stub\n", This, pcb); + TRACE("(%p)->(%p)\n", iface, used_bytes); + + if (!used_bytes) + return E_POINTER; + + *used_bytes = This->write_pos; return S_OK; } diff --git a/dlls/dmusic/tests/dmusic.c b/dlls/dmusic/tests/dmusic.c index c6d4ad36423..71e89fd82b0 100644 --- a/dlls/dmusic/tests/dmusic.c +++ b/dlls/dmusic/tests/dmusic.c @@ -112,6 +112,7 @@ static void test_dmbuffer(void) DMUS_BUFFERDESC desc; GUID format; DWORD size; + DWORD bytes; hr = CoCreateInstance(&CLSID_DirectMusic, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusic, (LPVOID*)&dmusic); if (hr != S_OK) @@ -139,6 +140,9 @@ static void test_dmbuffer(void) ok(hr == DMUS_E_INVALID_EVENT, "IDirectMusicBuffer_PackStructured returned %x\n", hr); hr = IDirectMusicBuffer_PackStructured(dmbuffer, 10, 0, 0x000090); /* note on : chan 0, note 0 & vel 0 */ ok(hr == S_OK, "IDirectMusicBuffer_PackStructured returned %x\n", hr); + hr = IDirectMusicBuffer_GetUsedBytes(dmbuffer, &bytes); + ok(hr == S_OK, "IDirectMusicBuffer_GetUsedBytes returned %x\n", hr); + ok(bytes == 24, "Buffer size is %u instead of 0\n", bytes); if (dmbuffer) IDirectMusicBuffer_Release(dmbuffer);