Christian Costa : dmusic: IDirectMusicBufferImpl_GetUsedBytes.
Alexandre Julliard
julliard at winehq.org
Fri Apr 27 10:55:46 CDT 2012
Module: wine
Branch: master
Commit: 5c5ed245aa080189e09bfc175453b687d8a9286d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5c5ed245aa080189e09bfc175453b687d8a9286d
Author: Christian Costa <titan.costa at gmail.com>
Date: Thu Apr 26 08:08:43 2012 +0200
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 fd1d217..f4ea22c 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 c6d4ad3..71e89fd 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);
More information about the wine-cvs
mailing list