61 *ret_iface = &
This->dmobj.IPersistStream_iface;
67 IUnknown_AddRef((
IUnknown*)*ret_iface);
110 FIXME(
"(%p, %p): stub\n",
This, pSegment);
115 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
119 FIXME(
"(%p, %p, %p, %p, %ld, %ld): stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
126 FIXME(
"(%p, %p): stub\n",
This, pStateData);
132 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
135 FIXME(
"(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n",
This, pStateData, mtStart, mtEnd, mtOffset,
dwFlags, pPerf, pSegSt, dwVirtualID);
184 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
187 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
193 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
196 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
221 DWORD trackgroup, IDirectMusicTrack **track)
225 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
233 TRACE(
"(%p, %p, %ld, %p, %ld, %p): method not implemented\n",
This, newtrack,
join,
context,
234 trackgroup, resulttrack);
279 TRACE(
"Found DMUS_IO_SEGMENT_ITEM_HEADER\n");
280 TRACE(
"\tlTimePhysical: %lu\n",
item->header.lTimeLogical);
281 TRACE(
"\tlTimePhysical: %lu\n",
item->header.lTimePhysical);
282 TRACE(
"\tdwPlayFlags: %#08lx\n",
item->header.dwPlayFlags);
283 TRACE(
"\tdwFlags: %#08lx\n",
item->header.dwFlags);
356 WARN(
"Got flags %#lx; must be zero\n",
header.dwFlags);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define DMUS_E_GET_UNSUPPORTED
#define DMUS_E_TRACK_HDR_NOT_FIRST_CK
#define DMUS_E_INVALID_SEGMENTTRIGGERTRACK
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
HRESULT stream_chunk_get_data(IStream *stream, const struct chunk_entry *chunk, void *data, ULONG size)
HRESULT stream_next_chunk(IStream *stream, struct chunk_entry *chunk)
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT stream_chunk_get_wstr(IStream *stream, const struct chunk_entry *chunk, WCHAR *str, ULONG size)
const char * debugstr_chunk(const struct chunk_entry *chunk)
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT dmobj_parsereference(IStream *stream, const struct chunk_entry *list, IDirectMusicObject **dmobj)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
HRESULT stream_get_chunk(IStream *stream, struct chunk_entry *chunk)
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream, BOOL clear_dirty)
#define IDirectMusicTrack8_Release(p)
#define IDirectMusicTrack8_QueryInterface(p, a, b)
#define DMUS_FOURCC_SEGTRACK_LIST
#define DMUS_FOURCC_SEGMENTITEMNAME_CHUNK
#define DMUS_FOURCC_SEGTRACK_CHUNK
#define DMUS_SEGMENTTRACKF_MOTIF
#define DMUS_FOURCC_REF_LIST
#define DMUS_FOURCC_SEGMENTS_LIST
#define DMUS_FOURCC_SEGMENT_LIST
#define DMUS_FOURCC_SEGMENTITEM_CHUNK
#define IDirectMusicObject_Release(p)
GLuint GLuint GLsizei GLenum type
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
static IDirectMusicSegTriggerTrack * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
static HRESULT WINAPI segment_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID type)
static HRESULT parse_segment_item(IDirectMusicSegTriggerTrack *This, IStream *stream, const struct chunk_entry *lseg)
static HRESULT parse_segments_list(IDirectMusicSegTriggerTrack *This, IStream *stream, const struct chunk_entry *lsgl)
static HRESULT WINAPI segment_track_Play(IDirectMusicTrack8 *iface, void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
static ULONG WINAPI segment_track_AddRef(IDirectMusicTrack8 *iface)
static HRESULT WINAPI segment_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static HRESULT WINAPI segment_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI segment_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static IDirectMusicSegTriggerTrack * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI segment_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static HRESULT WINAPI segment_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static HRESULT WINAPI segment_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 segment_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static HRESULT WINAPI segment_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static HRESULT WINAPI segment_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI segment_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static ULONG WINAPI segment_track_Release(IDirectMusicTrack8 *iface)
static HRESULT WINAPI trigger_IPersistStream_Load(IPersistStream *iface, IStream *stream)
static HRESULT WINAPI segment_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
static HRESULT WINAPI segment_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
HRESULT create_dmsegtriggertrack(REFIID lpcGUID, void **ppobj)
static HRESULT WINAPI segment_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *newtrack, MUSIC_TIME join, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **resulttrack)
static HRESULT WINAPI segment_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
IDirectMusicTrack8 IDirectMusicTrack8_iface
DMUS_IO_SEGMENT_ITEM_HEADER header
IDirectMusicObject * dmobj
#define CONTAINING_RECORD(address, type, field)