dsound: Inline some of the IDirectSound helpers.
Michael Stefaniuc
mstefani at redhat.de
Wed Sep 5 16:19:12 CDT 2012
---
dlls/dsound/dsound.c | 274 +++++++++++++++++-------------------------
dlls/dsound/dsound_private.h | 14 --
2 files changed, 113 insertions(+), 175 deletions(-)
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
index f704693..023ef8b 100644
--- a/dlls/dsound/dsound.c
+++ b/dlls/dsound/dsound.c
@@ -242,11 +242,54 @@ static HRESULT WINAPI IDirectSound8Impl_CreateSoundBuffer(IDirectSound8 *iface,
return DirectSoundDevice_CreateSoundBuffer(This->device, dsbd, ppdsb, lpunk, This->has_ds8);
}
-static HRESULT WINAPI IDirectSound8Impl_GetCaps(IDirectSound8 *iface, DSCAPS *lpDSCaps)
+static HRESULT WINAPI IDirectSound8Impl_GetCaps(IDirectSound8 *iface, DSCAPS *dscaps)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
- TRACE("(%p,%p)\n", This, lpDSCaps);
- return DirectSoundDevice_GetCaps(This->device, lpDSCaps);
+
+ TRACE("(%p, %p)\n", This, dscaps);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+ if (!dscaps) {
+ WARN("invalid parameter: dscaps = NULL\n");
+ return DSERR_INVALIDPARAM;
+ }
+ if (dscaps->dwSize < sizeof(*dscaps)) {
+ WARN("invalid parameter: dscaps->dwSize = %d\n", dscaps->dwSize);
+ return DSERR_INVALIDPARAM;
+ }
+
+ dscaps->dwFlags = This->device->drvcaps.dwFlags;
+ dscaps->dwMinSecondarySampleRate = This->device->drvcaps.dwMinSecondarySampleRate;
+ dscaps->dwMaxSecondarySampleRate = This->device->drvcaps.dwMaxSecondarySampleRate;
+ dscaps->dwPrimaryBuffers = This->device->drvcaps.dwPrimaryBuffers;
+ dscaps->dwMaxHwMixingAllBuffers = This->device->drvcaps.dwMaxHwMixingAllBuffers;
+ dscaps->dwMaxHwMixingStaticBuffers = This->device->drvcaps.dwMaxHwMixingStaticBuffers;
+ dscaps->dwMaxHwMixingStreamingBuffers = This->device->drvcaps.dwMaxHwMixingStreamingBuffers;
+ dscaps->dwFreeHwMixingAllBuffers = This->device->drvcaps.dwFreeHwMixingAllBuffers;
+ dscaps->dwFreeHwMixingStaticBuffers = This->device->drvcaps.dwFreeHwMixingStaticBuffers;
+ dscaps->dwFreeHwMixingStreamingBuffers = This->device->drvcaps.dwFreeHwMixingStreamingBuffers;
+ dscaps->dwMaxHw3DAllBuffers = This->device->drvcaps.dwMaxHw3DAllBuffers;
+ dscaps->dwMaxHw3DStaticBuffers = This->device->drvcaps.dwMaxHw3DStaticBuffers;
+ dscaps->dwMaxHw3DStreamingBuffers = This->device->drvcaps.dwMaxHw3DStreamingBuffers;
+ dscaps->dwFreeHw3DAllBuffers = This->device->drvcaps.dwFreeHw3DAllBuffers;
+ dscaps->dwFreeHw3DStaticBuffers = This->device->drvcaps.dwFreeHw3DStaticBuffers;
+ dscaps->dwFreeHw3DStreamingBuffers = This->device->drvcaps.dwFreeHw3DStreamingBuffers;
+ dscaps->dwTotalHwMemBytes = This->device->drvcaps.dwTotalHwMemBytes;
+ dscaps->dwFreeHwMemBytes = This->device->drvcaps.dwFreeHwMemBytes;
+ dscaps->dwMaxContigFreeHwMemBytes = This->device->drvcaps.dwMaxContigFreeHwMemBytes;
+ dscaps->dwUnlockTransferRateHwBuffers = This->device->drvcaps.dwUnlockTransferRateHwBuffers;
+ dscaps->dwPlayCpuOverheadSwBuffers = This->device->drvcaps.dwPlayCpuOverheadSwBuffers;
+
+ if (TRACE_ON(dsound)) {
+ TRACE("(flags=0x%08x:\n", dscaps->dwFlags);
+ _dump_DSCAPS(dscaps->dwFlags);
+ TRACE(")\n");
+ }
+
+ return DS_OK;
}
static HRESULT WINAPI IDirectSound8Impl_DuplicateSoundBuffer(IDirectSound8 *iface,
@@ -261,30 +304,75 @@ static HRESULT WINAPI IDirectSound8Impl_SetCooperativeLevel(IDirectSound8 *iface
DWORD level)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
+
TRACE("(%p,%p,%s)\n", This, hwnd, dumpCooperativeLevel(level));
- return DirectSoundDevice_SetCooperativeLevel(This->device, hwnd, level);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+
+ if (level == DSSCL_PRIORITY || level == DSSCL_EXCLUSIVE) {
+ WARN("level=%s not fully supported\n",
+ level == DSSCL_PRIORITY ? "DSSCL_PRIORITY" : "DSSCL_EXCLUSIVE");
+ }
+
+ This->device->priolevel = level;
+ return DS_OK;
}
static HRESULT WINAPI IDirectSound8Impl_Compact(IDirectSound8 *iface)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
+
TRACE("(%p)\n", This);
- return DirectSoundDevice_Compact(This->device);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+
+ if (This->device->priolevel < DSSCL_PRIORITY) {
+ WARN("incorrect priority level\n");
+ return DSERR_PRIOLEVELNEEDED;
+ }
+ return DS_OK;
}
-static HRESULT WINAPI IDirectSound8Impl_GetSpeakerConfig(IDirectSound8 *iface,
- DWORD *lpdwSpeakerConfig)
+static HRESULT WINAPI IDirectSound8Impl_GetSpeakerConfig(IDirectSound8 *iface, DWORD *config)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
- TRACE("(%p, %p)\n", This, lpdwSpeakerConfig);
- return DirectSoundDevice_GetSpeakerConfig(This->device, lpdwSpeakerConfig);
+
+ TRACE("(%p, %p)\n", This, config);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+ if (!config) {
+ WARN("invalid parameter: config == NULL\n");
+ return DSERR_INVALIDPARAM;
+ }
+
+ WARN("not fully functional\n");
+ *config = This->device->speaker_config;
+ return DS_OK;
}
static HRESULT WINAPI IDirectSound8Impl_SetSpeakerConfig(IDirectSound8 *iface, DWORD config)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
+
TRACE("(%p,0x%08x)\n", This, config);
- return DirectSoundDevice_SetSpeakerConfig(This->device, config);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+
+ This->device->speaker_config = config;
+ WARN("not fully functional\n");
+ return DS_OK;
}
static HRESULT WINAPI IDirectSound8Impl_Initialize(IDirectSound8 *iface, const GUID *lpcGuid)
@@ -294,12 +382,23 @@ static HRESULT WINAPI IDirectSound8Impl_Initialize(IDirectSound8 *iface, const G
return DirectSoundDevice_Initialize(&This->device, lpcGuid);
}
-static HRESULT WINAPI IDirectSound8Impl_VerifyCertification(IDirectSound8 *iface,
- DWORD *pdwCertified)
+static HRESULT WINAPI IDirectSound8Impl_VerifyCertification(IDirectSound8 *iface, DWORD *certified)
{
IDirectSoundImpl *This = impl_from_IDirectSound8(iface);
- TRACE("(%p, %p)\n", This, pdwCertified);
- return DirectSoundDevice_VerifyCertification(This->device, pdwCertified);
+
+ TRACE("(%p, %p)\n", This, certified);
+
+ if (!This->device) {
+ WARN("not initialized\n");
+ return DSERR_UNINITIALIZED;
+ }
+
+ if (This->device->drvcaps.dwFlags & DSCAPS_CERTIFIED)
+ *certified = DS_CERTIFIED;
+ else
+ *certified = DS_UNCERTIFIED;
+
+ return DS_OK;
}
static const IDirectSound8Vtbl ds8_vtbl =
@@ -596,58 +695,6 @@ ULONG DirectSoundDevice_Release(DirectSoundDevice * device)
return ref;
}
-HRESULT DirectSoundDevice_GetCaps(
- DirectSoundDevice * device,
- LPDSCAPS lpDSCaps)
-{
- TRACE("(%p,%p)\n",device,lpDSCaps);
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- if (lpDSCaps == NULL) {
- WARN("invalid parameter: lpDSCaps = NULL\n");
- return DSERR_INVALIDPARAM;
- }
-
- /* check if there is enough room */
- if (lpDSCaps->dwSize < sizeof(*lpDSCaps)) {
- WARN("invalid parameter: lpDSCaps->dwSize = %d\n", lpDSCaps->dwSize);
- return DSERR_INVALIDPARAM;
- }
-
- lpDSCaps->dwFlags = device->drvcaps.dwFlags;
- if (TRACE_ON(dsound)) {
- TRACE("(flags=0x%08x:\n",lpDSCaps->dwFlags);
- _dump_DSCAPS(lpDSCaps->dwFlags);
- TRACE(")\n");
- }
- lpDSCaps->dwMinSecondarySampleRate = device->drvcaps.dwMinSecondarySampleRate;
- lpDSCaps->dwMaxSecondarySampleRate = device->drvcaps.dwMaxSecondarySampleRate;
- lpDSCaps->dwPrimaryBuffers = device->drvcaps.dwPrimaryBuffers;
- lpDSCaps->dwMaxHwMixingAllBuffers = device->drvcaps.dwMaxHwMixingAllBuffers;
- lpDSCaps->dwMaxHwMixingStaticBuffers = device->drvcaps.dwMaxHwMixingStaticBuffers;
- lpDSCaps->dwMaxHwMixingStreamingBuffers = device->drvcaps.dwMaxHwMixingStreamingBuffers;
- lpDSCaps->dwFreeHwMixingAllBuffers = device->drvcaps.dwFreeHwMixingAllBuffers;
- lpDSCaps->dwFreeHwMixingStaticBuffers = device->drvcaps.dwFreeHwMixingStaticBuffers;
- lpDSCaps->dwFreeHwMixingStreamingBuffers = device->drvcaps.dwFreeHwMixingStreamingBuffers;
- lpDSCaps->dwMaxHw3DAllBuffers = device->drvcaps.dwMaxHw3DAllBuffers;
- lpDSCaps->dwMaxHw3DStaticBuffers = device->drvcaps.dwMaxHw3DStaticBuffers;
- lpDSCaps->dwMaxHw3DStreamingBuffers = device->drvcaps.dwMaxHw3DStreamingBuffers;
- lpDSCaps->dwFreeHw3DAllBuffers = device->drvcaps.dwFreeHw3DAllBuffers;
- lpDSCaps->dwFreeHw3DStaticBuffers = device->drvcaps.dwFreeHw3DStaticBuffers;
- lpDSCaps->dwFreeHw3DStreamingBuffers = device->drvcaps.dwFreeHw3DStreamingBuffers;
- lpDSCaps->dwTotalHwMemBytes = device->drvcaps.dwTotalHwMemBytes;
- lpDSCaps->dwFreeHwMemBytes = device->drvcaps.dwFreeHwMemBytes;
- lpDSCaps->dwMaxContigFreeHwMemBytes = device->drvcaps.dwMaxContigFreeHwMemBytes;
- lpDSCaps->dwUnlockTransferRateHwBuffers = device->drvcaps.dwUnlockTransferRateHwBuffers;
- lpDSCaps->dwPlayCpuOverheadSwBuffers = device->drvcaps.dwPlayCpuOverheadSwBuffers;
-
- return DS_OK;
-}
-
BOOL DSOUND_check_supported(IAudioClient *client, DWORD rate,
DWORD depth, WORD channels)
{
@@ -998,101 +1045,6 @@ HRESULT DirectSoundDevice_DuplicateSoundBuffer(
return hres;
}
-HRESULT DirectSoundDevice_SetCooperativeLevel(
- DirectSoundDevice * device,
- HWND hwnd,
- DWORD level)
-{
- TRACE("(%p,%p,%s)\n",device,hwnd,dumpCooperativeLevel(level));
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- if (level==DSSCL_PRIORITY || level==DSSCL_EXCLUSIVE) {
- WARN("level=%s not fully supported\n",
- level==DSSCL_PRIORITY ? "DSSCL_PRIORITY" : "DSSCL_EXCLUSIVE");
- }
-
- device->priolevel = level;
- return DS_OK;
-}
-
-HRESULT DirectSoundDevice_Compact(
- DirectSoundDevice * device)
-{
- TRACE("(%p)\n", device);
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- if (device->priolevel < DSSCL_PRIORITY) {
- WARN("incorrect priority level\n");
- return DSERR_PRIOLEVELNEEDED;
- }
-
- return DS_OK;
-}
-
-HRESULT DirectSoundDevice_GetSpeakerConfig(
- DirectSoundDevice * device,
- LPDWORD lpdwSpeakerConfig)
-{
- TRACE("(%p, %p)\n", device, lpdwSpeakerConfig);
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- if (lpdwSpeakerConfig == NULL) {
- WARN("invalid parameter: lpdwSpeakerConfig == NULL\n");
- return DSERR_INVALIDPARAM;
- }
-
- WARN("not fully functional\n");
- *lpdwSpeakerConfig = device->speaker_config;
- return DS_OK;
-}
-
-HRESULT DirectSoundDevice_SetSpeakerConfig(
- DirectSoundDevice * device,
- DWORD config)
-{
- TRACE("(%p,0x%08x)\n",device,config);
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- device->speaker_config = config;
- WARN("not fully functional\n");
- return DS_OK;
-}
-
-HRESULT DirectSoundDevice_VerifyCertification(
- DirectSoundDevice * device,
- LPDWORD pdwCertified)
-{
- TRACE("(%p, %p)\n",device,pdwCertified);
-
- if (device == NULL) {
- WARN("not initialized\n");
- return DSERR_UNINITIALIZED;
- }
-
- if (device->drvcaps.dwFlags & DSCAPS_CERTIFIED)
- *pdwCertified = DS_CERTIFIED;
- else
- *pdwCertified = DS_UNCERTIFIED;
-
- return DS_OK;
-}
-
/*
* Add secondary buffer to buffer list.
* Gets exclusive access to buffer for writing.
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index eb582da..d5fb415 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -121,7 +121,6 @@ HRESULT DirectSoundDevice_AddBuffer(
HRESULT DirectSoundDevice_RemoveBuffer(
DirectSoundDevice * device,
IDirectSoundBufferImpl * pDSB) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_GetCaps(DirectSoundDevice * device, LPDSCAPS lpDSCaps) DECLSPEC_HIDDEN;
HRESULT DirectSoundDevice_CreateSoundBuffer(
DirectSoundDevice * device,
LPCDSBUFFERDESC dsbd,
@@ -132,19 +131,6 @@ HRESULT DirectSoundDevice_DuplicateSoundBuffer(
DirectSoundDevice * device,
LPDIRECTSOUNDBUFFER psb,
LPLPDIRECTSOUNDBUFFER ppdsb) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_SetCooperativeLevel(
- DirectSoundDevice * devcie,
- HWND hwnd,
- DWORD level) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_Compact(DirectSoundDevice * device) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_GetSpeakerConfig(
- DirectSoundDevice * device,
- LPDWORD lpdwSpeakerConfig) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_SetSpeakerConfig(
- DirectSoundDevice * device,
- DWORD config) DECLSPEC_HIDDEN;
-HRESULT DirectSoundDevice_VerifyCertification(DirectSoundDevice * device,
- LPDWORD pdwCertified) DECLSPEC_HIDDEN;
/*****************************************************************************
* IDirectSoundBuffer implementation structure
--
1.7.7.6
More information about the wine-patches
mailing list