+++ /dev/null
-/*
- * DirectSound driver
- * (DirectX 5 version)
- *
- * Copyright (C) 2000 Ove Kaaven
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __WINE_DSDRIVER_H
-#define __WINE_DSDRIVER_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
-DEFINE_GUID(IID_IDsDriver, 0x8C4233C0l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
-typedef struct IDsDriver *PIDSDRIVER;
-
-DEFINE_GUID(IID_IDsDriverBuffer, 0x8C4233C1l, 0xB4CC, 0x11CE, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
-typedef struct IDsDriverBuffer *PIDSDRIVERBUFFER;
-
-DEFINE_GUID(IID_IDsDriverPropertySet, 0x0F6F2E8E0, 0xD842, 0x11D0, 0x8F, 0x75, 0x00, 0xC0, 0x4F, 0xC2, 0x8A, 0xCA);
-typedef struct IDsDriverPropertySet *PIDSDRIVERPROPERTYSET;
-
-DEFINE_GUID(IID_IDsDriverNotify, 0x00363EF44, 0x3B57, 0x11D3, 0xAC, 0x79, 0x00, 0x10, 0x5A, 0x01, 0x7f, 0xe1);
-typedef struct IDsDriverNotify *PIDSDRIVERNOTIFY;
-
-DEFINE_GUID(IID_IDsCaptureDriver, 0x03DD10C47, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
-typedef struct IDsCaptureDriver *PIDSCDRIVER;
-
-DEFINE_GUID(IID_IDsCaptureDriverBuffer, 0x03DD10C48, 0x74FB, 0x11D3, 0x90, 0x49, 0xCB, 0xB4, 0xB3, 0x2E, 0xAA, 0x08);
-typedef struct IDsCaptureDriverBuffer *PIDSCDRIVERBUFFER;
-
-#define DSDDESC_DOMMSYSTEMOPEN 0x00000001
-#define DSDDESC_DOMMSYSTEMSETFORMAT 0x00000002
-#define DSDDESC_USESYSTEMMEMORY 0x00000004
-#define DSDDESC_DONTNEEDPRIMARYLOCK 0x00000008
-#define DSDDESC_DONTNEEDSECONDARYLOCK 0x00000010
-#define DSDDESC_DONTNEEDWRITELEAD 0x00000020
-
-#define DSDHEAP_NOHEAP 0
-#define DSDHEAP_CREATEHEAP 1
-#define DSDHEAP_USEDIRECTDRAWHEAP 2
-#define DSDHEAP_PRIVATEHEAP 3
-
-typedef struct _DSDRIVERDESC
-{
- DWORD dwFlags;
- CHAR szDesc[256];
- CHAR szDrvname[256];
- DWORD dnDevNode;
- WORD wVxdId;
- WORD wReserved;
- ULONG ulDeviceNum;
- DWORD dwHeapType;
- LPVOID pvDirectDrawHeap;
- DWORD dwMemStartAddress;
- DWORD dwMemEndAddress;
- DWORD dwMemAllocExtra;
- LPVOID pvReserved1;
- LPVOID pvReserved2;
-} DSDRIVERDESC,*PDSDRIVERDESC;
-
-typedef struct _DSDRIVERCAPS
-{
- DWORD dwFlags;
- DWORD dwMinSecondarySampleRate;
- DWORD dwMaxSecondarySampleRate;
- DWORD dwPrimaryBuffers;
- DWORD dwMaxHwMixingAllBuffers;
- DWORD dwMaxHwMixingStaticBuffers;
- DWORD dwMaxHwMixingStreamingBuffers;
- DWORD dwFreeHwMixingAllBuffers;
- DWORD dwFreeHwMixingStaticBuffers;
- DWORD dwFreeHwMixingStreamingBuffers;
- DWORD dwMaxHw3DAllBuffers;
- DWORD dwMaxHw3DStaticBuffers;
- DWORD dwMaxHw3DStreamingBuffers;
- DWORD dwFreeHw3DAllBuffers;
- DWORD dwFreeHw3DStaticBuffers;
- DWORD dwFreeHw3DStreamingBuffers;
- DWORD dwTotalHwMemBytes;
- DWORD dwFreeHwMemBytes;
- DWORD dwMaxContigFreeHwMemBytes;
-} DSDRIVERCAPS,*PDSDRIVERCAPS;
-
-typedef struct _DSVOLUMEPAN
-{
- DWORD dwTotalLeftAmpFactor;
- DWORD dwTotalRightAmpFactor;
- LONG lVolume;
- DWORD dwVolAmpFactor;
- LONG lPan;
- DWORD dwPanLeftAmpFactor;
- DWORD dwPanRightAmpFactor;
-} DSVOLUMEPAN,*PDSVOLUMEPAN;
-
-typedef union _DSPROPERTY
-{
- struct {
- GUID Set;
- ULONG Id;
- ULONG Flags;
- ULONG InstanceId;
- } DUMMYSTRUCTNAME;
- ULONGLONG Alignment;
-} DSPROPERTY,*PDSPROPERTY;
-
-typedef struct _DSCDRIVERCAPS
-{
- DWORD dwSize;
- DWORD dwFlags;
- DWORD dwFormats;
- DWORD dwChannels;
-} DSCDRIVERCAPS,*PDSCDRIVERCAPS;
-
-/*****************************************************************************
- * IDsDriver interface
- */
-#define INTERFACE IDsDriver
-DECLARE_INTERFACE_(IDsDriver,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsDriver methods ***/
- STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
- STDMETHOD(Open)(THIS) PURE;
- STDMETHOD(Close)(THIS) PURE;
- STDMETHOD(GetCaps)(THIS_ PDSDRIVERCAPS pDsDrvCaps) PURE;
- STDMETHOD(CreateSoundBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
- STDMETHOD(DuplicateSoundBuffer)(THIS_ PIDSDRIVERBUFFER pIDsDriverBuffer,LPVOID *ppvObj) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsDriver_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsDriver methods ***/
-#define IDsDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
-#define IDsDriver_Open(p) (p)->lpVtbl->Open(p)
-#define IDsDriver_Close(p) (p)->lpVtbl->Close(p)
-#define IDsDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
-#define IDsDriver_CreateSoundBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSoundBuffer(p,a,b,c,d,e,f)
-#define IDsDriver_DuplicateSoundBuffer(p,a,b) (p)->lpVtbl->DuplicateSoundBuffer(p,a,b)
-#endif
-
-/*****************************************************************************
- * IDsDriverBuffer interface
- */
-#define INTERFACE IDsDriverBuffer
-DECLARE_INTERFACE_(IDsDriverBuffer,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsDriverBuffer methods ***/
- STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *pdwAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
- STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
- STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
- STDMETHOD(SetFrequency)(THIS_ DWORD dwFrequency) PURE;
- STDMETHOD(SetVolumePan)(THIS_ PDSVOLUMEPAN pDsVolumePan) PURE;
- STDMETHOD(SetPosition)(THIS_ DWORD dwNewPosition) PURE;
- STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
- STDMETHOD(Play)(THIS_ DWORD dwReserved1,DWORD dwReserved2,DWORD dwFlags) PURE;
- STDMETHOD(Stop)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsDriverBuffer methods ***/
-#define IDsDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDsDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDsDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
-#define IDsDriverBuffer_SetFrequency(p,a) (p)->lpVtbl->SetFrequency(p,a)
-#define IDsDriverBuffer_SetVolumePan(p,a) (p)->lpVtbl->SetVolumePan(p,a)
-#define IDsDriverBuffer_SetPosition(p,a) (p)->lpVtbl->SetPosition(p,a)
-#define IDsDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
-#define IDsDriverBuffer_Play(p,a,b,c) (p)->lpVtbl->Play(p,a,b,c)
-#define IDsDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
-#endif
-
-/*****************************************************************************
- * IDsDriverPropertySet interface
- */
-#define INTERFACE IDsDriverPropertySet
-DECLARE_INTERFACE_(IDsDriverPropertySet,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsDriverPropertySet methods ***/
- STDMETHOD(Get)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData,PULONG pcbReturnedData) PURE;
- STDMETHOD(Set)(THIS_ PDSPROPERTY pDsProperty,LPVOID pPropertyParams,ULONG cbPropertyParams,LPVOID pPropertyData,ULONG cbPropertyData) PURE;
- STDMETHOD(QuerySupport)(THIS_ REFGUID PropertySetId,ULONG PropertyId,PULONG pSupport) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsDriverPropertySet_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsDriverPropertySet_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsDriverPropertySet_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsDriverPropertySet methods ***/
-#define IDsDriverPropertySet_Get(p,a,b,c,d,e,f) (p)->lpVtbl->Get(p,a,b,c,d,e,f)
-#define IDsDriverPropertySet_Set(p,a,b,c,d,e) (p)->lpVtbl->Set(p,a,b,c,d,e)
-#define IDsDriverPropertySet_QuerySupport(p,a,b,c) (p)->lpVtbl->QuerySupport(p,a,b,c)
-#endif
-
-/* Defined property sets */
-DEFINE_GUID(DSPROPSETID_DirectSound3DListener, 0x6D047B40, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
-typedef enum
-{
- DSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
- DSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
- DSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
- DSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
- DSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
- DSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
- DSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
- DSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
- DSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
-} DSPROPERTY_DIRECTSOUND3DLISTENER;
-
-DEFINE_GUID(DSPROPSETID_DirectSound3DBuffer, 0x6D047B41, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
-typedef enum
-{
- DSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
- DSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
- DSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
- DSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
- DSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
- DSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
- DSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
- DSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
- DSPROPERTY_DIRECTSOUND3DBUFFER_MODE
-} DSPROPERTY_DIRECTSOUND3DBUFFER;
-
-DEFINE_GUID(DSPROPSETID_DirectSoundSpeakerConfig, 0x6D047B42, 0x7AF9, 0x11D0, 0x92, 0x94, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0);
-typedef enum
-{
- DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG_SPEAKERCONFIG
-} DSPROPERTY_DIRECTSOUNDSPEAKERCONFIG;
-
-/*****************************************************************************
- * IDsDriverNotify interface
- */
-#define INTERFACE IDsDriverNotify
-DECLARE_INTERFACE_(IDsDriverNotify,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsDriverNotify methods ***/
- STDMETHOD(SetNotificationPositions)(THIS_ DWORD dwPositionNotifies,LPCDSBPOSITIONNOTIFY pcPositionNotifies) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsDriverNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsDriverNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsDriverNotify_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsDriverNotify methods ***/
-#define IDsDriverNotify_SetNotificationPositions(p,a,b) (p)->lpVtbl->SetNotificationPositions(p,a,b)
-#endif
-
-/*****************************************************************************
- * IDsCaptureDriver interface
- */
-#define INTERFACE IDsCaptureDriver
-DECLARE_INTERFACE_(IDsCaptureDriver,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsCaptureDriver methods ***/
- STDMETHOD(GetDriverDesc)(THIS_ PDSDRIVERDESC pDsDriverDesc) PURE;
- STDMETHOD(Open)(THIS) PURE;
- STDMETHOD(Close)(THIS) PURE;
- STDMETHOD(GetCaps)(THIS_ PDSCDRIVERCAPS pDsDrvCaps) PURE;
- STDMETHOD(CreateCaptureBuffer)(THIS_ LPWAVEFORMATEX pwfx,DWORD dwFlags,DWORD dwCardAddress,LPDWORD pdwcbBufferSize,LPBYTE *ppbBuffer,LPVOID *ppvObj) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsCaptureDriver_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsCaptureDriver_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsCaptureDriver_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsCaptureDriver methods ***/
-#define IDsCaptureDriver_GetDriverDesc(p,a) (p)->lpVtbl->GetDriverDesc(p,a)
-#define IDsCaptureDriver_Open(p) (p)->lpVtbl->Open(p)
-#define IDsCaptureDriver_Close(p) (p)->lpVtbl->Close(p)
-#define IDsCaptureDriver_GetCaps(p,a) (p)->lpVtbl->GetCaps(p,a)
-#define IDsCaptureDriver_CreateCaptureBuffer(p,a,b,c,d,e,f) (p)->lpVtbl->CreateCaptureBuffer(p,a,b,c,d,e,f)
-#endif
-
-/*****************************************************************************
- * IDsCaptureDriverBuffer interface
- */
-#define INTERFACE IDsCaptureDriverBuffer
-DECLARE_INTERFACE_(IDsCaptureDriverBuffer,IUnknown)
-{
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IDsCaptureDriverBuffer methods ***/
- STDMETHOD(Lock)(THIS_ LPVOID *ppvAudio1,LPDWORD pdwLen1,LPVOID *ppvAudio2,LPDWORD pdwLen2,DWORD dwWritePosition,DWORD dwWriteLen,DWORD dwFlags) PURE;
- STDMETHOD(Unlock)(THIS_ LPVOID pvAudio1,DWORD dwLen1,LPVOID pvAudio2,DWORD dwLen2) PURE;
- STDMETHOD(SetFormat)(THIS_ LPWAVEFORMATEX pwfxToSet) PURE;
- STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwCurrentPlayCursor,LPDWORD lpdwCurrentWriteCursor) PURE;
- STDMETHOD(GetStatus)(THIS_ LPDWORD lpdwStatus) PURE;
- STDMETHOD(Start)(THIS_ DWORD dwFlags) PURE;
- STDMETHOD(Stop)(THIS) PURE;
-};
-#undef INTERFACE
-
-#if !defined (__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
-#define IDsCaptureDriverBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IDsCaptureDriverBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IDsCaptureDriverBuffer_Release(p) (p)->lpVtbl->Release(p)
- /*** IDsCaptureDriverBuffer methods ***/
-#define IDsCaptureDriverBuffer_Lock(p,a,b,c,d,e,f,g) (p)->lpVtbl->Lock(p,a,b,c,d,e,f,g)
-#define IDsCaptureDriverBuffer_Unlock(p,a,b,c,d) (p)->lpVtbl->Unlock(p,a,b,c,d)
-#define IDsCaptureDriverBuffer_SetFormat(p,a) (p)->lpVtbl->SetFormat(p,a)
-#define IDsCaptureDriverBuffer_GetPosition(p,a,b) (p)->lpVtbl->GetPosition(p,a,b)
-#define IDsCaptureDriverBuffer_GetStatus(p,a) (p)->lpVtbl->GetStatus(p,a)
-#define IDsCaptureDriverBuffer_Start(p,a) (p)->lpVtbl->Start(p,a)
-#define IDsCaptureDriverBuffer_Stop(p) (p)->lpVtbl->Stop(p)
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* __WINE_DSDRIVER_H */