Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e743e091
Commit
e743e091
authored
Apr 29, 2003
by
Robert Reif
Committed by
Alexandre Julliard
Apr 29, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added partial property set support which is used by dxdiag.exe.
parent
144d7f5d
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
549 additions
and
9 deletions
+549
-9
dsound_main.c
dlls/dsound/dsound_main.c
+0
-8
propset.c
dlls/dsound/propset.c
+378
-1
Makefile.in
include/Makefile.in
+1
-0
dsconf.h
include/dsconf.h
+169
-0
dxguid.c
libs/uuid/dxguid.c
+1
-0
No files found.
dlls/dsound/dsound_main.c
View file @
e743e091
...
...
@@ -920,16 +920,8 @@ static HRESULT WINAPI DSCF_CreateInstance(
IsEqualGUID
(
&
IID_IDirectSoundCapture8
,
riid
)
)
{
return
DirectSoundCaptureCreate8
(
0
,(
LPDIRECTSOUNDCAPTURE8
*
)
ppobj
,
pOuter
);
}
/* DxDiag tries to create this */
if
(
IsEqualGUID
(
&
IID_IKsPropertySet
,
riid
)
)
{
FIXME
(
"(%p,%p,%s,%p) IID_IKsPropertySet not implemented
\n
"
,
This
,
pOuter
,
debugstr_guid
(
riid
),
ppobj
);
/* FIXME: what is DxDiag looking for here? */
#if 0
return
IKsPropertySetImpl_Create
(
0
,(
IKsPropertySetImpl
**
)
ppobj
);
#else
return
E_NOINTERFACE
;
#endif
}
FIXME
(
"(%p,%p,%s,%p) Interface not found!
\n
"
,
This
,
pOuter
,
debugstr_guid
(
riid
),
ppobj
);
...
...
dlls/dsound/propset.c
View file @
e743e091
...
...
@@ -38,12 +38,14 @@
#include "winerror.h"
#include "mmsystem.h"
#include "winternl.h"
#include "winnls.h"
#include "mmddk.h"
#include "wine/windef16.h"
#include "wine/debug.h"
#include "dsound.h"
#include "dsdriver.h"
#include "dsound_private.h"
#include "dsconf.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
dsound
);
...
...
@@ -83,6 +85,349 @@ static ULONG WINAPI IKsPropertySetImpl_Release(LPKSPROPERTYSET iface) {
return
0
;
}
static
HRESULT
WINAPI
DSPROPERTY_WaveDeviceMappingA
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
ppd
;
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p) not implemented!
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
ppd
=
(
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
)
pPropData
;
if
(
!
ppd
)
{
WARN
(
"invalid parameter: pPropData
\n
"
);
return
DSERR_INVALIDPARAM
;
}
FIXME
(
"DeviceName=%s
\n
"
,
ppd
->
DeviceName
);
FIXME
(
"DataFlow=%s
\n
"
,
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
?
"DIRECTSOUNDDEVICE_DATAFLOW_RENDER"
:
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
?
"DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE"
:
"UNKNOWN"
);
/* FIXME: match the name to a wave device somehow. */
ppd
->
DeviceId
=
GUID_NULL
;
if
(
pcbReturned
)
{
*
pcbReturned
=
cbPropData
;
FIXME
(
"*pcbReturned=%ld
\n
"
,
*
pcbReturned
);
}
return
S_OK
;
}
static
HRESULT
WINAPI
DSPROPERTY_WaveDeviceMappingW
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
ppd
;
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p) not implemented!
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
ppd
=
(
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
)
pPropData
;
if
(
!
ppd
)
{
WARN
(
"invalid parameter: pPropData
\n
"
);
return
DSERR_INVALIDPARAM
;
}
FIXME
(
"DeviceName=%s
\n
"
,
debugstr_w
(
ppd
->
DeviceName
));
FIXME
(
"DataFlow=%s
\n
"
,
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
?
"DIRECTSOUNDDEVICE_DATAFLOW_RENDER"
:
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
?
"DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE"
:
"UNKNOWN"
);
/* FIXME: match the name to a wave device somehow. */
ppd
->
DeviceId
=
GUID_NULL
;
if
(
pcbReturned
)
{
*
pcbReturned
=
cbPropData
;
FIXME
(
"*pcbReturned=%ld
\n
"
,
*
pcbReturned
);
}
return
S_OK
;
}
static
HRESULT
WINAPI
DSPROPERTY_Description1
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
HRESULT
err
;
GUID
guid
,
dev_guid
;
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
ppd
;
TRACE
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
ppd
=
(
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
)
pPropData
;
if
(
!
ppd
)
{
WARN
(
"invalid parameter: pPropData
\n
"
);
return
DSERR_INVALIDPARAM
;
}
TRACE
(
"DeviceId=%s
\n
"
,
debugstr_guid
(
&
ppd
->
DeviceId
));
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
GUID_NULL
)
)
{
/* default device of type specified by ppd->DataFlow */
if
(
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
)
{
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
\n
"
);
}
else
if
(
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
)
{
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_RENDER
\n
"
);
}
else
{
TRACE
(
"DataFlow=Unknown(%d)
\n
"
,
ppd
->
DataFlow
);
}
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p) GUID_NULL not implemented!
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
else
{
GetDeviceID
(
&
ppd
->
DeviceId
,
&
dev_guid
);
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultPlayback
)
||
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultVoicePlayback
)
)
{
ULONG
wod
;
int
wodn
;
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_RENDER
\n
"
);
ppd
->
DataFlow
=
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
;
wodn
=
waveOutGetNumDevs
();
for
(
wod
=
0
;
wod
<
wodn
;
wod
++
)
{
err
=
mmErr
(
waveOutMessage
((
HWAVEOUT
)
wod
,
DRV_QUERYDSOUNDGUID
,(
DWORD
)(
&
guid
),
0
));
if
(
err
==
DS_OK
)
{
if
(
IsEqualGUID
(
&
dev_guid
,
&
guid
)
)
{
DSDRIVERDESC
desc
;
ppd
->
WaveDeviceId
=
wod
;
ppd
->
Devnode
=
wod
;
err
=
mmErr
(
waveOutMessage
((
HWAVEOUT
)
wod
,
DRV_QUERYDSOUNDDESC
,(
DWORD
)
&
(
desc
),
0
));
if
(
err
==
DS_OK
)
{
strncpy
(
ppd
->
DescriptionA
,
desc
.
szDesc
,
sizeof
(
ppd
->
DescriptionA
)
-
1
);
strncpy
(
ppd
->
ModuleA
,
desc
.
szDrvName
,
sizeof
(
ppd
->
ModuleA
)
-
1
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDesc
,
-
1
,
ppd
->
DescriptionW
,
sizeof
(
ppd
->
DescriptionW
)
/
sizeof
(
WCHAR
)
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDrvName
,
-
1
,
ppd
->
ModuleW
,
sizeof
(
ppd
->
ModuleW
)
/
sizeof
(
WCHAR
)
);
break
;
}
else
{
WARN
(
"waveOutMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
{
WARN
(
"waveOutMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultCapture
)
||
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultVoiceCapture
)
)
{
ULONG
wid
;
int
widn
;
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
\n
"
);
ppd
->
DataFlow
=
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
;
widn
=
waveInGetNumDevs
();
for
(
wid
=
0
;
wid
<
widn
;
wid
++
)
{
err
=
mmErr
(
waveInMessage
((
HWAVEIN
)
wid
,
DRV_QUERYDSOUNDGUID
,(
DWORD
)(
&
guid
),
0
));
if
(
err
==
DS_OK
)
{
if
(
IsEqualGUID
(
&
dev_guid
,
&
guid
)
)
{
DSDRIVERDESC
desc
;
ppd
->
WaveDeviceId
=
wid
;
ppd
->
Devnode
=
wid
;
err
=
mmErr
(
waveInMessage
((
HWAVEIN
)
wid
,
DRV_QUERYDSOUNDDESC
,(
DWORD
)
&
(
desc
),
0
));
if
(
err
==
DS_OK
)
{
strncpy
(
ppd
->
DescriptionA
,
desc
.
szDesc
,
sizeof
(
ppd
->
DescriptionA
)
-
1
);
strncpy
(
ppd
->
ModuleA
,
desc
.
szDrvName
,
sizeof
(
ppd
->
ModuleA
)
-
1
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDesc
,
-
1
,
ppd
->
DescriptionW
,
sizeof
(
ppd
->
DescriptionW
)
/
sizeof
(
WCHAR
)
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDrvName
,
-
1
,
ppd
->
ModuleW
,
sizeof
(
ppd
->
ModuleW
)
/
sizeof
(
WCHAR
)
);
break
;
}
else
{
WARN
(
"waveInMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
break
;
}
}
else
{
WARN
(
"waveInMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
{
FIXME
(
"DeviceId=Unknown
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
ppd
->
Type
=
DIRECTSOUNDDEVICE_TYPE_EMULATED
;
if
(
pcbReturned
)
{
*
pcbReturned
=
cbPropData
;
TRACE
(
"*pcbReturned=%ld
\n
"
,
*
pcbReturned
);
}
return
S_OK
;
}
static
HRESULT
WINAPI
DSPROPERTY_DescriptionA
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
static
HRESULT
WINAPI
DSPROPERTY_DescriptionW
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
ppd
=
(
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
)
pPropData
;
HRESULT
err
;
GUID
guid
,
dev_guid
;
TRACE
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
TRACE
(
"DeviceId=%s
\n
"
,
debugstr_guid
(
&
ppd
->
DeviceId
));
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
GUID_NULL
)
)
{
/* default device of type specified by ppd->DataFlow */
if
(
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
)
{
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
\n
"
);
}
else
if
(
ppd
->
DataFlow
==
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
)
{
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_RENDER
\n
"
);
}
else
{
TRACE
(
"DataFlow=Unknown(%d)
\n
"
,
ppd
->
DataFlow
);
}
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p) GUID_NULL not implemented!
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
else
{
GetDeviceID
(
&
ppd
->
DeviceId
,
&
dev_guid
);
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultPlayback
)
||
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultVoicePlayback
)
)
{
ULONG
wod
;
int
wodn
;
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_RENDER
\n
"
);
ppd
->
DataFlow
=
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
;
wodn
=
waveOutGetNumDevs
();
for
(
wod
=
0
;
wod
<
wodn
;
wod
++
)
{
err
=
mmErr
(
waveOutMessage
((
HWAVEOUT
)
wod
,
DRV_QUERYDSOUNDGUID
,(
DWORD
)(
&
guid
),
0
));
if
(
err
==
DS_OK
)
{
if
(
IsEqualGUID
(
&
dev_guid
,
&
guid
)
)
{
DSDRIVERDESC
desc
;
ppd
->
WaveDeviceId
=
wod
;
err
=
mmErr
(
waveOutMessage
((
HWAVEOUT
)
wod
,
DRV_QUERYDSOUNDDESC
,(
DWORD
)
&
(
desc
),
0
));
if
(
err
==
DS_OK
)
{
/* FIXME: this is a memory leak */
WCHAR
*
wDescription
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
WCHAR
*
wModule
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
WCHAR
*
wInterface
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDesc
,
-
1
,
wDescription
,
0x100
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDrvName
,
-
1
,
wModule
,
0x100
);
MultiByteToWideChar
(
CP_ACP
,
0
,
"Interface"
,
-
1
,
wInterface
,
0x100
);
ppd
->
Description
=
wDescription
;
ppd
->
Module
=
wModule
;
ppd
->
Interface
=
wInterface
;
break
;
}
else
{
WARN
(
"waveOutMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
{
WARN
(
"waveOutMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
if
(
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultCapture
)
||
IsEqualGUID
(
&
ppd
->
DeviceId
,
&
DSDEVID_DefaultVoiceCapture
)
)
{
ULONG
wid
;
int
widn
;
TRACE
(
"DataFlow=DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
\n
"
);
ppd
->
DataFlow
=
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
;
widn
=
waveInGetNumDevs
();
for
(
wid
=
0
;
wid
<
widn
;
wid
++
)
{
err
=
mmErr
(
waveInMessage
((
HWAVEIN
)
wid
,
DRV_QUERYDSOUNDGUID
,(
DWORD
)(
&
guid
),
0
));
if
(
err
==
DS_OK
)
{
if
(
IsEqualGUID
(
&
dev_guid
,
&
guid
)
)
{
DSDRIVERDESC
desc
;
ppd
->
WaveDeviceId
=
wid
;
err
=
mmErr
(
waveInMessage
((
HWAVEIN
)
wid
,
DRV_QUERYDSOUNDDESC
,(
DWORD
)
&
(
desc
),
0
));
if
(
err
==
DS_OK
)
{
/* FIXME: this is a memory leak */
WCHAR
*
wDescription
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
WCHAR
*
wModule
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
WCHAR
*
wInterface
=
HeapAlloc
(
GetProcessHeap
(),
0
,
0x200
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDesc
,
-
1
,
wDescription
,
0x100
);
MultiByteToWideChar
(
CP_ACP
,
0
,
desc
.
szDrvName
,
-
1
,
wModule
,
0x100
);
MultiByteToWideChar
(
CP_ACP
,
0
,
"Interface"
,
-
1
,
wInterface
,
0x100
);
ppd
->
Description
=
wDescription
;
ppd
->
Module
=
wModule
;
ppd
->
Interface
=
wInterface
;
break
;
}
else
{
WARN
(
"waveInMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
break
;
}
}
else
{
WARN
(
"waveInMessage failed
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
}
else
{
FIXME
(
"DeviceId=Unknown
\n
"
);
return
E_PROP_ID_UNSUPPORTED
;
}
}
ppd
->
Type
=
DIRECTSOUNDDEVICE_TYPE_EMULATED
;
if
(
pcbReturned
)
{
*
pcbReturned
=
cbPropData
;
TRACE
(
"*pcbReturned=%ld
\n
"
,
*
pcbReturned
);
}
return
S_OK
;
}
static
HRESULT
WINAPI
DSPROPERTY_Enumerate1
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
static
HRESULT
WINAPI
DSPROPERTY_EnumerateA
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
static
HRESULT
WINAPI
DSPROPERTY_EnumerateW
(
REFGUID
guidPropSet
,
LPVOID
pPropData
,
ULONG
cbPropData
,
PULONG
pcbReturned
)
{
FIXME
(
"(guidPropSet=%s,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
debugstr_guid
(
guidPropSet
),
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
static
HRESULT
WINAPI
IKsPropertySetImpl_Get
(
LPKSPROPERTYSET
iface
,
REFGUID
guidPropSet
,
ULONG
dwPropID
,
LPVOID
pInstanceData
,
ULONG
cbInstanceData
,
...
...
@@ -90,8 +435,40 @@ static HRESULT WINAPI IKsPropertySetImpl_Get(LPKSPROPERTYSET iface,
PULONG
pcbReturned
)
{
ICOM_THIS
(
IKsPropertySetImpl
,
iface
);
TRACE
(
"(iface=%p,guidPropSet=%s,dwPropID=%ld,pInstanceData=%p,cbInstanceData=%ld,pPropData=%p,cbPropData=%ld,pcbReturned=%p)
\n
"
,
This
,
debugstr_guid
(
guidPropSet
),
dwPropID
,
pInstanceData
,
cbInstanceData
,
pPropData
,
cbPropData
,
pcbReturned
);
if
(
IsEqualGUID
(
&
DSPROPSETID_DirectSoundDevice
,
guidPropSet
)
)
{
switch
(
dwPropID
)
{
case
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
:
return
DSPROPERTY_WaveDeviceMappingA
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
:
return
DSPROPERTY_Description1
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
:
return
DSPROPERTY_Enumerate1
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
:
return
DSPROPERTY_WaveDeviceMappingW
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
:
return
DSPROPERTY_DescriptionA
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
:
return
DSPROPERTY_DescriptionW
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
:
return
DSPROPERTY_EnumerateA
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
case
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
:
return
DSPROPERTY_EnumerateW
(
guidPropSet
,
pPropData
,
cbPropData
,
pcbReturned
);
default:
FIXME
(
"unsupported ID: %ld
\n
"
,
dwPropID
);
break
;
}
}
else
{
FIXME
(
"unsupported property: %s
\n
"
,
debugstr_guid
(
guidPropSet
));
}
if
(
pcbReturned
)
{
*
pcbReturned
=
0
;
FIXME
(
"*pcbReturned=%ld
\n
"
,
*
pcbReturned
);
}
FIXME
(
"(%p,%s,%ld,%p,%ld,%p,%ld,%p), stub!
\n
"
,
This
,
debugstr_guid
(
guidPropSet
),
dwPropID
,
pInstanceData
,
cbInstanceData
,
pPropData
,
cbPropData
,
pcbReturned
);
return
E_PROP_ID_UNSUPPORTED
;
}
...
...
include/Makefile.in
View file @
e743e091
...
...
@@ -54,6 +54,7 @@ WINDOWS_INCLUDES = \
docobj.h
\
dplay.h
\
dplobby.h
\
dsconf.h
\
dsdriver.h
\
dshow.h
\
dsound.h
\
...
...
include/dsconf.h
0 → 100644
View file @
e743e091
/*
* Copyright (C) 2003 Robert Reif
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DSCONF_H
#define __WINE_DSCONF_H
#include "dsound.h"
#ifdef __cplusplus
extern
"C"
{
#endif
/* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID
(
CLSID_DirectSoundPrivate
,
0x11ab3ec0
,
0x25ec
,
0x11d1
,
0xa4
,
0xd8
,
0x00
,
0xc0
,
0x4f
,
0xc2
,
0x8a
,
0xca
);
DEFINE_GUID
(
DSPROPSETID_DirectSoundDevice
,
0x84624f82
,
0x25ec
,
0x11d1
,
0xa4
,
0xd8
,
0x00
,
0xc0
,
0x4f
,
0xc2
,
0x8a
,
0xca
);
typedef
enum
{
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
=
1
,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1
=
2
,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1
=
3
,
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
=
4
,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
=
5
,
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
=
6
,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
=
7
,
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
=
8
,
}
DSPROPERTY_DIRECTSOUNDDEVICE
;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A
#endif
typedef
enum
{
DIRECTSOUNDDEVICE_TYPE_EMULATED
,
DIRECTSOUNDDEVICE_TYPE_VXD
,
DIRECTSOUNDDEVICE_TYPE_WDM
}
DIRECTSOUNDDEVICE_TYPE
;
typedef
enum
{
DIRECTSOUNDDEVICE_DATAFLOW_RENDER
,
DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE
}
DIRECTSOUNDDEVICE_DATAFLOW
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
{
LPSTR
DeviceName
;
DIRECTSOUNDDEVICE_DATAFLOW
DataFlow
;
GUID
DeviceId
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
{
LPWSTR
DeviceName
;
DIRECTSOUNDDEVICE_DATAFLOW
DataFlow
;
GUID
DeviceId
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A_DATA
#endif
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
{
GUID
DeviceId
;
CHAR
DescriptionA
[
0x100
];
WCHAR
DescriptionW
[
0x100
];
CHAR
ModuleA
[
MAX_PATH
];
WCHAR
ModuleW
[
MAX_PATH
];
DIRECTSOUNDDEVICE_TYPE
Type
;
DIRECTSOUNDDEVICE_DATAFLOW
DataFlow
;
ULONG
WaveDeviceId
;
ULONG
Devnode
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
{
DIRECTSOUNDDEVICE_TYPE
Type
;
DIRECTSOUNDDEVICE_DATAFLOW
DataFlow
;
GUID
DeviceId
;
LPSTR
Description
;
LPSTR
Module
;
LPSTR
Interface
;
ULONG
WaveDeviceId
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
{
DIRECTSOUNDDEVICE_TYPE
Type
;
DIRECTSOUNDDEVICE_DATAFLOW
DataFlow
;
GUID
DeviceId
;
LPWSTR
Description
;
LPWSTR
Module
;
LPWSTR
Interface
;
ULONG
WaveDeviceId
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
#endif
typedef
BOOL
(
CALLBACK
*
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
)(
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA
,
LPVOID
);
typedef
BOOL
(
CALLBACK
*
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
)(
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA
,
LPVOID
);
typedef
BOOL
(
CALLBACK
*
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
)(
PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA
,
LPVOID
);
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACK1
Callback
;
LPVOID
Context
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKA
Callback
;
LPVOID
Context
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
;
typedef
struct
_DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
{
LPFNDIRECTSOUNDDEVICEENUMERATECALLBACKW
Callback
;
LPVOID
Context
;
}
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
,
*
PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
;
#ifdef UNICODE
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA
#else
#define DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#define PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA PDSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA
#endif
#ifdef __cplusplus
}
/* extern "C" */
#endif
/* defined(__cplusplus) */
#endif
/* __WINE_DSCONF_H */
libs/uuid/dxguid.c
View file @
e743e091
...
...
@@ -34,6 +34,7 @@
#include "ddraw.h"
#include "dsound.h"
#include "dsdriver.h"
#include "dsconf.h"
#include "dmusicc.h"
#include "dmusici.h"
#include "dmusics.h"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment