Go to the source code of this file.
|
| | WINE_DEFAULT_DEBUG_CHANNEL (dmime) |
| |
| static struct graph * | impl_from_IDirectMusicGraph (IDirectMusicGraph *iface) |
| |
| static struct graph * | impl_from_IPersistStream (IPersistStream *iface) |
| |
| static HRESULT WINAPI | graph_QueryInterface (IDirectMusicGraph *iface, REFIID riid, void **ret_iface) |
| |
| static ULONG WINAPI | graph_AddRef (IDirectMusicGraph *iface) |
| |
| static ULONG WINAPI | graph_Release (IDirectMusicGraph *iface) |
| |
| static HRESULT WINAPI | graph_StampPMsg (IDirectMusicGraph *iface, DMUS_PMSG *msg) |
| |
| static HRESULT WINAPI | graph_InsertTool (IDirectMusicGraph *iface, IDirectMusicTool *tool, DWORD *channels, DWORD channel_count, LONG index) |
| |
| static HRESULT WINAPI | graph_GetTool (IDirectMusicGraph *iface, DWORD index, IDirectMusicTool **ret_tool) |
| |
| static HRESULT WINAPI | graph_RemoveTool (IDirectMusicGraph *iface, IDirectMusicTool *tool) |
| |
| static HRESULT WINAPI | graph_IDirectMusicObject_ParseDescriptor (IDirectMusicObject *iface, IStream *stream, DMUS_OBJECTDESC *desc) |
| |
| static HRESULT WINAPI | graph_IPersistStream_Load (IPersistStream *iface, IStream *stream) |
| |
| HRESULT | create_dmgraph (REFIID riid, void **ret_iface) |
| |
◆ create_dmgraph()
Definition at line 301 of file graph.c.
302{
305
314
317
319}
static void list_init(struct list_entry *head)
static const IDirectMusicObjectVtbl dmobject_vtbl
static const IDirectMusicGraphVtbl graph_vtbl
static const IPersistStreamVtbl persiststream_vtbl
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
#define IDirectMusicGraph_QueryInterface(p, a, b)
#define IDirectMusicGraph_Release(p)
Referenced by IDirectMusicAudioPathImpl_GetObjectInPath().
◆ graph_AddRef()
| static ULONG WINAPI graph_AddRef |
( |
IDirectMusicGraph * |
iface | ) |
|
|
static |
Definition at line 78 of file graph.c.
79{
82
84
86}
#define InterlockedIncrement
static struct graph * impl_from_IDirectMusicGraph(IDirectMusicGraph *iface)
◆ graph_GetTool()
| static HRESULT WINAPI graph_GetTool |
( |
IDirectMusicGraph * |
iface, |
|
|
DWORD |
index, |
|
|
IDirectMusicTool ** |
ret_tool |
|
) |
| |
|
static |
Definition at line 181 of file graph.c.
182{
185
187
189
191 {
193 {
194 *ret_tool =
entry->tool;
197 }
198 }
199
201}
#define IDirectMusicTool_AddRef(p)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
◆ graph_IDirectMusicObject_ParseDescriptor()
Definition at line 237 of file graph.c.
239{
242
244
249
256 }
257
262
263 desc->guidClass = CLSID_DirectMusicGraph;
265
268}
#define DMUS_E_CHUNKNOTFOUND
HRESULT dmobj_parsedescriptor(IStream *stream, const struct chunk_entry *riff, DMUS_OBJECTDESC *desc, DWORD supported)
void dump_DMUS_OBJECTDESC(DMUS_OBJECTDESC *desc)
const char * debugstr_chunk(const struct chunk_entry *chunk)
HRESULT stream_skip_chunk(IStream *stream, const struct chunk_entry *chunk)
HRESULT stream_get_chunk(IStream *stream, struct chunk_entry *chunk)
#define DMUS_FOURCC_TOOLGRAPH_FORM
#define DMUS_OBJ_CATEGORY
D3D11_SHADER_VARIABLE_DESC desc
◆ graph_InsertTool()
| static HRESULT WINAPI graph_InsertTool |
( |
IDirectMusicGraph * |
iface, |
|
|
IDirectMusicTool * |
tool, |
|
|
DWORD * |
channels, |
|
|
DWORD |
channel_count, |
|
|
LONG |
index |
|
) |
| |
|
static |
Definition at line 150 of file graph.c.
152{
156
158
160
162 {
164 if (
index-- <= 0)
break;
165 }
166
172 {
173 WARN(
"Failed to get delivery type from tool %p, hr %#lx\n",
tool,
hr);
175 }
177
179}
#define DMUS_E_ALREADY_EXISTS
#define IDirectMusicTool_Init(p, a)
#define IDirectMusicTool_GetMsgDeliveryType(p, a)
@ DMUS_PMSGF_TOOL_IMMEDIATE
static unsigned __int64 next
__WINE_SERVER_LIST_INLINE void list_add_before(struct list *elem, struct list *to_add)
◆ graph_IPersistStream_Load()
Definition at line 279 of file graph.c.
280{
282
284
287}
static struct graph * impl_from_IPersistStream(IPersistStream *iface)
#define IDirectMusicObject_ParseDescriptor(p, a, b)
◆ graph_QueryInterface()
Definition at line 50 of file graph.c.
51{
53
55
57
60 {
61 *ret_iface = &
This->IDirectMusicGraph_iface;
62 }
64 *ret_iface = &
This->dmobj.IDirectMusicObject_iface;
66 *ret_iface = &
This->dmobj.IPersistStream_iface;
67
68 if (*ret_iface)
69 {
72 }
73
76}
#define IDirectMusicGraph_AddRef(p)
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
◆ graph_Release()
| static ULONG WINAPI graph_Release |
( |
IDirectMusicGraph * |
iface | ) |
|
|
static |
Definition at line 88 of file graph.c.
89{
92
94
96 {
98
100 {
104 }
105
107 }
108
110}
#define InterlockedDecrement
static void list_remove(struct list_entry *entry)
#define IDirectMusicTool_Release(p)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
◆ graph_RemoveTool()
| static HRESULT WINAPI graph_RemoveTool |
( |
IDirectMusicGraph * |
iface, |
|
|
IDirectMusicTool * |
tool |
|
) |
| |
|
static |
Definition at line 203 of file graph.c.
204{
207
209
211
213 {
215 {
220 }
221 }
222
224}
◆ graph_StampPMsg()
Definition at line 112 of file graph.c.
113{
117
119
121
124 if (
entry->tool ==
msg->pTool)
break;
126
128 {
131 }
132
134
136 {
139 }
140
143
144 msg->dwFlags &= ~delivery_flags;
145 msg->dwFlags |=
next->delivery;
146
148}
◆ impl_from_IDirectMusicGraph()
| static struct graph * impl_from_IDirectMusicGraph |
( |
IDirectMusicGraph * |
iface | ) |
|
|
inlinestatic |
◆ impl_from_IPersistStream()
◆ WINE_DEFAULT_DEBUG_CHANNEL()
| WINE_DEFAULT_DEBUG_CHANNEL |
( |
dmime |
| ) |
|
◆ dmobject_vtbl
| const IDirectMusicObjectVtbl dmobject_vtbl |
|
static |
Initial value:= {
}
static HRESULT WINAPI graph_IDirectMusicObject_ParseDescriptor(IDirectMusicObject *iface, IStream *stream, DMUS_OBJECTDESC *desc)
HRESULT WINAPI dmobj_IDirectMusicObject_GetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
ULONG WINAPI dmobj_IDirectMusicObject_Release(IDirectMusicObject *iface)
HRESULT WINAPI dmobj_IDirectMusicObject_QueryInterface(IDirectMusicObject *iface, REFIID riid, void **ret_iface)
HRESULT WINAPI dmobj_IDirectMusicObject_SetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
ULONG WINAPI dmobj_IDirectMusicObject_AddRef(IDirectMusicObject *iface)
Definition at line 270 of file graph.c.
Referenced by create_dmgraph().
◆ graph_vtbl
| const IDirectMusicGraphVtbl graph_vtbl |
|
static |
Initial value:=
{
}
static HRESULT WINAPI graph_StampPMsg(IDirectMusicGraph *iface, DMUS_PMSG *msg)
static ULONG WINAPI graph_Release(IDirectMusicGraph *iface)
static HRESULT WINAPI graph_RemoveTool(IDirectMusicGraph *iface, IDirectMusicTool *tool)
static ULONG WINAPI graph_AddRef(IDirectMusicGraph *iface)
static HRESULT WINAPI graph_GetTool(IDirectMusicGraph *iface, DWORD index, IDirectMusicTool **ret_tool)
static HRESULT WINAPI graph_InsertTool(IDirectMusicGraph *iface, IDirectMusicTool *tool, DWORD *channels, DWORD channel_count, LONG index)
static HRESULT WINAPI graph_QueryInterface(IDirectMusicGraph *iface, REFIID riid, void **ret_iface)
Definition at line 226 of file graph.c.
Referenced by create_dmgraph().
◆ persiststream_vtbl
| const IPersistStreamVtbl persiststream_vtbl |
|
static |
Initial value:= {
}
static HRESULT WINAPI graph_IPersistStream_Load(IPersistStream *iface, IStream *stream)
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream, BOOL clear_dirty)
Definition at line 289 of file graph.c.
Referenced by create_dmgraph().