56 *ret_iface = &
This->dmobj.IPersistStream_iface;
62 IUnknown_AddRef((
IUnknown*)*ret_iface);
91 FIXME(
"(%p, %p): stub\n",
This, pSegment);
96 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
100 FIXME(
"(%p, %p, %p, %p, %ld, %ld): stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
107 FIXME(
"(%p, %p): stub\n",
This, pStateData);
113 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
116 FIXME(
"(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n",
This, pStateData, mtStart, mtEnd, mtOffset,
dwFlags, pPerf, pSegSt, dwVirtualID);
131 FIXME(
"GUID_ChordParam not handled yet\n");
134 FIXME(
"GUID_RhythmParam not handled yet\n");
153 FIXME(
"GUID_ChordParam not handled yet\n");
170 TRACE(
"param unsupported\n");
191 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
194 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
200 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
203 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
228 DWORD trackgroup, IDirectMusicTrack **track)
232 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
238 IDirectMusicTrack **ppResultTrack)
241 FIXME(
"(%p, %p, %ld, %p, %ld, %p): stub\n",
This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack);
270 DWORD ListSize[3], ListCount[3];
285 switch (Chunk.
fccID) {
287 TRACE_(dmfile)(
": Chord track header chunk\n");
289 TRACE_(dmfile)(
" - dwScale: %ld\n",
This->dwScale);
299 TRACE_(dmfile)(
": Chord track body chunk\n");
301 IStream_Read (pStm, &sz,
sizeof(
DWORD),
NULL);
302 TRACE_(dmfile)(
" - sizeof(DMUS_IO_CHORD): %ld\n", sz);
306 TRACE_(dmfile)(
" - mtTime: %lu\n",
body.mtTime);
307 TRACE_(dmfile)(
" - wMeasure: %u\n",
body.wMeasure);
309 TRACE_(dmfile)(
" - bFlags: 0x%02x\n",
body.bFlags);
312 TRACE_(dmfile)(
" - # DMUS_IO_SUBCHORDS: %ld\n",
num);
313 IStream_Read (pStm, &sz,
sizeof(
DWORD),
NULL);
314 TRACE_(dmfile)(
" - sizeof(DMUS_IO_SUBCHORDS): %ld\n", sz);
317 for (it = 0; it <
num; ++it) {
319 TRACE_(dmfile)(
"DMUS_IO_SUBCHORD #%ld\n", it+1);
330 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
332 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
336 TRACE_(dmfile)(
": ListCount[0] = %ld < ListSize[0] = %ld\n", ListCount[0], ListSize[0]);
337 }
while (ListCount[0] < ListSize[0]);
354 TRACE(
"(%p, %p): Loading\n",
This, pStm);
358 switch (Chunk.
fccID) {
362 switch (Chunk.
fccID) {
364 TRACE_(dmfile)(
": Chord track list\n");
370 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
372 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
376 TRACE_(dmfile)(
": reading finished\n");
380 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
382 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static HRESULT WINAPI chord_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI chord_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID type)
static IDirectMusicChordTrack * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI chord_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static HRESULT WINAPI chord_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack)
static ULONG WINAPI chord_track_AddRef(IDirectMusicTrack8 *iface)
HRESULT create_dmchordtrack(REFIID lpcGUID, void **ppobj)
static HRESULT WINAPI chord_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI chord_track_Play(IDirectMusicTrack8 *iface, void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
static HRESULT WINAPI chord_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static HRESULT WINAPI chord_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static HRESULT parse_chordtrack_list(IDirectMusicChordTrack *This, DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm)
static HRESULT WINAPI chord_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI chord_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
static ULONG WINAPI chord_track_Release(IDirectMusicTrack8 *iface)
static HRESULT WINAPI chord_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static HRESULT WINAPI chord_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static HRESULT WINAPI chord_track_PlayEx(IDirectMusicTrack8 *iface, void *pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
static HRESULT WINAPI IPersistStreamImpl_Save(IPersistStream *iface, IStream *stream, BOOL cleardirty)
static HRESULT WINAPI IPersistStreamImpl_Load(IPersistStream *iface, IStream *pStm)
static HRESULT WINAPI chord_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
static IDirectMusicChordTrack * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
static HRESULT WINAPI chord_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static HRESULT WINAPI chord_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
#define DMUS_E_GET_UNSUPPORTED
#define DMUS_E_TYPE_UNSUPPORTED
#define DMUS_E_SET_UNSUPPORTED
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
#define IDirectMusicTrack8_Release(p)
#define IDirectMusicTrack8_QueryInterface(p, a, b)
#define DMUS_FOURCC_CHORDTRACKBODY_CHUNK
#define DMUS_FOURCC_CHORDTRACKHEADER_CHUNK
#define DMUS_FOURCC_CHORDTRACK_LIST
GLuint GLuint GLsizei GLenum type
#define FOURCC(a, b, c, d)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStream
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
static __inline const char * debugstr_fourcc(unsigned int cc)
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
IDirectMusicTrack8 IDirectMusicTrack8_iface
#define CONTAINING_RECORD(address, type, field)