55 *ret_iface = &
This->dmobj.IPersistStream_iface;
61 IUnknown_AddRef((
IUnknown*)*ret_iface);
92 FIXME(
"(%p, %p): stub\n",
This, pSegment);
97 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
101 FIXME(
"(%p, %p, %p, %p, %ld, %ld): stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
108 FIXME(
"(%p, %p): stub\n",
This, pStateData);
117 IDirectMusicGraph *
graph;
121 TRACE(
"(%p, %p, %ld, %ld, %ld, %#lx, %p, %p, %ld)\n",
This, state_data, start_time, end_time,
124 if (segment_flags)
FIXME(
"segment_flags %#lx not implemented\n", segment_flags);
128 &IID_IDirectMusicGraph, (
void **)&
graph)))
136 if (
item->mtTime < start_time)
continue;
137 if (
item->mtTime >= end_time)
continue;
147 note->mtDuration =
item->mtDuration;
169 msg->mtTime =
item->mtTime + time_offset;
171 msg->dwPChannel =
item->dwPChannel;
172 msg->dwVirtualTrackID = track_id;
188 if (
item->mtStart < start_time)
continue;
189 if (
item->mtStart >= end_time)
continue;
195 msg->mtTime =
item->mtStart + time_offset;
197 msg->dwPChannel =
item->dwPChannel;
198 msg->dwVirtualTrackID = track_id;
200 msg->mtDuration =
item->mtDuration;
201 msg->mtOriginalStart =
item->mtStart;
202 msg->mtResetDuration =
item->mtResetDuration;
203 msg->nStartValue =
item->nStartValue;
204 msg->nEndValue =
item->nEndValue;
205 msg->nResetValue =
item->nResetValue;
208 msg->bCurveShape =
item->bCurveShape;
211 msg->wParamType =
item->wParamType;
212 msg->wMergeIndex =
item->wMergeIndex;
272 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
275 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
281 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
284 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
310 DWORD trackgroup, IDirectMusicTrack **track)
314 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
322 TRACE(
"(%p, %p, %ld, %p, %ld, %p): method not implemented\n",
This, newtrack,
join,
context,
323 trackgroup, resulttrack);
354 &
This->curve_count,
sizeof(*
This->curve_items))))
384 &
This->count,
sizeof(*
This->items));
437 TRACE(
"Loaded DirectMusicSeqTrack %p\n",
This);
440 for (
i = 0;
i <
This->count;
i++)
442 TRACE(
" - DMUS_IO_SEQ_ITEM[%u]\n",
i);
443 TRACE(
" - mtTime: %ld\n",
This->items[
i].mtTime);
444 TRACE(
" - mtDuration: %ld\n",
This->items[
i].mtDuration);
445 TRACE(
" - dwPChannel: %ld\n",
This->items[
i].dwPChannel);
446 TRACE(
" - nOffset: %d\n",
This->items[
i].nOffset);
447 TRACE(
" - bStatus: %d\n",
This->items[
i].bStatus);
448 TRACE(
" - bByte1: %#x\n",
This->items[
i].bByte1);
449 TRACE(
" - bByte2: %#x\n",
This->items[
i].bByte2);
452 TRACE(
"- %u curves:\n",
This->curve_count);
453 for (
i = 0;
i <
This->curve_count;
i++)
455 TRACE(
" - DMUS_IO_CURVE_ITEM[%u]\n",
i);
456 TRACE(
" - mtStart: %ld\n",
This->curve_items[
i].mtStart);
457 TRACE(
" - mtDuration: %ld\n",
This->curve_items[
i].mtDuration);
458 TRACE(
" - mtResetDuration: %ld\n",
This->curve_items[
i].mtResetDuration);
459 TRACE(
" - dwPChannel: %ld\n",
This->curve_items[
i].dwPChannel);
460 TRACE(
" - nOffset: %d\n",
This->curve_items[
i].nOffset);
461 TRACE(
" - nStartValue: %d\n",
This->curve_items[
i].nStartValue);
462 TRACE(
" - nEndValue: %d\n",
This->curve_items[
i].nEndValue);
463 TRACE(
" - nResetValue: %d\n",
This->curve_items[
i].nResetValue);
464 TRACE(
" - bType: %d\n",
This->curve_items[
i].bType);
465 TRACE(
" - bCurveShape: %d\n",
This->curve_items[
i].bCurveShape);
466 TRACE(
" - bCCData: %d\n",
This->curve_items[
i].bCCData);
467 TRACE(
" - bFlags: %d\n",
This->curve_items[
i].bFlags);
468 TRACE(
" - wParamType: %d\n",
This->curve_items[
i].wParamType);
469 TRACE(
" - wMergeIndex: %d\n",
This->curve_items[
i].wMergeIndex);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
int note(char *format,...)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define DMUS_E_UNSUPPORTED_STREAM
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
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 WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT stream_chunk_get_array(IStream *stream, const struct chunk_entry *chunk, void **array, unsigned int *count, DWORD elem_size)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
HRESULT stream_skip_chunk(IStream *stream, const struct chunk_entry *chunk)
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)
static HRESULT stream_reset_chunk_data(IStream *stream, const struct chunk_entry *chunk)
#define MAKE_IDTYPE(id, type)
#define IDirectMusicTrack8_Release(p)
#define IDirectMusicTrack8_QueryInterface(p, a, b)
#define DMUS_FOURCC_CURVE_LIST
#define DMUS_FOURCC_SEQ_LIST
#define DMUS_FOURCC_SEQ_TRACK
#define IDirectMusicPerformance_QueryInterface(p, a, b)
#define IDirectMusicPerformance_SendPMsg(p, a)
#define IDirectMusicGraph_Release(p)
#define IDirectMusicPerformance_FreePMsg(p, a)
#define IDirectMusicGraph_StampPMsg(p, a)
#define IDirectMusicPerformance_AllocPMsg(p, a, b)
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
#define offsetof(TYPE, MEMBER)
static __inline const char * debugstr_fourcc(unsigned int cc)
static HRESULT WINAPI sequence_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
static HRESULT WINAPI sequence_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI sequence_track_Play(IDirectMusicTrack8 *iface, void *state_data, MUSIC_TIME start_time, MUSIC_TIME end_time, MUSIC_TIME time_offset, DWORD segment_flags, IDirectMusicPerformance *performance, IDirectMusicSegmentState *segment_state, DWORD track_id)
void sequence_track_set_items(IDirectMusicTrack8 *track, DMUS_IO_SEQ_ITEM *items, unsigned int count)
static HRESULT WINAPI sequence_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 sequence_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID type)
static struct sequence_track * impl_from_IPersistStream(IPersistStream *iface)
static ULONG WINAPI sequence_track_AddRef(IDirectMusicTrack8 *iface)
static HRESULT WINAPI sequence_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static HRESULT WINAPI sequence_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static HRESULT WINAPI sequence_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
static struct sequence_track * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
static HRESULT WINAPI sequence_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static HRESULT parse_curl_list(struct sequence_track *This, IStream *stream, struct chunk_entry *chunk)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI sequence_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static ULONG WINAPI sequence_track_Release(IDirectMusicTrack8 *iface)
static HRESULT WINAPI track_IPersistStream_Load(IPersistStream *iface, IStream *stream)
static HRESULT parse_seqt_chunk(struct sequence_track *This, IStream *stream, struct chunk_entry *parent)
HRESULT create_dmseqtrack(REFIID lpcGUID, void **ppobj)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static HRESULT WINAPI sequence_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID type, REFERENCE_TIME time, void *param, void *state, DWORD flags)
static HRESULT WINAPI sequence_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static HRESULT WINAPI sequence_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID type, REFERENCE_TIME time, REFERENCE_TIME *next, void *param, void *state, DWORD flags)
static HRESULT WINAPI sequence_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
static HRESULT WINAPI sequence_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static HRESULT WINAPI sequence_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *newtrack, MUSIC_TIME join, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **resulttrack)
DMUS_PMSG_PART BYTE bStatus
DMUS_IO_CURVE_ITEM * curve_items
IDirectMusicTrack8 IDirectMusicTrack8_iface
#define CONTAINING_RECORD(address, type, field)