From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/audiopath.c | 2 -- dlls/dmime/dmime_main.c | 22 ---------------------- dlls/dmime/dmime_private.h | 7 ------- dlls/dmime/graph.c | 2 -- dlls/dmime/lyricstrack.c | 2 -- dlls/dmime/markertrack.c | 2 -- dlls/dmime/paramcontroltrack.c | 2 -- dlls/dmime/performance.c | 4 ---- dlls/dmime/segment.c | 3 --- dlls/dmime/segmentstate.c | 4 ---- dlls/dmime/segtriggertrack.c | 2 -- dlls/dmime/seqtrack.c | 2 -- dlls/dmime/sysextrack.c | 2 -- dlls/dmime/tempotrack.c | 2 -- dlls/dmime/timesigtrack.c | 2 -- dlls/dmime/wavetrack.c | 2 -- 16 files changed, 62 deletions(-)
diff --git a/dlls/dmime/audiopath.c b/dlls/dmime/audiopath.c index 0857ed77c48..0d7df17bba6 100644 --- a/dlls/dmime/audiopath.c +++ b/dlls/dmime/audiopath.c @@ -96,7 +96,6 @@ static ULONG WINAPI IDirectMusicAudioPathImpl_AddRef (IDirectMusicAudioPath *ifa
TRACE("(%p): ref=%ld\n", This, ref);
- DMIME_LockModule(); return ref; }
@@ -116,7 +115,6 @@ static ULONG WINAPI IDirectMusicAudioPathImpl_Release (IDirectMusicAudioPath *if HeapFree(GetProcessHeap(), 0, This); }
- DMIME_UnlockModule(); return ref; }
diff --git a/dlls/dmime/dmime_main.c b/dlls/dmime/dmime_main.c index c24cf944af5..c0aa4e31cfb 100644 --- a/dlls/dmime/dmime_main.c +++ b/dlls/dmime/dmime_main.c @@ -38,8 +38,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(dmime);
-LONG DMIME_refCount = 0; - typedef struct { IClassFactory IClassFactory_iface; HRESULT (*fnCreateInstance)(REFIID riid, void **ret_iface); @@ -75,15 +73,11 @@ static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID r
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) { - DMIME_LockModule(); - return 2; /* non-heap based object */ }
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) { - DMIME_UnlockModule(); - return 1; /* non-heap based object */ }
@@ -103,12 +97,6 @@ static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock) { TRACE("(%d)\n", dolock); - - if (dolock) - DMIME_LockModule(); - else - DMIME_UnlockModule(); - return S_OK; }
@@ -136,16 +124,6 @@ static IClassFactoryImpl SegTriggerTrack_CF = {{&classfactory_vtbl}, create_dmse static IClassFactoryImpl AudioPath_CF = {{&classfactory_vtbl}, create_dmaudiopath}; static IClassFactoryImpl WaveTrack_CF = {{&classfactory_vtbl}, create_dmwavetrack};
-/****************************************************************** - * DllCanUnloadNow (DMIME.1) - * - * - */ -HRESULT WINAPI DllCanUnloadNow(void) -{ - return DMIME_refCount != 0 ? S_FALSE : S_OK; -} -
/****************************************************************** * DllGetClassObject (DMIME.@) diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h index 7cdc1534866..6102fd5ec2f 100644 --- a/dlls/dmime/dmime_private.h +++ b/dlls/dmime/dmime_private.h @@ -96,13 +96,6 @@ typedef struct _DMUS_PRIVATE_TEMPO_PLAY_STATE { DWORD dummy; } DMUS_PRIVATE_TEMPO_PLAY_STATE, *LPDMUS_PRIVATE_TEMPO_PLAY_STATE;
-/********************************************************************** - * Dll lifetime tracking declaration for dmime.dll - */ -extern LONG DMIME_refCount; -static inline void DMIME_LockModule(void) { InterlockedIncrement( &DMIME_refCount ); } -static inline void DMIME_UnlockModule(void) { InterlockedDecrement( &DMIME_refCount ); } - /***************************************************************************** * Misc. */ diff --git a/dlls/dmime/graph.c b/dlls/dmime/graph.c index 6cb719025c1..8b0fb246a74 100644 --- a/dlls/dmime/graph.c +++ b/dlls/dmime/graph.c @@ -75,7 +75,6 @@ static ULONG WINAPI DirectMusicGraph_AddRef(IDirectMusicGraph *iface)
TRACE("(%p): %ld\n", This, ref);
- DMIME_LockModule(); return ref; }
@@ -89,7 +88,6 @@ static ULONG WINAPI DirectMusicGraph_Release(IDirectMusicGraph *iface) if (ref == 0) HeapFree(GetProcessHeap(), 0, This);
- DMIME_UnlockModule(); return ref; }
diff --git a/dlls/dmime/lyricstrack.c b/dlls/dmime/lyricstrack.c index 4983fe99a2d..ea4529fb4c7 100644 --- a/dlls/dmime/lyricstrack.c +++ b/dlls/dmime/lyricstrack.c @@ -84,7 +84,6 @@ static ULONG WINAPI lyrics_track_Release(IDirectMusicTrack8 *iface)
if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -359,7 +358,6 @@ HRESULT create_dmlyricstrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack8_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/markertrack.c b/dlls/dmime/markertrack.c index 7749d9abb08..8be2b937d1b 100644 --- a/dlls/dmime/markertrack.c +++ b/dlls/dmime/markertrack.c @@ -78,7 +78,6 @@ static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface)
if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -237,7 +236,6 @@ HRESULT create_dmmarkertrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack_QueryInterface(&track->IDirectMusicTrack_iface, lpcGUID, ppobj); IDirectMusicTrack_Release(&track->IDirectMusicTrack_iface);
diff --git a/dlls/dmime/paramcontroltrack.c b/dlls/dmime/paramcontroltrack.c index 641fd73baa3..d6f3844f60c 100644 --- a/dlls/dmime/paramcontroltrack.c +++ b/dlls/dmime/paramcontroltrack.c @@ -79,7 +79,6 @@ static ULONG WINAPI paramcontrol_track_Release(IDirectMusicTrack8 *iface)
if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -273,7 +272,6 @@ HRESULT create_dmparamcontroltrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack8_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index d69a27540d6..5e80a0d1b54 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -278,8 +278,6 @@ static ULONG WINAPI IDirectMusicPerformance8Impl_AddRef(IDirectMusicPerformance8
TRACE("(%p): ref=%ld\n", This, ref);
- DMIME_LockModule(); - return ref; }
@@ -297,8 +295,6 @@ static ULONG WINAPI IDirectMusicPerformance8Impl_Release(IDirectMusicPerformance HeapFree(GetProcessHeap(), 0, This); }
- DMIME_UnlockModule(); - return ref; }
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c index c005d506cad..457b6678759 100644 --- a/dlls/dmime/segment.c +++ b/dlls/dmime/segment.c @@ -94,7 +94,6 @@ static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface free(This->wave_data);
HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -935,8 +934,6 @@ IDirectMusicSegment8Impl *create_segment(void) obj->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl; list_init (&obj->Tracks);
- DMIME_LockModule(); - return obj; }
diff --git a/dlls/dmime/segmentstate.c b/dlls/dmime/segmentstate.c index 21544fad773..a67079a2daf 100644 --- a/dlls/dmime/segmentstate.c +++ b/dlls/dmime/segmentstate.c @@ -63,8 +63,6 @@ static ULONG WINAPI DirectMusicSegmentState8_AddRef(IDirectMusicSegmentState8 *i
TRACE("(%p): %ld\n", This, ref);
- DMIME_LockModule(); - return ref; }
@@ -78,8 +76,6 @@ static ULONG WINAPI DirectMusicSegmentState8_Release(IDirectMusicSegmentState8 * if (ref == 0) HeapFree(GetProcessHeap(), 0, This);
- DMIME_UnlockModule(); - return ref; }
diff --git a/dlls/dmime/segtriggertrack.c b/dlls/dmime/segtriggertrack.c index 1b7fc6d951c..a04561450f6 100644 --- a/dlls/dmime/segtriggertrack.c +++ b/dlls/dmime/segtriggertrack.c @@ -102,7 +102,6 @@ static ULONG WINAPI segment_track_Release(IDirectMusicTrack8 *iface) }
heap_free(This); - DMIME_UnlockModule(); }
return ref; @@ -399,7 +398,6 @@ HRESULT create_dmsegtriggertrack(REFIID lpcGUID, void **ppobj) track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl; list_init(&track->Items);
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/seqtrack.c b/dlls/dmime/seqtrack.c index 743be10e5c6..2fae8bd5dc1 100644 --- a/dlls/dmime/seqtrack.c +++ b/dlls/dmime/seqtrack.c @@ -79,7 +79,6 @@ static ULONG WINAPI sequence_track_Release(IDirectMusicTrack8 *iface)
if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -273,7 +272,6 @@ HRESULT create_dmseqtrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack8_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/sysextrack.c b/dlls/dmime/sysextrack.c index d3ff9a051b8..ed44ba50a48 100644 --- a/dlls/dmime/sysextrack.c +++ b/dlls/dmime/sysextrack.c @@ -79,7 +79,6 @@ static ULONG WINAPI sysex_track_Release(IDirectMusicTrack8 *iface)
if (!ref) { HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -272,7 +271,6 @@ HRESULT create_dmsysextrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack8_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/tempotrack.c b/dlls/dmime/tempotrack.c index a3cbffc341a..2bfac9ba059 100644 --- a/dlls/dmime/tempotrack.c +++ b/dlls/dmime/tempotrack.c @@ -87,7 +87,6 @@ static ULONG WINAPI tempo_track_Release(IDirectMusicTrack8 *iface) if (!ref) { heap_free(This->items); heap_free(This); - DMIME_UnlockModule(); }
return ref; @@ -386,7 +385,6 @@ HRESULT create_dmtempotrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack8_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
diff --git a/dlls/dmime/timesigtrack.c b/dlls/dmime/timesigtrack.c index 1f4c0dbf187..3e16895eddf 100644 --- a/dlls/dmime/timesigtrack.c +++ b/dlls/dmime/timesigtrack.c @@ -88,7 +88,6 @@ static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface) if (!ref) { heap_free(This->items); HeapFree(GetProcessHeap(), 0, This); - DMIME_UnlockModule(); }
return ref; @@ -301,7 +300,6 @@ HRESULT create_dmtimesigtrack(REFIID lpcGUID, void **ppobj) (IUnknown *)&track->IDirectMusicTrack_iface); track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
- DMIME_LockModule(); hr = IDirectMusicTrack_QueryInterface(&track->IDirectMusicTrack_iface, lpcGUID, ppobj); IDirectMusicTrack_Release(&track->IDirectMusicTrack_iface);
diff --git a/dlls/dmime/wavetrack.c b/dlls/dmime/wavetrack.c index d87d16fcdab..b532ace3ce9 100644 --- a/dlls/dmime/wavetrack.c +++ b/dlls/dmime/wavetrack.c @@ -113,7 +113,6 @@ static ULONG WINAPI wave_track_Release(IDirectMusicTrack8 *iface) }
heap_free(This); - DMIME_UnlockModule(); }
return ref; @@ -488,7 +487,6 @@ HRESULT create_dmwavetrack(REFIID lpcGUID, void **ppobj) track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl; list_init(&track->parts);
- DMIME_LockModule(); hr = IDirectMusicTrack8_QueryInterface(&track->IDirectMusicTrack8_iface, lpcGUID, ppobj); IDirectMusicTrack8_Release(&track->IDirectMusicTrack8_iface);
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/audiopath.c | 9 +++------ dlls/dmime/dmobject.c | 8 +++----- dlls/dmime/graph.c | 11 +++-------- dlls/dmime/lyricstrack.c | 9 +++------ dlls/dmime/markertrack.c | 9 +++------ dlls/dmime/paramcontroltrack.c | 9 +++------ dlls/dmime/performance.c | 28 ++++++++++------------------ dlls/dmime/segment.c | 18 +++++++++--------- dlls/dmime/segmentstate.c | 9 ++------- dlls/dmime/segtriggertrack.c | 18 ++++++------------ dlls/dmime/seqtrack.c | 9 +++------ dlls/dmime/sysextrack.c | 9 +++------ dlls/dmime/tempotrack.c | 19 ++++++------------- dlls/dmime/timesigtrack.c | 12 ++++-------- dlls/dmime/wavetrack.c | 24 +++++++++--------------- 15 files changed, 70 insertions(+), 131 deletions(-)
diff --git a/dlls/dmime/audiopath.c b/dlls/dmime/audiopath.c index 0d7df17bba6..013939f9dfa 100644 --- a/dlls/dmime/audiopath.c +++ b/dlls/dmime/audiopath.c @@ -112,7 +112,7 @@ static ULONG WINAPI IDirectMusicAudioPathImpl_Release (IDirectMusicAudioPath *if if (This->pDSBuffer) IDirectSoundBuffer_Release(This->pDSBuffer); This->pPerf = NULL; - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -328,11 +328,8 @@ HRESULT create_dmaudiopath(REFIID riid, void **ppobj) IDirectMusicAudioPathImpl* obj; HRESULT hr;
- obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicAudioPathImpl)); - if (NULL == obj) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicAudioPath_iface.lpVtbl = &DirectMusicAudioPathVtbl; obj->ref = 1; dmobject_init(&obj->dmobj, &CLSID_DirectMusicAudioPathConfig, diff --git a/dlls/dmime/dmobject.c b/dlls/dmime/dmobject.c index b526b23d031..e080211dd11 100644 --- a/dlls/dmime/dmobject.c +++ b/dlls/dmime/dmobject.c @@ -28,7 +28,6 @@ #include "dmusics.h" #include "dmobject.h" #include "wine/debug.h" -#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(dmobj); WINE_DECLARE_DEBUG_CHANNEL(dmfile); @@ -375,7 +374,7 @@ HRESULT stream_next_chunk(IStream *stream, struct chunk_entry *chunk) /* Reads chunk data of the form: DWORD - size of array element element[] - Array of elements - The caller needs to heap_free() the array. + The caller needs to free() the array. */ HRESULT stream_chunk_get_array(IStream *stream, const struct chunk_entry *chunk, void **array, unsigned int *count, DWORD elem_size) @@ -400,10 +399,9 @@ HRESULT stream_chunk_get_array(IStream *stream, const struct chunk_entry *chunk,
*count = (chunk->size - sizeof(DWORD)) / elem_size; size = *count * elem_size; - if (!(*array = heap_alloc(size))) - return E_OUTOFMEMORY; + if (!(*array = malloc(size))) return E_OUTOFMEMORY; if (FAILED(hr = stream_read(stream, *array, size))) { - heap_free(*array); + free(*array); *array = NULL; return hr; } diff --git a/dlls/dmime/graph.c b/dlls/dmime/graph.c index 8b0fb246a74..8ac037e43bc 100644 --- a/dlls/dmime/graph.c +++ b/dlls/dmime/graph.c @@ -85,8 +85,7 @@ static ULONG WINAPI DirectMusicGraph_Release(IDirectMusicGraph *iface)
TRACE("(%p): %ld\n", This, ref);
- if (ref == 0) - HeapFree(GetProcessHeap(), 0, This); + if (!ref) free(This);
return ref; } @@ -127,7 +126,7 @@ static HRESULT WINAPI DirectMusicGraph_InsertTool(IDirectMusicGraph *iface, IDir }
++This->num_tools; - pNewTool = HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY, sizeof(DMUS_PRIVATE_GRAPH_TOOL)); + pNewTool = calloc(1, sizeof(*pNewTool)); pNewTool->pTool = pTool; pNewTool->dwIndex = lIndex; IDirectMusicTool8_AddRef(pTool); @@ -255,11 +254,7 @@ HRESULT create_dmgraph(REFIID riid, void **ret_iface) HRESULT hr;
*ret_iface = NULL; - - obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicGraphImpl)); - if (!obj) - return E_OUTOFMEMORY; - + if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicGraph_iface.lpVtbl = &DirectMusicGraphVtbl; obj->ref = 1; dmobject_init(&obj->dmobj, &CLSID_DirectMusicGraph, (IUnknown *)&obj->IDirectMusicGraph_iface); diff --git a/dlls/dmime/lyricstrack.c b/dlls/dmime/lyricstrack.c index ea4529fb4c7..a1b299e9a7c 100644 --- a/dlls/dmime/lyricstrack.c +++ b/dlls/dmime/lyricstrack.c @@ -83,7 +83,7 @@ static ULONG WINAPI lyrics_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -347,11 +347,8 @@ HRESULT create_dmlyricstrack(REFIID lpcGUID, void **ppobj) IDirectMusicLyricsTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicLyricsTrack, diff --git a/dlls/dmime/markertrack.c b/dlls/dmime/markertrack.c index 8be2b937d1b..460e708bc5d 100644 --- a/dlls/dmime/markertrack.c +++ b/dlls/dmime/markertrack.c @@ -77,7 +77,7 @@ static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -225,11 +225,8 @@ HRESULT create_dmmarkertrack(REFIID lpcGUID, void **ppobj) IDirectMusicMarkerTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack_iface.lpVtbl = &dmtrack_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicMarkerTrack, diff --git a/dlls/dmime/paramcontroltrack.c b/dlls/dmime/paramcontroltrack.c index d6f3844f60c..9d32484bfd7 100644 --- a/dlls/dmime/paramcontroltrack.c +++ b/dlls/dmime/paramcontroltrack.c @@ -78,7 +78,7 @@ static ULONG WINAPI paramcontrol_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -261,11 +261,8 @@ HRESULT create_dmparamcontroltrack(REFIID lpcGUID, void **ppobj) IDirectMusicParamControlTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicParamControlTrack, diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index 5e80a0d1b54..a1acc6d97cc 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -19,7 +19,6 @@ */
#include "dmime_private.h" -#include "wine/heap.h" #include "wine/rbtree.h" #include "dmobject.h"
@@ -133,15 +132,15 @@ static DWORD WINAPI ProcessMsgThread(LPVOID lpParam) {
for (it = This->imm_head; NULL != it; ) { it_next = it->next; - cur = ProceedMsg(This, it); - HeapFree(GetProcessHeap(), 0, cur); + cur = ProceedMsg(This, it); + free(cur); it = it_next; }
for (it = This->head; NULL != it && it->rtItemTime < rtCurTime + dwDec; ) { it_next = it->next; cur = ProceedMsg(This, it); - HeapFree(GetProcessHeap(), 0, cur); + free(cur); it = it_next; } if (NULL != it) { @@ -215,7 +214,7 @@ static void pchannel_block_free(struct wine_rb_entry *entry, void *context) { struct pchannel_block *b = WINE_RB_ENTRY_VALUE(entry, struct pchannel_block, entry);
- heap_free(b); + free(b); }
static struct pchannel_block *pchannel_block_set(struct wine_rb_tree *tree, DWORD block_num, @@ -231,8 +230,7 @@ static struct pchannel_block *pchannel_block_set(struct wine_rb_tree *tree, DWOR if (only_set_new) return block; } else { - if (!(block = heap_alloc(sizeof(*block)))) - return NULL; + if (!(block = malloc(sizeof(*block)))) return NULL; block->block_num = block_num; }
@@ -292,7 +290,7 @@ static ULONG WINAPI IDirectMusicPerformance8Impl_Release(IDirectMusicPerformance wine_rb_destroy(&This->pchannels, pchannel_block_free, NULL); This->safe.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->safe); - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -501,10 +499,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AllocPMsg(IDirectMusicPerform if (NULL == ppPMSG) { return E_POINTER; } - pItem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb - sizeof(DMUS_PMSG) + sizeof(DMUS_PMSGItem)); - if (NULL == pItem) { - return E_OUTOFMEMORY; - } + if (!(pItem = calloc(1, cb - sizeof(DMUS_PMSG) + sizeof(DMUS_PMSGItem)))) return E_OUTOFMEMORY; pItem->pMsg.dwSize = cb; *ppPMSG = DMUS_ItemToPMSG(pItem); return S_OK; @@ -540,7 +535,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_FreePMsg(IDirectMusicPerforma if (pPMSG->punkUser) IUnknown_Release(pPMSG->punkUser);
- HeapFree(GetProcessHeap(), 0, pItem); + free(pItem); return S_OK; }
@@ -1286,11 +1281,8 @@ HRESULT create_dmperformance(REFIID lpcGUID, void **ppobj)
TRACE("(%s, %p)\n", debugstr_guid(lpcGUID), ppobj);
- obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicPerformance8Impl)); - if (NULL == obj) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicPerformance8_iface.lpVtbl = &DirectMusicPerformance8_Vtbl; obj->ref = 0; /* will be inited by QueryInterface */ obj->pDefaultPath = NULL; diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c index 457b6678759..39a5333fbbb 100644 --- a/dlls/dmime/segment.c +++ b/dlls/dmime/segment.c @@ -93,7 +93,7 @@ static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface if (This->wave_data) free(This->wave_data);
- HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -266,9 +266,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_InsertTrack(IDirectMusicSegment8 } }
- pNewSegTrack = HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY, sizeof(DMUS_PRIVATE_SEGMENT_TRACK)); - if (NULL == pNewSegTrack) - return E_OUTOFMEMORY; + if (!(pNewSegTrack = calloc(1, sizeof(*pNewSegTrack)))) return E_OUTOFMEMORY;
pNewSegTrack->dwGroupBits = group; pNewSegTrack->pTrack = pTrack; @@ -296,7 +294,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_RemoveTrack(IDirectMusicSegment8 list_remove(&pIt->entry); IDirectMusicTrack_Init(pIt->pTrack, NULL); IDirectMusicTrack_Release(pIt->pTrack); - HeapFree(GetProcessHeap(), 0, pIt); + free(pIt);
return S_OK; } @@ -445,13 +443,16 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Clone(IDirectMusicSegment8 *iface
LIST_FOR_EACH_ENTRY(track_item, &This->Tracks, DMUS_PRIVATE_SEGMENT_TRACK, entry) { if (SUCCEEDED(hr = IDirectMusicTrack_Clone(track_item->pTrack, start, end, &track))) { - if ((cloned_item = HeapAlloc(GetProcessHeap(), 0, sizeof(*cloned_item)))) { + if ((cloned_item = malloc(sizeof(*cloned_item)))) + { cloned_item->dwGroupBits = track_item->dwGroupBits; cloned_item->flags = track_item->flags; cloned_item->pTrack = track; list_add_tail(&clone->Tracks, &cloned_item->entry); continue; - } else { + } + else + { IDirectMusicTrack_Release(track); } } @@ -924,8 +925,7 @@ IDirectMusicSegment8Impl *create_segment(void) { IDirectMusicSegment8Impl *obj;
- if (!(obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*obj)))) - return NULL; + if (!(obj = calloc(1, sizeof(*obj)))) return NULL;
obj->IDirectMusicSegment8_iface.lpVtbl = &dmsegment8_vtbl; obj->ref = 1; diff --git a/dlls/dmime/segmentstate.c b/dlls/dmime/segmentstate.c index a67079a2daf..1a0b63419f0 100644 --- a/dlls/dmime/segmentstate.c +++ b/dlls/dmime/segmentstate.c @@ -73,8 +73,7 @@ static ULONG WINAPI DirectMusicSegmentState8_Release(IDirectMusicSegmentState8 *
TRACE("(%p): %ld\n", This, ref);
- if (ref == 0) - HeapFree(GetProcessHeap(), 0, This); + if (!ref) free(This);
return ref; } @@ -146,11 +145,7 @@ HRESULT create_dmsegmentstate(REFIID riid, void **ret_iface) HRESULT hr;
*ret_iface = NULL; - - obj = HeapAlloc (GetProcessHeap(), 0, sizeof(IDirectMusicSegmentState8Impl)); - if (!obj) - return E_OUTOFMEMORY; - + if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicSegmentState8_iface.lpVtbl = &DirectMusicSegmentState8Vtbl; obj->ref = 1;
diff --git a/dlls/dmime/segtriggertrack.c b/dlls/dmime/segtriggertrack.c index a04561450f6..dc29ede4963 100644 --- a/dlls/dmime/segtriggertrack.c +++ b/dlls/dmime/segtriggertrack.c @@ -21,8 +21,6 @@ #include "dmime_private.h" #include "dmobject.h"
-#include "wine/heap.h" - WINE_DEFAULT_DEBUG_CHANNEL(dmime);
/***************************************************************************** @@ -98,10 +96,10 @@ static ULONG WINAPI segment_track_Release(IDirectMusicTrack8 *iface)
if (item->dmobj) IDirectMusicObject_Release(item->dmobj); - heap_free(item); + free(item); }
- heap_free(This); + free(This); }
return ref; @@ -274,8 +272,7 @@ static HRESULT parse_segment_item(IDirectMusicSegTriggerTrack *This, IStream *st /* First chunk is a header */ if (stream_get_chunk(stream, &chunk) != S_OK || chunk.id != DMUS_FOURCC_SEGMENTITEM_CHUNK) return DMUS_E_TRACK_HDR_NOT_FIRST_CK; - if (!(item = heap_alloc_zero(sizeof(*item)))) - return E_OUTOFMEMORY; + if (!(item = calloc(1, sizeof(*item)))) return E_OUTOFMEMORY; hr = stream_chunk_get_data(stream, &chunk, &item->header, sizeof(DMUS_IO_SEGMENT_ITEM_HEADER)); if (FAILED(hr)) goto error; @@ -311,7 +308,7 @@ static HRESULT parse_segment_item(IDirectMusicSegTriggerTrack *This, IStream *st return S_OK;
error: - heap_free(item); + free(item); return hr; }
@@ -386,11 +383,8 @@ HRESULT create_dmsegtriggertrack(REFIID lpcGUID, void **ppobj) IDirectMusicSegTriggerTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicSegTriggerTrack, diff --git a/dlls/dmime/seqtrack.c b/dlls/dmime/seqtrack.c index 2fae8bd5dc1..0e496a5131c 100644 --- a/dlls/dmime/seqtrack.c +++ b/dlls/dmime/seqtrack.c @@ -78,7 +78,7 @@ static ULONG WINAPI sequence_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -261,11 +261,8 @@ HRESULT create_dmseqtrack(REFIID lpcGUID, void **ppobj) IDirectMusicSeqTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicSeqTrack, diff --git a/dlls/dmime/sysextrack.c b/dlls/dmime/sysextrack.c index ed44ba50a48..f9c71abf08a 100644 --- a/dlls/dmime/sysextrack.c +++ b/dlls/dmime/sysextrack.c @@ -78,7 +78,7 @@ static ULONG WINAPI sysex_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -260,11 +260,8 @@ HRESULT create_dmsysextrack(REFIID lpcGUID, void **ppobj) IDirectMusicSysExTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicSysExTrack, diff --git a/dlls/dmime/tempotrack.c b/dlls/dmime/tempotrack.c index 2bfac9ba059..6704448b71e 100644 --- a/dlls/dmime/tempotrack.c +++ b/dlls/dmime/tempotrack.c @@ -21,8 +21,6 @@ #include "dmime_private.h" #include "dmobject.h"
-#include "wine/heap.h" - WINE_DEFAULT_DEBUG_CHANNEL(dmime); WINE_DECLARE_DEBUG_CHANNEL(dmfile);
@@ -85,8 +83,8 @@ static ULONG WINAPI tempo_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - heap_free(This->items); - heap_free(This); + free(This->items); + free(This); }
return ref; @@ -109,9 +107,7 @@ static HRESULT WINAPI tempo_track_InitPlay(IDirectMusicTrack8 *iface,
FIXME("(%p, %p, %p, %p, %ld, %ld): semi-stub\n", This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID, dwFlags);
- pState = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DMUS_PRIVATE_TEMPO_PLAY_STATE)); - if (NULL == pState) - return E_OUTOFMEMORY; + if (!(pState = calloc(1, sizeof(*pState)))) return E_OUTOFMEMORY;
/** TODO real fill useful data */ pState->dummy = 0; @@ -131,7 +127,7 @@ static HRESULT WINAPI tempo_track_EndPlay(IDirectMusicTrack8 *iface, void *pStat return E_POINTER; } /** TODO real clean up */ - HeapFree(GetProcessHeap(), 0, pState); + free(pState); return S_OK; }
@@ -374,11 +370,8 @@ HRESULT create_dmtempotrack(REFIID lpcGUID, void **ppobj) IDirectMusicTempoTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicTempoTrack, diff --git a/dlls/dmime/timesigtrack.c b/dlls/dmime/timesigtrack.c index 3e16895eddf..e98807b7503 100644 --- a/dlls/dmime/timesigtrack.c +++ b/dlls/dmime/timesigtrack.c @@ -19,7 +19,6 @@
#include "dmime_private.h" #include "dmobject.h" -#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(dmime);
@@ -86,8 +85,8 @@ static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface) TRACE("(%p) ref=%ld\n", This, ref);
if (!ref) { - heap_free(This->items); - HeapFree(GetProcessHeap(), 0, This); + free(This->items); + free(This); }
return ref; @@ -289,11 +288,8 @@ HRESULT create_dmtimesigtrack(REFIID lpcGUID, void **ppobj) IDirectMusicTimeSigTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack_iface.lpVtbl = &dmtack_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicTimeSigTrack, diff --git a/dlls/dmime/wavetrack.c b/dlls/dmime/wavetrack.c index b532ace3ce9..4150ea3bcd2 100644 --- a/dlls/dmime/wavetrack.c +++ b/dlls/dmime/wavetrack.c @@ -19,7 +19,6 @@
#include "dmime_private.h" #include "dmobject.h" -#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(dmime);
@@ -107,12 +106,12 @@ static ULONG WINAPI wave_track_Release(IDirectMusicTrack8 *iface) list_remove(&item->entry); if (item->object) IDirectMusicObject_Release(item->object); - heap_free(item); + free(item); } - heap_free(part); + free(part); }
- heap_free(This); + free(This); }
return ref; @@ -323,8 +322,7 @@ static HRESULT parse_wave_item(struct wave_part *part, IStream *stream, struct c if (wave.id != FOURCC_LIST || wave.type != DMUS_FOURCC_WAVE_LIST) return DMUS_E_UNSUPPORTED_STREAM;
- if (!(item = heap_alloc_zero(sizeof(*item)))) - return E_OUTOFMEMORY; + if (!(item = calloc(1, sizeof(*item)))) return E_OUTOFMEMORY;
/* Wave item header chunk */ if (FAILED(hr = stream_next_chunk(stream, &chunk))) @@ -366,7 +364,7 @@ static HRESULT parse_wave_item(struct wave_part *part, IStream *stream, struct c return S_OK;
error: - heap_free(item); + free(item); return hr; }
@@ -383,8 +381,7 @@ static HRESULT parse_wave_part(IDirectMusicWaveTrack *This, IStream *stream, if (chunk.id != DMUS_FOURCC_WAVEPART_CHUNK) return DMUS_E_UNSUPPORTED_STREAM;
- if (!(part = heap_alloc_zero(sizeof(*part)))) - return E_OUTOFMEMORY; + if (!(part = calloc(1, sizeof(*part)))) return E_OUTOFMEMORY; list_init(&part->items);
if (FAILED(hr = stream_chunk_get_data(stream, &chunk, &part->header, sizeof(part->header)))) { @@ -414,7 +411,7 @@ static HRESULT parse_wave_part(IDirectMusicWaveTrack *This, IStream *stream, return S_OK;
error: - heap_free(part); + free(part); return hr; }
@@ -475,11 +472,8 @@ HRESULT create_dmwavetrack(REFIID lpcGUID, void **ppobj) IDirectMusicWaveTrack *track; HRESULT hr;
- track = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track)); - if (!track) { - *ppobj = NULL; - return E_OUTOFMEMORY; - } + *ppobj = NULL; + if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY; track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl; track->ref = 1; dmobject_init(&track->dmobj, &CLSID_DirectMusicWaveTrack,
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/graph.c | 4 ++-- dlls/dmime/performance.c | 2 +- dlls/dmime/tests/dmime.c | 8 ++++---- dlls/dmime/tests/performance.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/dmime/graph.c b/dlls/dmime/graph.c index 8ac037e43bc..159923b6a70 100644 --- a/dlls/dmime/graph.c +++ b/dlls/dmime/graph.c @@ -129,8 +129,8 @@ static HRESULT WINAPI DirectMusicGraph_InsertTool(IDirectMusicGraph *iface, IDir pNewTool = calloc(1, sizeof(*pNewTool)); pNewTool->pTool = pTool; pNewTool->dwIndex = lIndex; - IDirectMusicTool8_AddRef(pTool); - IDirectMusicTool8_Init(pTool, iface); + IDirectMusicTool_AddRef(pTool); + IDirectMusicTool_Init(pTool, iface); list_add_tail (pPrevEntry->next, &pNewTool->entry);
#if 0 diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index a1acc6d97cc..f6eb53e365f 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -879,7 +879,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_CloseDown(IDirectMusicPerform This->dsound = NULL; } if (This->dmusic) { - IDirectMusic_SetDirectSound(This->dmusic, NULL, NULL); + IDirectMusic8_SetDirectSound(This->dmusic, NULL, NULL); IDirectMusic8_Release(This->dmusic); This->dmusic = NULL; } diff --git a/dlls/dmime/tests/dmime.c b/dlls/dmime/tests/dmime.c index f00b5073b48..e95a1c02427 100644 --- a/dlls/dmime/tests/dmime.c +++ b/dlls/dmime/tests/dmime.c @@ -223,7 +223,7 @@ static BOOL missing_dmime(void)
if (hr == S_OK && dms) { - IDirectMusicSegment_Release(dms); + IDirectMusicSegment8_Release(dms); return FALSE; } return TRUE; @@ -1015,7 +1015,7 @@ static void expect_getparam(IDirectMusicTrack *track, REFGUID type, const char * HRESULT hr; char buf[64] = { 0 };
- hr = IDirectMusicTrack8_GetParam(track, type, 0, NULL, buf); + hr = IDirectMusicTrack_GetParam(track, type, 0, NULL, buf); ok(hr == expect, "GetParam(%s) failed: %#lx, expected %#lx\n", name, hr, expect); }
@@ -1025,7 +1025,7 @@ static void expect_setparam(IDirectMusicTrack *track, REFGUID type, const char * HRESULT hr; char buf[64] = { 0 };
- hr = IDirectMusicTrack8_SetParam(track, type, 0, buf); + hr = IDirectMusicTrack_SetParam(track, type, 0, buf); ok(hr == expect, "SetParam(%s) failed: %#lx, expected %#lx\n", name, hr, expect); }
@@ -1103,7 +1103,7 @@ static void test_track(void) /* IDirectMusicTrack */ if (class[i].has_params != ~0) { for (j = 0; j < ARRAY_SIZE(param_types); j++) { - hr = IDirectMusicTrack8_IsParamSupported(dmt, param_types[j].type); + hr = IDirectMusicTrack_IsParamSupported(dmt, param_types[j].type); if (class[i].has_params & (1 << j)) { ok(hr == S_OK, "IsParamSupported(%s) failed: %#lx, expected S_OK\n", param_types[j].name, hr); diff --git a/dlls/dmime/tests/performance.c b/dlls/dmime/tests/performance.c index 100d8e40be0..4af91fc3130 100644 --- a/dlls/dmime/tests/performance.c +++ b/dlls/dmime/tests/performance.c @@ -334,7 +334,7 @@ static void test_createport(void) ok(hr == S_OK, "CloseDown failed: %#lx\n", hr);
IDirectMusic_Release(music); - IDirectMusicPerformance_Release(perf); + IDirectMusicPerformance8_Release(perf); }
static void test_pchannel(void)
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index f6eb53e365f..cd3d800e267 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -1275,24 +1275,28 @@ static const IDirectMusicPerformance8Vtbl DirectMusicPerformance8_Vtbl = { };
/* for ClassFactory */ -HRESULT create_dmperformance(REFIID lpcGUID, void **ppobj) +HRESULT create_dmperformance(REFIID iid, void **ret_iface) { - IDirectMusicPerformance8Impl *obj; + IDirectMusicPerformance8Impl *obj; + HRESULT hr;
- TRACE("(%s, %p)\n", debugstr_guid(lpcGUID), ppobj); + TRACE("(%s, %p)\n", debugstr_guid(iid), ret_iface);
- *ppobj = NULL; + *ret_iface = NULL; if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; - obj->IDirectMusicPerformance8_iface.lpVtbl = &DirectMusicPerformance8_Vtbl; - obj->ref = 0; /* will be inited by QueryInterface */ - obj->pDefaultPath = NULL; - InitializeCriticalSection(&obj->safe); - obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectMusicPerformance8Impl*->safe"); - wine_rb_init(&obj->pchannels, pchannel_block_compare); - - obj->rtLatencyTime = 100; /* 100 ms TO FIX */ - obj->dwBumperLength = 50; /* 50 ms default */ - obj->dwPrepareTime = 1000; /* 1000 ms default */ - return IDirectMusicPerformance8Impl_QueryInterface(&obj->IDirectMusicPerformance8_iface, - lpcGUID, ppobj); + obj->IDirectMusicPerformance8_iface.lpVtbl = &DirectMusicPerformance8_Vtbl; + obj->ref = 1; + + obj->pDefaultPath = NULL; + InitializeCriticalSection(&obj->safe); + obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectMusicPerformance8Impl*->safe"); + wine_rb_init(&obj->pchannels, pchannel_block_compare); + + obj->rtLatencyTime = 100; /* 100 ms TO FIX */ + obj->dwBumperLength = 50; /* 50 ms default */ + obj->dwPrepareTime = 1000; /* 1000 ms default */ + + hr = IDirectMusicPerformance8_QueryInterface(&obj->IDirectMusicPerformance8_iface, iid, ret_iface); + IDirectMusicPerformance_Release(&obj->IDirectMusicPerformance8_iface); + return hr; }
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 286 ++++++++++++++++++--------------------- 1 file changed, 129 insertions(+), 157 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index cd3d800e267..7617b92309d 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -251,8 +251,7 @@ static inline IDirectMusicPerformance8Impl *impl_from_IDirectMusicPerformance8(I }
/* IDirectMusicPerformance8 IUnknown part: */ -static HRESULT WINAPI IDirectMusicPerformance8Impl_QueryInterface(IDirectMusicPerformance8 *iface, - REFIID riid, void **ppv) +static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ppv) { TRACE("(%p, %s,%p)\n", iface, debugstr_dmguid(riid), ppv);
@@ -269,7 +268,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_QueryInterface(IDirectMusicPe return E_NOINTERFACE; }
-static ULONG WINAPI IDirectMusicPerformance8Impl_AddRef(IDirectMusicPerformance8 *iface) +static ULONG WINAPI performance_AddRef(IDirectMusicPerformance8 *iface) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); ULONG ref = InterlockedIncrement(&This->ref); @@ -279,7 +278,7 @@ static ULONG WINAPI IDirectMusicPerformance8Impl_AddRef(IDirectMusicPerformance8 return ref; }
-static ULONG WINAPI IDirectMusicPerformance8Impl_Release(IDirectMusicPerformance8 *iface) +static ULONG WINAPI performance_Release(IDirectMusicPerformance8 *iface) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); ULONG ref = InterlockedDecrement(&This->ref); @@ -297,8 +296,8 @@ static ULONG WINAPI IDirectMusicPerformance8Impl_Release(IDirectMusicPerformance }
/* IDirectMusicPerformanceImpl IDirectMusicPerformance Interface part: */ -static HRESULT WINAPI IDirectMusicPerformance8Impl_Init(IDirectMusicPerformance8 *iface, - IDirectMusic **dmusic, IDirectSound *dsound, HWND hwnd) +static HRESULT WINAPI performance_Init(IDirectMusicPerformance8 *iface, IDirectMusic **dmusic, + IDirectSound *dsound, HWND hwnd) { TRACE("(%p, %p, %p, %p)\n", iface, dmusic, dsound, hwnd);
@@ -306,9 +305,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_Init(IDirectMusicPerformance8 0, NULL); }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegment(IDirectMusicPerformance8 *iface, - IDirectMusicSegment *pSegment, DWORD dwFlags, __int64 i64StartTime, - IDirectMusicSegmentState **ppSegmentState) +static HRESULT WINAPI performance_PlaySegment(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, + DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState **ppSegmentState) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -319,9 +317,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegment(IDirectMusicPerfo return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_Stop(IDirectMusicPerformance8 *iface, - IDirectMusicSegment *pSegment, IDirectMusicSegmentState *pSegmentState, MUSIC_TIME mtTime, - DWORD dwFlags) +static HRESULT WINAPI performance_Stop(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, + IDirectMusicSegmentState *pSegmentState, MUSIC_TIME mtTime, DWORD dwFlags) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -329,7 +326,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_Stop(IDirectMusicPerformance8 return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetSegmentState(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_GetSegmentState(IDirectMusicPerformance8 *iface, IDirectMusicSegmentState **ppSegmentState, MUSIC_TIME mtTime) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -338,8 +335,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetSegmentState(IDirectMusicP return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetPrepareTime(IDirectMusicPerformance8 *iface, - DWORD dwMilliSeconds) +static HRESULT WINAPI performance_SetPrepareTime(IDirectMusicPerformance8 *iface, DWORD dwMilliSeconds) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -348,8 +344,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetPrepareTime(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetPrepareTime(IDirectMusicPerformance8 *iface, - DWORD *pdwMilliSeconds) +static HRESULT WINAPI performance_GetPrepareTime(IDirectMusicPerformance8 *iface, DWORD *pdwMilliSeconds) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -361,8 +356,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetPrepareTime(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetBumperLength(IDirectMusicPerformance8 *iface, - DWORD dwMilliSeconds) +static HRESULT WINAPI performance_SetBumperLength(IDirectMusicPerformance8 *iface, DWORD dwMilliSeconds) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -371,8 +365,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetBumperLength(IDirectMusicP return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetBumperLength(IDirectMusicPerformance8 *iface, - DWORD *pdwMilliSeconds) +static HRESULT WINAPI performance_GetBumperLength(IDirectMusicPerformance8 *iface, DWORD *pdwMilliSeconds) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -384,8 +377,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetBumperLength(IDirectMusicP return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SendPMsg(IDirectMusicPerformance8 *iface, - DMUS_PMSG *pPMSG) +static HRESULT WINAPI performance_SendPMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pPMSG) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL; @@ -436,7 +428,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SendPMsg(IDirectMusicPerforma return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToReferenceTime(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_MusicToReferenceTime(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, REFERENCE_TIME *prtTime) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -445,7 +437,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToReferenceTime(IDirectM return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_ReferenceToMusicTime(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_ReferenceToMusicTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtTime, MUSIC_TIME *pmtTime) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -454,7 +446,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_ReferenceToMusicTime(IDirectM return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_IsPlaying(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_IsPlaying(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, IDirectMusicSegmentState *pSegState) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -463,8 +455,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_IsPlaying(IDirectMusicPerform return S_FALSE; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetTime(IDirectMusicPerformance8 *iface, - REFERENCE_TIME *prtNow, MUSIC_TIME *pmtNow) +static HRESULT WINAPI performance_GetTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtNow, MUSIC_TIME *pmtNow) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); HRESULT hr = S_OK; @@ -485,8 +476,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetTime(IDirectMusicPerforman return hr; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AllocPMsg(IDirectMusicPerformance8 *iface, - ULONG cb, DMUS_PMSG **ppPMSG) +static HRESULT WINAPI performance_AllocPMsg(IDirectMusicPerformance8 *iface, ULONG cb, DMUS_PMSG **ppPMSG) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL; @@ -505,8 +495,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AllocPMsg(IDirectMusicPerform return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_FreePMsg(IDirectMusicPerformance8 *iface, - DMUS_PMSG *pPMSG) +static HRESULT WINAPI performance_FreePMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pPMSG) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL; @@ -539,8 +528,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_FreePMsg(IDirectMusicPerforma return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetGraph(IDirectMusicPerformance8 *iface, - IDirectMusicGraph **graph) +static HRESULT WINAPI performance_GetGraph(IDirectMusicPerformance8 *iface, IDirectMusicGraph **graph) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -557,8 +545,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetGraph(IDirectMusicPerforma return *graph ? S_OK : DMUS_E_NOT_FOUND; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetGraph(IDirectMusicPerformance8 *iface, - IDirectMusicGraph *pGraph) +static HRESULT WINAPI performance_SetGraph(IDirectMusicPerformance8 *iface, IDirectMusicGraph *pGraph) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -575,7 +562,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetGraph(IDirectMusicPerforma return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetNotificationHandle(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_SetNotificationHandle(IDirectMusicPerformance8 *iface, HANDLE hNotification, REFERENCE_TIME rtMinimum) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -590,7 +577,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetNotificationHandle(IDirect return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetNotificationPMsg(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_GetNotificationPMsg(IDirectMusicPerformance8 *iface, DMUS_NOTIFICATION_PMSG **ppNotificationPMsg) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -606,8 +593,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetNotificationPMsg(IDirectMu /*return S_OK;*/ }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AddNotificationType(IDirectMusicPerformance8 *iface, - REFGUID rguidNotificationType) +static HRESULT WINAPI performance_AddNotificationType(IDirectMusicPerformance8 *iface, REFGUID rguidNotificationType) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -615,8 +601,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AddNotificationType(IDirectMu return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_RemoveNotificationType(IDirectMusicPerformance8 *iface, - REFGUID rguidNotificationType) +static HRESULT WINAPI performance_RemoveNotificationType(IDirectMusicPerformance8 *iface, REFGUID rguidNotificationType) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -646,8 +631,7 @@ static HRESULT perf_dmport_create(IDirectMusicPerformance8Impl *perf, DMUS_PORTP return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AddPort(IDirectMusicPerformance8 *iface, - IDirectMusicPort *port) +static HRESULT WINAPI performance_AddPort(IDirectMusicPerformance8 *iface, IDirectMusicPort *port) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -674,8 +658,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AddPort(IDirectMusicPerforman return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort(IDirectMusicPerformance8 *iface, - IDirectMusicPort *pPort) +static HRESULT WINAPI performance_RemovePort(IDirectMusicPerformance8 *iface, IDirectMusicPort *pPort) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -684,7 +667,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort(IDirectMusicPerfor return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannelBlock(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_AssignPChannelBlock(IDirectMusicPerformance8 *iface, DWORD block_num, IDirectMusicPort *port, DWORD group) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -701,8 +684,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannelBlock(IDirectMu return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannel(IDirectMusicPerformance8 *iface, - DWORD pchannel, IDirectMusicPort *port, DWORD group, DWORD channel) +static HRESULT WINAPI performance_AssignPChannel(IDirectMusicPerformance8 *iface, DWORD pchannel, + IDirectMusicPort *port, DWORD group, DWORD channel) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); struct pchannel_block *block; @@ -721,8 +704,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannel(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_PChannelInfo(IDirectMusicPerformance8 *iface, - DWORD pchannel, IDirectMusicPort **port, DWORD *group, DWORD *channel) +static HRESULT WINAPI performance_PChannelInfo(IDirectMusicPerformance8 *iface, DWORD pchannel, + IDirectMusicPort **port, DWORD *group, DWORD *channel) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); struct pchannel_block *block; @@ -749,7 +732,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_PChannelInfo(IDirectMusicPerf return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_DownloadInstrument(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_DownloadInstrument(IDirectMusicPerformance8 *iface, IDirectMusicInstrument *pInst, DWORD dwPChannel, IDirectMusicDownloadedInstrument **ppDownInst, DMUS_NOTERANGE *pNoteRanges, DWORD dwNumNoteRanges, IDirectMusicPort **ppPort, DWORD *pdwGroup, DWORD *pdwMChannel) @@ -760,8 +743,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_DownloadInstrument(IDirectMus return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_Invalidate(IDirectMusicPerformance8 *iface, - MUSIC_TIME mtTime, DWORD dwFlags) +static HRESULT WINAPI performance_Invalidate(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, DWORD dwFlags) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -769,9 +751,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_Invalidate(IDirectMusicPerfor return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetParam(IDirectMusicPerformance8 *iface, - REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, - MUSIC_TIME *pmtNext, void *pParam) +static HRESULT WINAPI performance_GetParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, + DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -779,8 +760,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetParam(IDirectMusicPerforma return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetParam(IDirectMusicPerformance8 *iface, - REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void *pParam) +static HRESULT WINAPI performance_SetParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, + DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void *pParam) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -788,8 +769,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetParam(IDirectMusicPerforma return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetGlobalParam(IDirectMusicPerformance8 *iface, - REFGUID rguidType, void *pParam, DWORD dwSize) +static HRESULT WINAPI performance_GetGlobalParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, + void *pParam, DWORD dwSize) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -807,8 +788,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetGlobalParam(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetGlobalParam(IDirectMusicPerformance8 *iface, - REFGUID rguidType, void *pParam, DWORD dwSize) +static HRESULT WINAPI performance_SetGlobalParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, + void *pParam, DWORD dwSize) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -834,8 +815,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetGlobalParam(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetLatencyTime(IDirectMusicPerformance8 *iface, - REFERENCE_TIME *prtTime) +static HRESULT WINAPI performance_GetLatencyTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtTime) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -844,8 +824,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetLatencyTime(IDirectMusicPe return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetQueueTime(IDirectMusicPerformance8 *iface, - REFERENCE_TIME *prtTime) +static HRESULT WINAPI performance_GetQueueTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtTime)
{ IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -854,8 +833,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetQueueTime(IDirectMusicPerf return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_AdjustTime(IDirectMusicPerformance8 *iface, - REFERENCE_TIME rtAmount) +static HRESULT WINAPI performance_AdjustTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtAmount) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -863,7 +841,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_AdjustTime(IDirectMusicPerfor return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_CloseDown(IDirectMusicPerformance8 *iface) +static HRESULT WINAPI performance_CloseDown(IDirectMusicPerformance8 *iface) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -886,7 +864,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_CloseDown(IDirectMusicPerform return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetResolvedTime(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_GetResolvedTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtTime, REFERENCE_TIME *prtResolved, DWORD dwTimeResolveFlags) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -896,9 +874,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetResolvedTime(IDirectMusicP return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_MIDIToMusic(IDirectMusicPerformance8 *iface, - BYTE bMIDIValue, DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, - WORD *pwMusicValue) +static HRESULT WINAPI performance_MIDIToMusic(IDirectMusicPerformance8 *iface, BYTE bMIDIValue, + DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, WORD *pwMusicValue) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -906,9 +883,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_MIDIToMusic(IDirectMusicPerfo return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToMIDI(IDirectMusicPerformance8 *iface, - WORD wMusicValue, DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, - BYTE *pbMIDIValue) +static HRESULT WINAPI performance_MusicToMIDI(IDirectMusicPerformance8 *iface, WORD wMusicValue, + DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, BYTE *pbMIDIValue) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -916,9 +892,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToMIDI(IDirectMusicPerfo return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_TimeToRhythm(IDirectMusicPerformance8 *iface, - MUSIC_TIME mtTime, DMUS_TIMESIGNATURE *pTimeSig, WORD *pwMeasure, BYTE *pbBeat, - BYTE *pbGrid, short *pnOffset) +static HRESULT WINAPI performance_TimeToRhythm(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, + DMUS_TIMESIGNATURE *pTimeSig, WORD *pwMeasure, BYTE *pbBeat, BYTE *pbGrid, short *pnOffset) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -926,9 +901,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_TimeToRhythm(IDirectMusicPerf return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_RhythmToTime(IDirectMusicPerformance8 *iface, - WORD wMeasure, BYTE bBeat, BYTE bGrid, short nOffset, DMUS_TIMESIGNATURE *pTimeSig, - MUSIC_TIME *pmtTime) +static HRESULT WINAPI performance_RhythmToTime(IDirectMusicPerformance8 *iface, WORD wMeasure, + BYTE bBeat, BYTE bGrid, short nOffset, DMUS_TIMESIGNATURE *pTimeSig, MUSIC_TIME *pmtTime) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -937,9 +911,9 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_RhythmToTime(IDirectMusicPerf }
/* IDirectMusicPerformance8 Interface part follow: */ -static HRESULT WINAPI IDirectMusicPerformance8Impl_InitAudio(IDirectMusicPerformance8 *iface, - IDirectMusic **dmusic, IDirectSound **dsound, HWND hwnd, DWORD default_path_type, - DWORD num_channels, DWORD flags, DMUS_AUDIOPARAMS *params) +static HRESULT WINAPI performance_InitAudio(IDirectMusicPerformance8 *iface, IDirectMusic **dmusic, + IDirectSound **dsound, HWND hwnd, DWORD default_path_type, DWORD num_channels, DWORD flags, + DMUS_AUDIOPARAMS *params) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); HRESULT hr = S_OK; @@ -1022,10 +996,9 @@ error: return hr; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegmentEx(IDirectMusicPerformance8 *iface, - IUnknown *pSource, WCHAR *pwzSegmentName, IUnknown *pTransition, DWORD dwFlags, - __int64 i64StartTime, IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom, - IUnknown *pAudioPath) +static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface, IUnknown *pSource, + WCHAR *pwzSegmentName, IUnknown *pTransition, DWORD dwFlags, __int64 i64StartTime, + IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom, IUnknown *pAudioPath) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -1036,8 +1009,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegmentEx(IDirectMusicPer return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx(IDirectMusicPerformance8 *iface, - IUnknown *pObjectToStop, __int64 i64StopTime, DWORD dwFlags) +static HRESULT WINAPI performance_StopEx(IDirectMusicPerformance8 *iface, IUnknown *pObjectToStop, + __int64 i64StopTime, DWORD dwFlags) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -1046,8 +1019,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx(IDirectMusicPerformanc return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_ClonePMsg(IDirectMusicPerformance8 *iface, - DMUS_PMSG *pSourcePMSG, DMUS_PMSG **ppCopyPMSG) +static HRESULT WINAPI performance_ClonePMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pSourcePMSG, + DMUS_PMSG **ppCopyPMSG) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -1055,7 +1028,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_ClonePMsg(IDirectMusicPerform return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_CreateAudioPath(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_CreateAudioPath(IDirectMusicPerformance8 *iface, IUnknown *pSourceConfig, BOOL fActivate, IDirectMusicAudioPath **ppNewPath) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -1077,7 +1050,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_CreateAudioPath(IDirectMusicP return IDirectMusicAudioPath_Activate(*ppNewPath, fActivate); }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_CreateStandardAudioPath(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformance8 *iface, DWORD dwType, DWORD pchannel_count, BOOL fActivate, IDirectMusicAudioPath **ppNewPath) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -1171,8 +1144,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_CreateStandardAudioPath(IDire return IDirectMusicAudioPath_Activate(*ppNewPath, fActivate); }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_SetDefaultAudioPath(IDirectMusicPerformance8 *iface, - IDirectMusicAudioPath *pAudioPath) +static HRESULT WINAPI performance_SetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath *pAudioPath) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -1191,7 +1163,7 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_SetDefaultAudioPath(IDirectMu return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetDefaultAudioPath(IDirectMusicPerformance8 *iface, +static HRESULT WINAPI performance_GetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath **ppAudioPath) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); @@ -1207,9 +1179,8 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetDefaultAudioPath(IDirectMu return S_OK; }
-static HRESULT WINAPI IDirectMusicPerformance8Impl_GetParamEx(IDirectMusicPerformance8 *iface, - REFGUID rguidType, DWORD dwTrackID, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, - MUSIC_TIME *pmtNext, void *pParam) +static HRESULT WINAPI performance_GetParamEx(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwTrackID, + DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface);
@@ -1218,60 +1189,61 @@ static HRESULT WINAPI IDirectMusicPerformance8Impl_GetParamEx(IDirectMusicPerfor return S_OK; }
-static const IDirectMusicPerformance8Vtbl DirectMusicPerformance8_Vtbl = { - IDirectMusicPerformance8Impl_QueryInterface, - IDirectMusicPerformance8Impl_AddRef, - IDirectMusicPerformance8Impl_Release, - IDirectMusicPerformance8Impl_Init, - IDirectMusicPerformance8Impl_PlaySegment, - IDirectMusicPerformance8Impl_Stop, - IDirectMusicPerformance8Impl_GetSegmentState, - IDirectMusicPerformance8Impl_SetPrepareTime, - IDirectMusicPerformance8Impl_GetPrepareTime, - IDirectMusicPerformance8Impl_SetBumperLength, - IDirectMusicPerformance8Impl_GetBumperLength, - IDirectMusicPerformance8Impl_SendPMsg, - IDirectMusicPerformance8Impl_MusicToReferenceTime, - IDirectMusicPerformance8Impl_ReferenceToMusicTime, - IDirectMusicPerformance8Impl_IsPlaying, - IDirectMusicPerformance8Impl_GetTime, - IDirectMusicPerformance8Impl_AllocPMsg, - IDirectMusicPerformance8Impl_FreePMsg, - IDirectMusicPerformance8Impl_GetGraph, - IDirectMusicPerformance8Impl_SetGraph, - IDirectMusicPerformance8Impl_SetNotificationHandle, - IDirectMusicPerformance8Impl_GetNotificationPMsg, - IDirectMusicPerformance8Impl_AddNotificationType, - IDirectMusicPerformance8Impl_RemoveNotificationType, - IDirectMusicPerformance8Impl_AddPort, - IDirectMusicPerformance8Impl_RemovePort, - IDirectMusicPerformance8Impl_AssignPChannelBlock, - IDirectMusicPerformance8Impl_AssignPChannel, - IDirectMusicPerformance8Impl_PChannelInfo, - IDirectMusicPerformance8Impl_DownloadInstrument, - IDirectMusicPerformance8Impl_Invalidate, - IDirectMusicPerformance8Impl_GetParam, - IDirectMusicPerformance8Impl_SetParam, - IDirectMusicPerformance8Impl_GetGlobalParam, - IDirectMusicPerformance8Impl_SetGlobalParam, - IDirectMusicPerformance8Impl_GetLatencyTime, - IDirectMusicPerformance8Impl_GetQueueTime, - IDirectMusicPerformance8Impl_AdjustTime, - IDirectMusicPerformance8Impl_CloseDown, - IDirectMusicPerformance8Impl_GetResolvedTime, - IDirectMusicPerformance8Impl_MIDIToMusic, - IDirectMusicPerformance8Impl_MusicToMIDI, - IDirectMusicPerformance8Impl_TimeToRhythm, - IDirectMusicPerformance8Impl_RhythmToTime, - IDirectMusicPerformance8Impl_InitAudio, - IDirectMusicPerformance8Impl_PlaySegmentEx, - IDirectMusicPerformance8Impl_StopEx, - IDirectMusicPerformance8Impl_ClonePMsg, - IDirectMusicPerformance8Impl_CreateAudioPath, - IDirectMusicPerformance8Impl_CreateStandardAudioPath, - IDirectMusicPerformance8Impl_SetDefaultAudioPath, - IDirectMusicPerformance8Impl_GetDefaultAudioPath, - IDirectMusicPerformance8Impl_GetParamEx +static const IDirectMusicPerformance8Vtbl performance_vtbl = +{ + performance_QueryInterface, + performance_AddRef, + performance_Release, + performance_Init, + performance_PlaySegment, + performance_Stop, + performance_GetSegmentState, + performance_SetPrepareTime, + performance_GetPrepareTime, + performance_SetBumperLength, + performance_GetBumperLength, + performance_SendPMsg, + performance_MusicToReferenceTime, + performance_ReferenceToMusicTime, + performance_IsPlaying, + performance_GetTime, + performance_AllocPMsg, + performance_FreePMsg, + performance_GetGraph, + performance_SetGraph, + performance_SetNotificationHandle, + performance_GetNotificationPMsg, + performance_AddNotificationType, + performance_RemoveNotificationType, + performance_AddPort, + performance_RemovePort, + performance_AssignPChannelBlock, + performance_AssignPChannel, + performance_PChannelInfo, + performance_DownloadInstrument, + performance_Invalidate, + performance_GetParam, + performance_SetParam, + performance_GetGlobalParam, + performance_SetGlobalParam, + performance_GetLatencyTime, + performance_GetQueueTime, + performance_AdjustTime, + performance_CloseDown, + performance_GetResolvedTime, + performance_MIDIToMusic, + performance_MusicToMIDI, + performance_TimeToRhythm, + performance_RhythmToTime, + performance_InitAudio, + performance_PlaySegmentEx, + performance_StopEx, + performance_ClonePMsg, + performance_CreateAudioPath, + performance_CreateStandardAudioPath, + performance_SetDefaultAudioPath, + performance_GetDefaultAudioPath, + performance_GetParamEx, };
/* for ClassFactory */ @@ -1284,7 +1256,7 @@ HRESULT create_dmperformance(REFIID iid, void **ret_iface)
*ret_iface = NULL; if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; - obj->IDirectMusicPerformance8_iface.lpVtbl = &DirectMusicPerformance8_Vtbl; + obj->IDirectMusicPerformance8_iface.lpVtbl = &performance_vtbl; obj->ref = 1;
obj->pDefaultPath = NULL;
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 125 ++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 62 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index 7617b92309d..d6f7e76686e 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -34,7 +34,8 @@ struct pchannel_block { struct wine_rb_entry entry; };
-typedef struct IDirectMusicPerformance8Impl { +struct performance +{ IDirectMusicPerformance8 IDirectMusicPerformance8_iface; LONG ref; IDirectMusic8 *dmusic; @@ -47,7 +48,7 @@ typedef struct IDirectMusicPerformance8Impl { long lMasterVolume; /* performance channels */ struct wine_rb_tree pchannels; - /* IDirectMusicPerformance8Impl fields */ + IDirectMusicAudioPath *pDefaultPath; HANDLE hNotification; REFERENCE_TIME rtMinimum; @@ -62,7 +63,7 @@ typedef struct IDirectMusicPerformance8Impl { CRITICAL_SECTION safe; struct DMUS_PMSGItem *head; struct DMUS_PMSGItem *imm_head; -} IDirectMusicPerformance8Impl; +};
typedef struct DMUS_PMSGItem DMUS_PMSGItem; struct DMUS_PMSGItem { @@ -92,7 +93,7 @@ struct DMUS_PMSGItem { #define PROCESSMSG_ADD (WM_APP + 4)
-static DMUS_PMSGItem* ProceedMsg(IDirectMusicPerformance8Impl* This, DMUS_PMSGItem* cur) { +static DMUS_PMSGItem* ProceedMsg(struct performance *This, DMUS_PMSGItem* cur) { if (cur->pMsg.dwType == DMUS_PMSGT_NOTIFICATION) { SetEvent(This->hNotification); } @@ -109,7 +110,7 @@ static DMUS_PMSGItem* ProceedMsg(IDirectMusicPerformance8Impl* This, DMUS_PMSGIt }
static DWORD WINAPI ProcessMsgThread(LPVOID lpParam) { - IDirectMusicPerformance8Impl* This = lpParam; + struct performance *This = lpParam; DWORD timeOut = INFINITE; MSG msg; HRESULT hr; @@ -183,7 +184,7 @@ outofthread: return 0; }
-static BOOL PostMessageToProcessMsgThread(IDirectMusicPerformance8Impl* This, UINT iMsg) { +static BOOL PostMessageToProcessMsgThread(struct performance *This, UINT iMsg) { if (FALSE == This->procThreadTicStarted && PROCESSMSG_EXIT != iMsg) { BOOL res; This->procThread = CreateThread(NULL, 0, ProcessMsgThread, This, 0, &This->procThreadId); @@ -245,9 +246,9 @@ static struct pchannel_block *pchannel_block_set(struct wine_rb_tree *tree, DWOR return block; }
-static inline IDirectMusicPerformance8Impl *impl_from_IDirectMusicPerformance8(IDirectMusicPerformance8 *iface) +static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusicPerformance8 *iface) { - return CONTAINING_RECORD(iface, IDirectMusicPerformance8Impl, IDirectMusicPerformance8_iface); + return CONTAINING_RECORD(iface, struct performance, IDirectMusicPerformance8_iface); }
/* IDirectMusicPerformance8 IUnknown part: */ @@ -270,7 +271,7 @@ static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface
static ULONG WINAPI performance_AddRef(IDirectMusicPerformance8 *iface) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p): ref=%ld\n", This, ref); @@ -280,7 +281,7 @@ static ULONG WINAPI performance_AddRef(IDirectMusicPerformance8 *iface)
static ULONG WINAPI performance_Release(IDirectMusicPerformance8 *iface) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p): ref=%ld\n", This, ref); @@ -308,7 +309,7 @@ static HRESULT WINAPI performance_Init(IDirectMusicPerformance8 *iface, IDirectM static HRESULT WINAPI performance_PlaySegment(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState **ppSegmentState) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %ld, 0x%s, %p): stub\n", This, pSegment, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState); @@ -320,7 +321,7 @@ static HRESULT WINAPI performance_PlaySegment(IDirectMusicPerformance8 *iface, I static HRESULT WINAPI performance_Stop(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, IDirectMusicSegmentState *pSegmentState, MUSIC_TIME mtTime, DWORD dwFlags) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %p, %ld, %ld): stub\n", This, pSegment, pSegmentState, mtTime, dwFlags); return S_OK; @@ -329,7 +330,7 @@ static HRESULT WINAPI performance_Stop(IDirectMusicPerformance8 *iface, IDirectM static HRESULT WINAPI performance_GetSegmentState(IDirectMusicPerformance8 *iface, IDirectMusicSegmentState **ppSegmentState, MUSIC_TIME mtTime) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p,%p, %ld): stub\n", This, ppSegmentState, mtTime); return S_OK; @@ -337,7 +338,7 @@ static HRESULT WINAPI performance_GetSegmentState(IDirectMusicPerformance8 *ifac
static HRESULT WINAPI performance_SetPrepareTime(IDirectMusicPerformance8 *iface, DWORD dwMilliSeconds) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %ld)\n", This, dwMilliSeconds); This->dwPrepareTime = dwMilliSeconds; @@ -346,7 +347,7 @@ static HRESULT WINAPI performance_SetPrepareTime(IDirectMusicPerformance8 *iface
static HRESULT WINAPI performance_GetPrepareTime(IDirectMusicPerformance8 *iface, DWORD *pdwMilliSeconds) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %p)\n", This, pdwMilliSeconds); if (NULL == pdwMilliSeconds) { @@ -358,7 +359,7 @@ static HRESULT WINAPI performance_GetPrepareTime(IDirectMusicPerformance8 *iface
static HRESULT WINAPI performance_SetBumperLength(IDirectMusicPerformance8 *iface, DWORD dwMilliSeconds) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %ld)\n", This, dwMilliSeconds); This->dwBumperLength = dwMilliSeconds; @@ -367,7 +368,7 @@ static HRESULT WINAPI performance_SetBumperLength(IDirectMusicPerformance8 *ifac
static HRESULT WINAPI performance_GetBumperLength(IDirectMusicPerformance8 *iface, DWORD *pdwMilliSeconds) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %p)\n", This, pdwMilliSeconds); if (NULL == pdwMilliSeconds) { @@ -379,7 +380,7 @@ static HRESULT WINAPI performance_GetBumperLength(IDirectMusicPerformance8 *ifac
static HRESULT WINAPI performance_SendPMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pPMSG) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL; DMUS_PMSGItem* it = NULL; DMUS_PMSGItem* prev_it = NULL; @@ -431,7 +432,7 @@ static HRESULT WINAPI performance_SendPMsg(IDirectMusicPerformance8 *iface, DMUS static HRESULT WINAPI performance_MusicToReferenceTime(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, REFERENCE_TIME *prtTime) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %ld, %p): stub\n", This, mtTime, prtTime); return S_OK; @@ -440,7 +441,7 @@ static HRESULT WINAPI performance_MusicToReferenceTime(IDirectMusicPerformance8 static HRESULT WINAPI performance_ReferenceToMusicTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtTime, MUSIC_TIME *pmtTime) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, 0x%s, %p): stub\n", This, wine_dbgstr_longlong(rtTime), pmtTime); return S_OK; @@ -449,7 +450,7 @@ static HRESULT WINAPI performance_ReferenceToMusicTime(IDirectMusicPerformance8 static HRESULT WINAPI performance_IsPlaying(IDirectMusicPerformance8 *iface, IDirectMusicSegment *pSegment, IDirectMusicSegmentState *pSegState) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %p): stub\n", This, pSegment, pSegState); return S_FALSE; @@ -457,7 +458,7 @@ static HRESULT WINAPI performance_IsPlaying(IDirectMusicPerformance8 *iface,
static HRESULT WINAPI performance_GetTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtNow, MUSIC_TIME *pmtNow) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); HRESULT hr = S_OK; REFERENCE_TIME rtCur = 0;
@@ -478,7 +479,7 @@ static HRESULT WINAPI performance_GetTime(IDirectMusicPerformance8 *iface, REFER
static HRESULT WINAPI performance_AllocPMsg(IDirectMusicPerformance8 *iface, ULONG cb, DMUS_PMSG **ppPMSG) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL;
FIXME("(%p, %ld, %p): stub\n", This, cb, ppPMSG); @@ -497,7 +498,7 @@ static HRESULT WINAPI performance_AllocPMsg(IDirectMusicPerformance8 *iface, ULO
static HRESULT WINAPI performance_FreePMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pPMSG) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); DMUS_PMSGItem* pItem = NULL;
FIXME("(%p, %p): stub\n", This, pPMSG); @@ -530,7 +531,7 @@ static HRESULT WINAPI performance_FreePMsg(IDirectMusicPerformance8 *iface, DMUS
static HRESULT WINAPI performance_GetGraph(IDirectMusicPerformance8 *iface, IDirectMusicGraph **graph) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %p)\n", This, graph);
@@ -547,7 +548,7 @@ static HRESULT WINAPI performance_GetGraph(IDirectMusicPerformance8 *iface, IDir
static HRESULT WINAPI performance_SetGraph(IDirectMusicPerformance8 *iface, IDirectMusicGraph *pGraph) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): to check\n", This, pGraph);
@@ -565,7 +566,7 @@ static HRESULT WINAPI performance_SetGraph(IDirectMusicPerformance8 *iface, IDir static HRESULT WINAPI performance_SetNotificationHandle(IDirectMusicPerformance8 *iface, HANDLE hNotification, REFERENCE_TIME rtMinimum) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %p, 0x%s)\n", This, hNotification, wine_dbgstr_longlong(rtMinimum));
@@ -580,7 +581,7 @@ static HRESULT WINAPI performance_SetNotificationHandle(IDirectMusicPerformance8 static HRESULT WINAPI performance_GetNotificationPMsg(IDirectMusicPerformance8 *iface, DMUS_NOTIFICATION_PMSG **ppNotificationPMsg) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): stub\n", This, ppNotificationPMsg); if (NULL == ppNotificationPMsg) { @@ -595,7 +596,7 @@ static HRESULT WINAPI performance_GetNotificationPMsg(IDirectMusicPerformance8 *
static HRESULT WINAPI performance_AddNotificationType(IDirectMusicPerformance8 *iface, REFGUID rguidNotificationType) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType)); return S_OK; @@ -603,13 +604,13 @@ static HRESULT WINAPI performance_AddNotificationType(IDirectMusicPerformance8 *
static HRESULT WINAPI performance_RemoveNotificationType(IDirectMusicPerformance8 *iface, REFGUID rguidNotificationType) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType)); return S_OK; }
-static HRESULT perf_dmport_create(IDirectMusicPerformance8Impl *perf, DMUS_PORTPARAMS *params) +static HRESULT perf_dmport_create(struct performance *perf, DMUS_PORTPARAMS *params) { IDirectMusicPort *port; GUID guid; @@ -633,7 +634,7 @@ static HRESULT perf_dmport_create(IDirectMusicPerformance8Impl *perf, DMUS_PORTP
static HRESULT WINAPI performance_AddPort(IDirectMusicPerformance8 *iface, IDirectMusicPort *port) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): semi-stub\n", This, port);
@@ -660,7 +661,7 @@ static HRESULT WINAPI performance_AddPort(IDirectMusicPerformance8 *iface, IDire
static HRESULT WINAPI performance_RemovePort(IDirectMusicPerformance8 *iface, IDirectMusicPort *pPort) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): stub\n", This, pPort); IDirectMusicPort_Release (pPort); @@ -670,7 +671,7 @@ static HRESULT WINAPI performance_RemovePort(IDirectMusicPerformance8 *iface, ID static HRESULT WINAPI performance_AssignPChannelBlock(IDirectMusicPerformance8 *iface, DWORD block_num, IDirectMusicPort *port, DWORD group) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %ld, %p, %ld): semi-stub\n", This, block_num, port, group);
@@ -687,7 +688,7 @@ static HRESULT WINAPI performance_AssignPChannelBlock(IDirectMusicPerformance8 * static HRESULT WINAPI performance_AssignPChannel(IDirectMusicPerformance8 *iface, DWORD pchannel, IDirectMusicPort *port, DWORD group, DWORD channel) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); struct pchannel_block *block;
FIXME("(%p)->(%ld, %p, %ld, %ld) semi-stub\n", This, pchannel, port, group, channel); @@ -707,7 +708,7 @@ static HRESULT WINAPI performance_AssignPChannel(IDirectMusicPerformance8 *iface static HRESULT WINAPI performance_PChannelInfo(IDirectMusicPerformance8 *iface, DWORD pchannel, IDirectMusicPort **port, DWORD *group, DWORD *channel) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); struct pchannel_block *block; struct wine_rb_entry *entry; DWORD block_num = pchannel / 16; @@ -737,7 +738,7 @@ static HRESULT WINAPI performance_DownloadInstrument(IDirectMusicPerformance8 *i IDirectMusicDownloadedInstrument **ppDownInst, DMUS_NOTERANGE *pNoteRanges, DWORD dwNumNoteRanges, IDirectMusicPort **ppPort, DWORD *pdwGroup, DWORD *pdwMChannel) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %ld, %p, %p, %ld, %p, %p, %p): stub\n", This, pInst, dwPChannel, ppDownInst, pNoteRanges, dwNumNoteRanges, ppPort, pdwGroup, pdwMChannel); return S_OK; @@ -745,7 +746,7 @@ static HRESULT WINAPI performance_DownloadInstrument(IDirectMusicPerformance8 *i
static HRESULT WINAPI performance_Invalidate(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, DWORD dwFlags) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %ld, %ld): stub\n", This, mtTime, dwFlags); return S_OK; @@ -754,7 +755,7 @@ static HRESULT WINAPI performance_Invalidate(IDirectMusicPerformance8 *iface, MU static HRESULT WINAPI performance_GetParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %s, %ld, %ld, %ld, %p, %p): stub\n", This, debugstr_dmguid(rguidType), dwGroupBits, dwIndex, mtTime, pmtNext, pParam); return S_OK; @@ -763,7 +764,7 @@ static HRESULT WINAPI performance_GetParam(IDirectMusicPerformance8 *iface, REFG static HRESULT WINAPI performance_SetParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void *pParam) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %s, %ld, %ld, %ld, %p): stub\n", This, debugstr_dmguid(rguidType), dwGroupBits, dwIndex, mtTime, pParam); return S_OK; @@ -772,7 +773,7 @@ static HRESULT WINAPI performance_SetParam(IDirectMusicPerformance8 *iface, REFG static HRESULT WINAPI performance_GetGlobalParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, void *pParam, DWORD dwSize) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %s, %p, %ld): stub\n", This, debugstr_dmguid(rguidType), pParam, dwSize);
@@ -791,7 +792,7 @@ static HRESULT WINAPI performance_GetGlobalParam(IDirectMusicPerformance8 *iface static HRESULT WINAPI performance_SetGlobalParam(IDirectMusicPerformance8 *iface, REFGUID rguidType, void *pParam, DWORD dwSize) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %s, %p, %ld)\n", This, debugstr_dmguid(rguidType), pParam, dwSize);
@@ -817,7 +818,7 @@ static HRESULT WINAPI performance_SetGlobalParam(IDirectMusicPerformance8 *iface
static HRESULT WINAPI performance_GetLatencyTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtTime) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
TRACE("(%p, %p): stub\n", This, prtTime); *prtTime = This->rtLatencyTime; @@ -827,7 +828,7 @@ static HRESULT WINAPI performance_GetLatencyTime(IDirectMusicPerformance8 *iface static HRESULT WINAPI performance_GetQueueTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME *prtTime)
{ - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): stub\n", This, prtTime); return S_OK; @@ -835,7 +836,7 @@ static HRESULT WINAPI performance_GetQueueTime(IDirectMusicPerformance8 *iface,
static HRESULT WINAPI performance_AdjustTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtAmount) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, 0x%s): stub\n", This, wine_dbgstr_longlong(rtAmount)); return S_OK; @@ -843,7 +844,7 @@ static HRESULT WINAPI performance_AdjustTime(IDirectMusicPerformance8 *iface, RE
static HRESULT WINAPI performance_CloseDown(IDirectMusicPerformance8 *iface) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p): semi-stub\n", This);
@@ -867,7 +868,7 @@ static HRESULT WINAPI performance_CloseDown(IDirectMusicPerformance8 *iface) static HRESULT WINAPI performance_GetResolvedTime(IDirectMusicPerformance8 *iface, REFERENCE_TIME rtTime, REFERENCE_TIME *prtResolved, DWORD dwTimeResolveFlags) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, 0x%s, %p, %ld): stub\n", This, wine_dbgstr_longlong(rtTime), prtResolved, dwTimeResolveFlags); @@ -877,7 +878,7 @@ static HRESULT WINAPI performance_GetResolvedTime(IDirectMusicPerformance8 *ifac static HRESULT WINAPI performance_MIDIToMusic(IDirectMusicPerformance8 *iface, BYTE bMIDIValue, DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, WORD *pwMusicValue) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %d, %p, %d, %d, %p): stub\n", This, bMIDIValue, pChord, bPlayMode, bChordLevel, pwMusicValue); return S_OK; @@ -886,7 +887,7 @@ static HRESULT WINAPI performance_MIDIToMusic(IDirectMusicPerformance8 *iface, B static HRESULT WINAPI performance_MusicToMIDI(IDirectMusicPerformance8 *iface, WORD wMusicValue, DMUS_CHORD_KEY *pChord, BYTE bPlayMode, BYTE bChordLevel, BYTE *pbMIDIValue) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %d, %p, %d, %d, %p): stub\n", This, wMusicValue, pChord, bPlayMode, bChordLevel, pbMIDIValue); return S_OK; @@ -895,7 +896,7 @@ static HRESULT WINAPI performance_MusicToMIDI(IDirectMusicPerformance8 *iface, W static HRESULT WINAPI performance_TimeToRhythm(IDirectMusicPerformance8 *iface, MUSIC_TIME mtTime, DMUS_TIMESIGNATURE *pTimeSig, WORD *pwMeasure, BYTE *pbBeat, BYTE *pbGrid, short *pnOffset) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %ld, %p, %p, %p, %p, %p): stub\n", This, mtTime, pTimeSig, pwMeasure, pbBeat, pbGrid, pnOffset); return S_OK; @@ -904,7 +905,7 @@ static HRESULT WINAPI performance_TimeToRhythm(IDirectMusicPerformance8 *iface, static HRESULT WINAPI performance_RhythmToTime(IDirectMusicPerformance8 *iface, WORD wMeasure, BYTE bBeat, BYTE bGrid, short nOffset, DMUS_TIMESIGNATURE *pTimeSig, MUSIC_TIME *pmtTime) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %d, %d, %d, %i, %p, %p): stub\n", This, wMeasure, bBeat, bGrid, nOffset, pTimeSig, pmtTime); return S_OK; @@ -915,7 +916,7 @@ static HRESULT WINAPI performance_InitAudio(IDirectMusicPerformance8 *iface, IDi IDirectSound **dsound, HWND hwnd, DWORD default_path_type, DWORD num_channels, DWORD flags, DMUS_AUDIOPARAMS *params) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); HRESULT hr = S_OK;
TRACE("(%p, %p, %p, %p, %lx, %lu, %lx, %p)\n", This, dmusic, dsound, hwnd, default_path_type, @@ -1000,7 +1001,7 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface, WCHAR *pwzSegmentName, IUnknown *pTransition, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom, IUnknown *pAudioPath) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): stub\n", This, pSource, pwzSegmentName, pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath); @@ -1012,7 +1013,7 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface, static HRESULT WINAPI performance_StopEx(IDirectMusicPerformance8 *iface, IUnknown *pObjectToStop, __int64 i64StopTime, DWORD dwFlags) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, 0x%s, %ld): stub\n", This, pObjectToStop, wine_dbgstr_longlong(i64StopTime), dwFlags); @@ -1022,7 +1023,7 @@ static HRESULT WINAPI performance_StopEx(IDirectMusicPerformance8 *iface, IUnkno static HRESULT WINAPI performance_ClonePMsg(IDirectMusicPerformance8 *iface, DMUS_PMSG *pSourcePMSG, DMUS_PMSG **ppCopyPMSG) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p, %p): stub\n", This, pSourcePMSG, ppCopyPMSG); return S_OK; @@ -1031,7 +1032,7 @@ static HRESULT WINAPI performance_ClonePMsg(IDirectMusicPerformance8 *iface, DMU static HRESULT WINAPI performance_CreateAudioPath(IDirectMusicPerformance8 *iface, IUnknown *pSourceConfig, BOOL fActivate, IDirectMusicAudioPath **ppNewPath) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); IDirectMusicAudioPath *pPath;
FIXME("(%p, %p, %d, %p): stub\n", This, pSourceConfig, fActivate, ppNewPath); @@ -1053,7 +1054,7 @@ static HRESULT WINAPI performance_CreateAudioPath(IDirectMusicPerformance8 *ifac static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformance8 *iface, DWORD dwType, DWORD pchannel_count, BOOL fActivate, IDirectMusicAudioPath **ppNewPath) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface); IDirectMusicAudioPath *pPath; DSBUFFERDESC desc; WAVEFORMATEX format; @@ -1146,7 +1147,7 @@ static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformanc
static HRESULT WINAPI performance_SetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath *pAudioPath) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): semi-stub\n", This, pAudioPath);
@@ -1166,7 +1167,7 @@ static HRESULT WINAPI performance_SetDefaultAudioPath(IDirectMusicPerformance8 * static HRESULT WINAPI performance_GetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath **ppAudioPath) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %p): semi-stub (%p)\n", This, ppAudioPath, This->pDefaultPath);
@@ -1182,7 +1183,7 @@ static HRESULT WINAPI performance_GetDefaultAudioPath(IDirectMusicPerformance8 * static HRESULT WINAPI performance_GetParamEx(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwTrackID, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) { - IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); + struct performance *This = impl_from_IDirectMusicPerformance8(iface);
FIXME("(%p, %s, %ld, %ld, %ld, %ld, %p, %p): stub\n", This, debugstr_dmguid(rguidType), dwTrackID, dwGroupBits, dwIndex, mtTime, pmtNext, pParam);
@@ -1249,7 +1250,7 @@ static const IDirectMusicPerformance8Vtbl performance_vtbl = /* for ClassFactory */ HRESULT create_dmperformance(REFIID iid, void **ret_iface) { - IDirectMusicPerformance8Impl *obj; + struct performance *obj; HRESULT hr;
TRACE("(%s, %p)\n", debugstr_guid(iid), ret_iface); @@ -1261,7 +1262,7 @@ HRESULT create_dmperformance(REFIID iid, void **ret_iface)
obj->pDefaultPath = NULL; InitializeCriticalSection(&obj->safe); - obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectMusicPerformance8Impl*->safe"); + obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": performance->safe"); wine_rb_init(&obj->pchannels, pchannel_block_compare);
obj->rtLatencyTime = 100; /* 100 ms TO FIX */
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index d6f7e76686e..a185716761d 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -252,21 +252,23 @@ static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusi }
/* IDirectMusicPerformance8 IUnknown part: */ -static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ppv) +static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ret_iface) { - TRACE("(%p, %s,%p)\n", iface, debugstr_dmguid(riid), ppv); - - if (IsEqualIID (riid, &IID_IUnknown) || - IsEqualIID (riid, &IID_IDirectMusicPerformance) || - IsEqualIID (riid, &IID_IDirectMusicPerformance2) || - IsEqualIID (riid, &IID_IDirectMusicPerformance8)) { - *ppv = iface; - IUnknown_AddRef(iface); - return S_OK; - } + TRACE("(%p, %s, %p)\n", iface, debugstr_dmguid(riid), ret_iface); + + if (IsEqualGUID(riid, &IID_IUnknown) + || IsEqualGUID(riid, &IID_IDirectMusicPerformance) + || IsEqualGUID(riid, &IID_IDirectMusicPerformance2) + || IsEqualGUID(riid, &IID_IDirectMusicPerformance8)) + { + *ret_iface = iface; + IUnknown_AddRef(iface); + return S_OK; + }
- WARN("(%p, %s,%p): not found\n", iface, debugstr_dmguid(riid), ppv); - return E_NOINTERFACE; + *ret_iface = NULL; + WARN("(%p, %s, %p): not found\n", iface, debugstr_dmguid(riid), ret_iface); + return E_NOINTERFACE; }
static ULONG WINAPI performance_AddRef(IDirectMusicPerformance8 *iface)
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 74 ++++++++++++++++++++++++++++++++++ dlls/dmime/tests/dmime.c | 22 ++++------ dlls/dmime/tests/performance.c | 2 +- 3 files changed, 83 insertions(+), 15 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index a185716761d..887d9a7bf16 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -37,6 +37,7 @@ struct pchannel_block { struct performance { IDirectMusicPerformance8 IDirectMusicPerformance8_iface; + IDirectMusicGraph IDirectMusicGraph_iface; LONG ref; IDirectMusic8 *dmusic; IDirectSound *dsound; @@ -254,6 +255,8 @@ static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusi /* IDirectMusicPerformance8 IUnknown part: */ static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ret_iface) { + struct performance *This = impl_from_IDirectMusicPerformance8(iface); + TRACE("(%p, %s, %p)\n", iface, debugstr_dmguid(riid), ret_iface);
if (IsEqualGUID(riid, &IID_IUnknown) @@ -266,6 +269,13 @@ static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface return S_OK; }
+ if (IsEqualGUID(riid, &IID_IDirectMusicGraph)) + { + *ret_iface = &This->IDirectMusicGraph_iface; + IDirectMusicGraph_AddRef(&This->IDirectMusicGraph_iface); + return S_OK; + } + *ret_iface = NULL; WARN("(%p, %s, %p): not found\n", iface, debugstr_dmguid(riid), ret_iface); return E_NOINTERFACE; @@ -1249,6 +1259,69 @@ static const IDirectMusicPerformance8Vtbl performance_vtbl = performance_GetParamEx, };
+static inline struct performance *impl_from_IDirectMusicGraph(IDirectMusicGraph *iface) +{ + return CONTAINING_RECORD(iface, struct performance, IDirectMusicGraph_iface); +} + +static HRESULT WINAPI performance_graph_QueryInterface(IDirectMusicGraph *iface, REFIID riid, void **ret_iface) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + return IDirectMusicPerformance8_QueryInterface(&This->IDirectMusicPerformance8_iface, riid, ret_iface); +} + +static ULONG WINAPI performance_graph_AddRef(IDirectMusicGraph *iface) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + return IDirectMusicPerformance8_AddRef(&This->IDirectMusicPerformance8_iface); +} + +static ULONG WINAPI performance_graph_Release(IDirectMusicGraph *iface) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + return IDirectMusicPerformance8_Release(&This->IDirectMusicPerformance8_iface); +} + +static HRESULT WINAPI performance_graph_StampPMsg(IDirectMusicGraph *iface, DMUS_PMSG *msg) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + FIXME("(%p, %p): stub\n", This, msg); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_graph_InsertTool(IDirectMusicGraph *iface, IDirectMusicTool *tool, + DWORD *channels, DWORD channels_count, LONG index) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + FIXME("(%p, %p, %p, %lu, %ld): stub\n", This, tool, channels, channels_count, index); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_graph_GetTool(IDirectMusicGraph *iface, DWORD index, IDirectMusicTool **tool) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + FIXME("(%p, %lu, %p): stub\n", This, index, tool); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_graph_RemoveTool(IDirectMusicGraph *iface, IDirectMusicTool *tool) +{ + struct performance *This = impl_from_IDirectMusicGraph(iface); + FIXME("(%p, %p): stub\n", This, tool); + return E_NOTIMPL; +} + +static const IDirectMusicGraphVtbl performance_graph_vtbl = +{ + performance_graph_QueryInterface, + performance_graph_AddRef, + performance_graph_Release, + performance_graph_StampPMsg, + performance_graph_InsertTool, + performance_graph_GetTool, + performance_graph_RemoveTool, +}; + /* for ClassFactory */ HRESULT create_dmperformance(REFIID iid, void **ret_iface) { @@ -1260,6 +1333,7 @@ HRESULT create_dmperformance(REFIID iid, void **ret_iface) *ret_iface = NULL; if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicPerformance8_iface.lpVtbl = &performance_vtbl; + obj->IDirectMusicGraph_iface.lpVtbl = &performance_graph_vtbl; obj->ref = 1;
obj->pDefaultPath = NULL; diff --git a/dlls/dmime/tests/dmime.c b/dlls/dmime/tests/dmime.c index e95a1c02427..6dcb2b820c9 100644 --- a/dlls/dmime/tests/dmime.c +++ b/dlls/dmime/tests/dmime.c @@ -1536,8 +1536,7 @@ static void test_performance_graph(void)
/* performance exposes a graph interface but it's not an actual toolgraph */ hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicGraph, (void **)&graph); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (hr != S_OK) goto skip_graph; + ok(hr == S_OK, "got %#lx\n", hr); hr = IDirectMusicGraph_InsertTool(graph, (IDirectMusicTool *)tool, NULL, 0, -1); ok(hr == E_NOTIMPL, "got %#lx\n", hr); hr = IDirectMusicGraph_GetTool(graph, 0, &tmp_tool); @@ -1578,7 +1577,6 @@ static void test_performance_graph(void) IDirectMusicGraph_Release(graph);
-skip_graph: /* performance doesn't have a default embedded toolgraph */ hr = IDirectMusicPerformance_GetGraph(performance, &graph); ok(hr == DMUS_E_NOT_FOUND, "got %#lx\n", hr); @@ -1604,8 +1602,7 @@ skip_graph:
/* test IDirectMusicGraph_StampPMsg usage */ hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicGraph, (void **)&graph); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (hr != S_OK) goto skip_graph2; + ok(hr == S_OK, "got %#lx\n", hr);
memset(&msg, 0, sizeof(msg)); hr = IDirectMusicGraph_StampPMsg(graph, &msg); @@ -1636,7 +1633,6 @@ skip_graph: IDirectMusicGraph_Release(graph);
-skip_graph2: IDirectMusicPerformance_Release(performance); IDirectMusicTool_Release(tool); } @@ -1874,12 +1870,11 @@ static void test_performance_pmsg(void) msg->dwFlags = DMUS_PMSGF_REFTIME; msg->dwType = DMUS_PMSGT_USER;
- graph = NULL; hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicGraph, (void **)&graph); + ok(hr == S_OK, "got %#lx\n", hr); + hr = IDirectMusicGraph_StampPMsg(graph, msg); todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (graph) hr = IDirectMusicGraph_StampPMsg(graph, msg); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (graph) IDirectMusicGraph_Release(graph); + IDirectMusicGraph_Release(graph);
hr = IDirectMusicPerformance_SendPMsg(performance, msg); ok(hr == S_OK, "got %#lx\n", hr); @@ -1906,11 +1901,10 @@ static void test_performance_pmsg(void) msg->dwType = DMUS_PMSGT_USER;
hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicGraph, (void **)&graph); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (!graph) hr = S_OK; - else hr = IDirectMusicGraph_StampPMsg(graph, msg); ok(hr == S_OK, "got %#lx\n", hr); - if (graph) IDirectMusicGraph_Release(graph); + hr = IDirectMusicGraph_StampPMsg(graph, msg); + todo_wine ok(hr == S_OK, "got %#lx\n", hr); + IDirectMusicGraph_Release(graph);
msg->dwFlags &= ~(DMUS_PMSGF_TOOL_IMMEDIATE | DMUS_PMSGF_TOOL_QUEUE | DMUS_PMSGF_TOOL_ATTIME); msg->dwFlags |= delivery_flags[i]; diff --git a/dlls/dmime/tests/performance.c b/dlls/dmime/tests/performance.c index 4af91fc3130..5cb91a78387 100644 --- a/dlls/dmime/tests/performance.c +++ b/dlls/dmime/tests/performance.c @@ -627,7 +627,7 @@ static void test_performance_graph(void) ok(graph2 == NULL, "unexpected pointer.\n");
hr = IDirectMusicPerformance8_QueryInterface(perf, &IID_IDirectMusicGraph, (void**)&graph); - todo_wine ok(hr == S_OK, "Failed: %#lx\n", hr); + ok(hr == S_OK, "Failed: %#lx\n", hr);
if (graph) IDirectMusicGraph_Release(graph);
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/dmime/performance.c | 89 ++++++++++++++++++++++++++++++++++++++++ dlls/dmime/tests/dmime.c | 6 +-- 2 files changed, 91 insertions(+), 4 deletions(-)
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c index 887d9a7bf16..1f8de0837d5 100644 --- a/dlls/dmime/performance.c +++ b/dlls/dmime/performance.c @@ -38,6 +38,7 @@ struct performance { IDirectMusicPerformance8 IDirectMusicPerformance8_iface; IDirectMusicGraph IDirectMusicGraph_iface; + IDirectMusicTool IDirectMusicTool_iface; LONG ref; IDirectMusic8 *dmusic; IDirectSound *dsound; @@ -276,6 +277,13 @@ static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface return S_OK; }
+ if (IsEqualGUID(riid, &IID_IDirectMusicTool)) + { + *ret_iface = &This->IDirectMusicTool_iface; + IDirectMusicTool_AddRef(&This->IDirectMusicTool_iface); + return S_OK; + } + *ret_iface = NULL; WARN("(%p, %s, %p): not found\n", iface, debugstr_dmguid(riid), ret_iface); return E_NOINTERFACE; @@ -1322,6 +1330,86 @@ static const IDirectMusicGraphVtbl performance_graph_vtbl = performance_graph_RemoveTool, };
+static inline struct performance *impl_from_IDirectMusicTool(IDirectMusicTool *iface) +{ + return CONTAINING_RECORD(iface, struct performance, IDirectMusicTool_iface); +} + +static HRESULT WINAPI performance_tool_QueryInterface(IDirectMusicTool *iface, REFIID riid, void **ret_iface) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + return IDirectMusicPerformance8_QueryInterface(&This->IDirectMusicPerformance8_iface, riid, ret_iface); +} + +static ULONG WINAPI performance_tool_AddRef(IDirectMusicTool *iface) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + return IDirectMusicPerformance8_AddRef(&This->IDirectMusicPerformance8_iface); +} + +static ULONG WINAPI performance_tool_Release(IDirectMusicTool *iface) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + return IDirectMusicPerformance8_Release(&This->IDirectMusicPerformance8_iface); +} + +static HRESULT WINAPI performance_tool_Init(IDirectMusicTool *iface, IDirectMusicGraph *graph) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p): stub\n", This, graph); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_tool_GetMsgDeliveryType(IDirectMusicTool *iface, DWORD *type) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p): stub\n", This, type); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_tool_GetMediaTypeArraySize(IDirectMusicTool *iface, DWORD *size) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p): stub\n", This, size); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_tool_GetMediaTypes(IDirectMusicTool *iface, DWORD **types, DWORD size) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p, %lu): stub\n", This, types, size); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_tool_ProcessPMsg(IDirectMusicTool *iface, + IDirectMusicPerformance *performance, DMUS_PMSG *msg) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p, %p): stub\n", This, performance, msg); + return E_NOTIMPL; +} + +static HRESULT WINAPI performance_tool_Flush(IDirectMusicTool *iface, + IDirectMusicPerformance *performance, DMUS_PMSG *msg, REFERENCE_TIME time) +{ + struct performance *This = impl_from_IDirectMusicTool(iface); + FIXME("(%p, %p, %p, %I64d): stub\n", This, performance, msg, time); + return E_NOTIMPL; +} + +static const IDirectMusicToolVtbl performance_tool_vtbl = +{ + performance_tool_QueryInterface, + performance_tool_AddRef, + performance_tool_Release, + performance_tool_Init, + performance_tool_GetMsgDeliveryType, + performance_tool_GetMediaTypeArraySize, + performance_tool_GetMediaTypes, + performance_tool_ProcessPMsg, + performance_tool_Flush, +}; + /* for ClassFactory */ HRESULT create_dmperformance(REFIID iid, void **ret_iface) { @@ -1334,6 +1422,7 @@ HRESULT create_dmperformance(REFIID iid, void **ret_iface) if (!(obj = calloc(1, sizeof(*obj)))) return E_OUTOFMEMORY; obj->IDirectMusicPerformance8_iface.lpVtbl = &performance_vtbl; obj->IDirectMusicGraph_iface.lpVtbl = &performance_graph_vtbl; + obj->IDirectMusicTool_iface.lpVtbl = &performance_tool_vtbl; obj->ref = 1;
obj->pDefaultPath = NULL; diff --git a/dlls/dmime/tests/dmime.c b/dlls/dmime/tests/dmime.c index 6dcb2b820c9..0aeed24b200 100644 --- a/dlls/dmime/tests/dmime.c +++ b/dlls/dmime/tests/dmime.c @@ -1489,10 +1489,9 @@ static void test_performance_tool(void) check_interface(performance, &IID_IDirectMusicTool8, FALSE);
hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicTool, (void **)&tool); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); - if (hr != S_OK) goto skip_tool; + ok(hr == S_OK, "got %#lx\n", hr); hr = IDirectMusicPerformance_QueryInterface(performance, &IID_IDirectMusicGraph, (void **)&graph); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); + ok(hr == S_OK, "got %#lx\n", hr);
hr = IDirectMusicTool_Init(tool, graph); ok(hr == E_NOTIMPL, "got %#lx\n", hr); @@ -1514,7 +1513,6 @@ static void test_performance_tool(void) IDirectMusicGraph_Release(graph); IDirectMusicTool_Release(tool);
-skip_tool: IDirectMusicPerformance_Release(performance); }
As this puzzled me too and to document it for posterity: While there is a dmime/graph.c that implements an DirectMusicGraph object that one has nothing to do with the IDirectMusicGraph interface implemented by the DirectMusicPerformance object. The MS documentation for IDirectMusicPerformance8::GetGraph() explains it in the remarks.
This merge request was approved by Michael Stefaniuc.
On Sun Sep 10 22:16:58 2023 +0000, Michael Stefaniuc wrote:
As this puzzled me too and to document it for posterity: While there is a dmime/graph.c that implements an DirectMusicGraph object that one has nothing to do with the IDirectMusicGraph interface implemented by the DirectMusicPerformance object. The MS documentation for IDirectMusicPerformance8::GetGraph() explains it in the remarks.
Yes, the documentation is actually quite cryptic at first. The difference is this:
* The IDirectMusicGraph class and its interface handle a graph of tools, and is responsible for "Stamping" messages with the next tool in the graph, or return DMUS_S_LAST_TOOL if the last tool has been reached.
* The IDirectMusicPerformance also implement IDirectMusicTool interface, acting as the "output tool" that is described in the documentation, translating messages to the ports.
* IDirectMusicPerformance also implement a IDirectMusicGraph interface, but only for convenience and to wrap the internal tool graph, intercept the DMUS_S_LAST_TOOL status returned by the internal graph, and stamp the messages with the output tool.
(This means, if messages are stamped with the internal graph, they will be processed by all its tools, but then it will end with DMUS_S_LAST_TOOL and the performance output tool will not receive the messages)
Note that, according to the documentation and the tests, IDirectMusicSegmentState is also supposed to implement the same kind of graph wrapper, probably for the same purpose but passing the messages down to the performance when the segment graph has finished processing its messages. However, my current (limited) testing suggest that it doesn't work like that and that segment messages are only delivered to the segment tool graph, and not the performance tool graph... I think only the performance graph and tool are useful for the moment so I didn't look further.