62 *ret_iface = &
This->dmobj.IPersistStream_iface;
68 IUnknown_AddRef((
IUnknown*)*ret_iface);
106 TRACE(
"(%p, %p): nothing to do here\n",
This, pSegment);
111 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
118 FIXME(
"(%p, %p, %p, %p, %ld, %ld): semi-stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
124 *ppStateData = pState;
134 FIXME(
"(%p, %p): semi-stub\n",
This, pStateData);
136 if (
NULL == pStateData) {
146 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
149 FIXME(
"(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n",
This, pStateData, mtStart, mtEnd, mtOffset,
dwFlags, pPerf, pSegSt, dwVirtualID);
171 tempo->
mtTime =
item->item.lTime - music_time;
174 next_time = tempo->
mtTime;
175 if (next_time > 0)
break;
177 if (
item->entry.next == &
This->items)
break;
178 next_time = next_item->
item.
lTime - music_time;
179 if (next_time > 0)
break;
182 if (out_next_time) *out_next_time = next_time;
196 FIXME(
"GUID_DisableTempo not handled yet\n");
202 FIXME(
"GUID_EnableTempo not handled yet\n");
240 TRACE(
"param supported\n");
243 TRACE(
"param unsupported\n");
265 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
268 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
274 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
277 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
302 DWORD trackgroup, IDirectMusicTrack **track)
306 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
312 IDirectMusicTrack **ppResultTrack)
315 FIXME(
"(%p, %p, %ld, %p, %ld, %p): stub\n",
This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack);
381 TRACE_(dmfile)(
"DMUS_IO_TEMPO_ITEM #%lu\n",
i);
383 TRACE_(dmfile)(
" - dblTempo = %g\n",
items[
i].dblTempo);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
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 WINE_DECLARE_DEBUG_CHANNEL(x)
#define DMUS_E_GET_UNSUPPORTED
#define DMUS_E_UNSUPPORTED_STREAM
#define DMUS_E_TYPE_DISABLED
#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 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_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_TEMPO_TRACK
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
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStream
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE void list_add_after(struct list *elem, struct list *to_add)
IDirectMusicTrack8 IDirectMusicTrack8_iface
static ULONG WINAPI tempo_track_Release(IDirectMusicTrack8 *iface)
static ULONG WINAPI tempo_track_AddRef(IDirectMusicTrack8 *iface)
static HRESULT WINAPI tempo_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static IDirectMusicTempoTrack * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI tempo_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 tempo_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME music_time, MUSIC_TIME *out_next_time, void *param)
static IDirectMusicTempoTrack * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
static HRESULT WINAPI tempo_IPersistStream_Load(IPersistStream *iface, IStream *stream)
static HRESULT WINAPI tempo_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID rguidType)
static HRESULT WINAPI tempo_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 tempo_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
static HRESULT WINAPI tempo_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI tempo_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static HRESULT WINAPI tempo_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack)
static const IPersistStreamVtbl persiststream_vtbl
HRESULT create_dmtempotrack(REFIID lpcGUID, void **ppobj)
static HRESULT WINAPI tempo_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static HRESULT WINAPI tempo_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static HRESULT WINAPI tempo_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI tempo_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID notiftype)
static HRESULT WINAPI tempo_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI tempo_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static HRESULT WINAPI tempo_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
#define CONTAINING_RECORD(address, type, field)