From 15d5311804bd65b1b6f94357a229ab0496797738 Mon Sep 17 00:00:00 2001 From: Owen Rudge Date: Thu, 20 Jan 2011 15:41:59 +0000 Subject: [PATCH] dsound/tests: Add IEEE float buffer tests for dsound8. --- dlls/dsound/tests/ds3d8.c | 7 ++++++- dlls/dsound/tests/dsound8.c | 33 +++++++++++++++++++++++---------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/dlls/dsound/tests/ds3d8.c b/dlls/dsound/tests/ds3d8.c index 7855fb343cc..aa72648ddc6 100644 --- a/dlls/dsound/tests/ds3d8.c +++ b/dlls/dsound/tests/ds3d8.c @@ -30,6 +30,8 @@ #include "wine/test.h" #include "dsound.h" #include "mmreg.h" +#include "ks.h" +#include "ksmedia.h" #include "dsound_test.h" static HRESULT (WINAPI *pDirectSoundEnumerateA)(LPDSENUMCALLBACKA,LPVOID)=NULL; @@ -181,6 +183,7 @@ void test_buffer8(LPDIRECTSOUND8 dso, LPDIRECTSOUNDBUFFER * dsbo, DSBCAPS dsbcaps; WAVEFORMATEX wfx,wfx2; DWORD size,status,freq; + BOOL ieee = FALSE; int ref; /* DSOUND: Error: Invalid caps pointer */ @@ -214,10 +217,12 @@ void test_buffer8(LPDIRECTSOUND8 dso, LPDIRECTSOUNDBUFFER * dsbo, if (size == sizeof(WAVEFORMATEX)) { rc=IDirectSoundBuffer_GetFormat(*dsbo,&wfx,size,NULL); + ieee = (wfx.wFormatTag == WAVE_FORMAT_IEEE_FLOAT); } else if (size == sizeof(WAVEFORMATEXTENSIBLE)) { WAVEFORMATEXTENSIBLE wfxe; rc=IDirectSoundBuffer_GetFormat(*dsbo,(WAVEFORMATEX*)&wfxe,size,NULL); wfx = wfxe.Format; + ieee = IsEqualGUID(&wfxe.SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT); } ok(rc==DS_OK,"IDirectSoundBuffer_GetFormat() failed: %08x\n", rc); if (rc==DS_OK && winetest_debug > 1) { @@ -447,7 +452,7 @@ void test_buffer8(LPDIRECTSOUND8 dso, LPDIRECTSOUNDBUFFER * dsbo, ok(rc==DSERR_INVALIDPARAM, "IDirectSoundBuffer_Lock() should have " "returned DSERR_INVALIDPARAM, returned %08x\n", rc); - state.wave=wave_generate_la(&wfx,duration,&state.wave_len,FALSE); + state.wave=wave_generate_la(&wfx,duration,&state.wave_len,ieee); state.dsbo=*dsbo; state.wfx=&wfx; diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c index 5eb7c059d35..55610518b1a 100644 --- a/dlls/dsound/tests/dsound8.c +++ b/dlls/dsound/tests/dsound8.c @@ -534,7 +534,7 @@ static HRESULT test_primary_secondary8(LPGUID lpGuid) DSCAPS dscaps; WAVEFORMATEX wfx, wfx2; int ref; - unsigned int f; + unsigned int f, tag; /* Create the DirectSound object */ rc=pDirectSoundCreate8(lpGuid,&dso,NULL); @@ -568,6 +568,11 @@ static HRESULT test_primary_secondary8(LPGUID lpGuid) if (rc==DS_OK && primary!=NULL) { for (f=0;f