55 *ret_iface = &
This->dmobj.IPersistStream_iface;
61 IUnknown_AddRef((
IUnknown*)*ret_iface);
90 FIXME(
"(%p, %p): stub\n",
This, pSegment);
95 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
99 FIXME(
"(%p, %p, %p, %p, %ld, %ld): stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
106 FIXME(
"(%p, %p): stub\n",
This, pStateData);
112 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
115 FIXME(
"(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n",
This, pStateData, mtStart, mtEnd, mtOffset,
dwFlags, pPerf, pSegSt, dwVirtualID);
130 FIXME(
"GUID_CommandParam not handled yet\n");
133 FIXME(
"GUID_CommandParam2 not handled yet\n");
136 FIXME(
"GUID_CommandParamNext not handled yet\n");
154 FIXME(
"GUID_CommandParam not handled yet\n");
157 FIXME(
"GUID_CommandParamNext not handled yet\n");
175 ||
IsEqualGUID (rguidType, &GUID_CommandParamNext)) {
176 TRACE(
"param supported\n");
180 TRACE(
"param unsupported\n");
201 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
204 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
210 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
213 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
238 DWORD trackgroup, IDirectMusicTrack **track)
242 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
248 IDirectMusicTrack **ppResultTrack)
251 FIXME(
"(%p, %p, %ld, %p, %ld, %p): stub\n",
This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack);
285 DWORD chunkSize, dwSizeOfStruct, nrCommands;
288 IStream_Read (pStm, &chunkID,
sizeof(
FOURCC),
NULL);
289 IStream_Read (pStm, &chunkSize,
sizeof(
DWORD),
NULL);
294 TRACE_(dmfile)(
": command track chunk\n");
295 IStream_Read (pStm, &dwSizeOfStruct,
sizeof(
DWORD),
NULL);
297 TRACE_(dmfile)(
": declared size of struct (=%ld) != actual size; indicates older direct music version\n", dwSizeOfStruct);
299 chunkSize -=
sizeof(
DWORD);
300 nrCommands = chunkSize/dwSizeOfStruct;
304 IStream_Read (pStm, &pNewCommand->
pCommand, dwSizeOfStruct,
NULL);
307 TRACE_(dmfile)(
": reading finished\n");
312 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
314 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
323 struct list *listEntry;
324 TRACE(
"*** IDirectMusicCommandTrack (%p) ***\n",
This);
325 TRACE(
" - Commands:\n");
328 TRACE(
" - Command[%i]:\n",
r);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static IDirectMusicCommandTrack * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
HRESULT create_dmcommandtrack(REFIID lpcGUID, void **ppobj)
static HRESULT WINAPI command_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
static HRESULT WINAPI command_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 command_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static HRESULT WINAPI command_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI command_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 command_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static HRESULT WINAPI command_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static IDirectMusicCommandTrack * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI command_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static ULONG WINAPI command_track_Release(IDirectMusicTrack8 *iface)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI command_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
static HRESULT WINAPI command_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack)
static HRESULT WINAPI command_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static HRESULT WINAPI command_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static HRESULT WINAPI command_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static HRESULT WINAPI command_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
static HRESULT WINAPI IPersistStreamImpl_Save(IPersistStream *iface, IStream *stream, BOOL cleardirty)
static HRESULT WINAPI command_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID rguidType)
static HRESULT WINAPI command_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI IPersistStreamImpl_Load(IPersistStream *iface, IStream *pStm)
static ULONG WINAPI command_track_AddRef(IDirectMusicTrack8 *iface)
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_COMMANDTRACK_CHUNK
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
_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)
#define LIST_FOR_EACH(cursor, list)
IDirectMusicTrack8 IDirectMusicTrack8_iface
#define CONTAINING_RECORD(address, type, field)