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