ReactOS 0.4.17-dev-934-g091855f
markertrack.c File Reference
#include "dmime_private.h"
Include dependency graph for markertrack.c:

Go to the source code of this file.

Classes

struct  IDirectMusicMarkerTrack
 

Typedefs

typedef struct IDirectMusicMarkerTrack IDirectMusicMarkerTrack
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (dmime)
 
static IDirectMusicMarkerTrack * impl_from_IDirectMusicTrack (IDirectMusicTrack *iface)
 
static HRESULT WINAPI IDirectMusicTrackImpl_QueryInterface (IDirectMusicTrack *iface, REFIID riid, void **ret_iface)
 
static ULONG WINAPI IDirectMusicTrackImpl_AddRef (IDirectMusicTrack *iface)
 
static ULONG WINAPI IDirectMusicTrackImpl_Release (IDirectMusicTrack *iface)
 
static HRESULT WINAPI IDirectMusicTrackImpl_Init (IDirectMusicTrack *iface, IDirectMusicSegment *pSegment)
 
static HRESULT WINAPI IDirectMusicTrackImpl_InitPlay (IDirectMusicTrack *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
 
static HRESULT WINAPI IDirectMusicTrackImpl_EndPlay (IDirectMusicTrack *iface, void *pStateData)
 
static HRESULT WINAPI IDirectMusicTrackImpl_Play (IDirectMusicTrack *iface, void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
 
static HRESULT WINAPI IDirectMusicTrackImpl_GetParam (IDirectMusicTrack *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
 
static HRESULT WINAPI IDirectMusicTrackImpl_SetParam (IDirectMusicTrack *iface, REFGUID type, MUSIC_TIME time, void *param)
 
static HRESULT WINAPI IDirectMusicTrackImpl_IsParamSupported (IDirectMusicTrack *iface, REFGUID rguidType)
 
static HRESULT WINAPI IDirectMusicTrackImpl_AddNotificationType (IDirectMusicTrack *iface, REFGUID rguidNotificationType)
 
static HRESULT WINAPI IDirectMusicTrackImpl_RemoveNotificationType (IDirectMusicTrack *iface, REFGUID rguidNotificationType)
 
static HRESULT WINAPI IDirectMusicTrackImpl_Clone (IDirectMusicTrack *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
 
static HRESULT WINAPI marker_IPersistStream_Load (IPersistStream *iface, IStream *stream)
 
HRESULT create_dmmarkertrack (REFIID lpcGUID, void **ppobj)
 

Variables

static const IDirectMusicTrackVtbl dmtrack_vtbl
 
static const IPersistStreamVtbl persiststream_vtbl
 

Typedef Documentation

◆ IDirectMusicMarkerTrack

Function Documentation

◆ create_dmmarkertrack()

HRESULT create_dmmarkertrack ( REFIID  lpcGUID,
void **  ppobj 
)

Definition at line 222 of file markertrack.c.

223{
225 HRESULT hr;
226
227 *ppobj = NULL;
228 if (!(track = calloc(1, sizeof(*track)))) return E_OUTOFMEMORY;
229 track->IDirectMusicTrack_iface.lpVtbl = &dmtrack_vtbl;
230 track->ref = 1;
231 dmobject_init(&track->dmobj, &CLSID_DirectMusicMarkerTrack,
233 track->dmobj.IPersistStream_iface.lpVtbl = &persiststream_vtbl;
234
237
238 return hr;
239}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
Definition: dmobject.c:749
#define IDirectMusicTrack_Release(p)
Definition: dmplugin.h:226
#define IDirectMusicTrack_QueryInterface(p, a, b)
Definition: dmplugin.h:224
static const IDirectMusicTrackVtbl dmtrack_vtbl
Definition: markertrack.c:188
static const IPersistStreamVtbl persiststream_vtbl
Definition: markertrack.c:210
#define calloc
Definition: rosglue.h:14
IDirectMusicTrack IDirectMusicTrack_iface
Definition: markertrack.c:28
struct dmobject dmobj
Definition: markertrack.c:29

◆ IDirectMusicTrackImpl_AddNotificationType()

static HRESULT WINAPI IDirectMusicTrackImpl_AddNotificationType ( IDirectMusicTrack *  iface,
REFGUID  rguidNotificationType 
)
static

Definition at line 164 of file markertrack.c.

166{
168 FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
169 return S_OK;
170}
#define FIXME(fmt,...)
Definition: precomp.h:53
const char * debugstr_dmguid(const GUID *id)
Definition: dmobject.c:36
#define S_OK
Definition: intsafe.h:52
static IDirectMusicMarkerTrack * impl_from_IDirectMusicTrack(IDirectMusicTrack *iface)
Definition: markertrack.c:34

◆ IDirectMusicTrackImpl_AddRef()

static ULONG WINAPI IDirectMusicTrackImpl_AddRef ( IDirectMusicTrack *  iface)
static

Definition at line 61 of file markertrack.c.

62{
65
66 TRACE("(%p) ref=%ld\n", This, ref);
67
68 return ref;
69}
#define InterlockedIncrement
Definition: armddk.h:53
long LONG
Definition: pedump.c:60
#define TRACE(s)
Definition: solgame.cpp:4
Definition: send.c:48

◆ IDirectMusicTrackImpl_Clone()

static HRESULT WINAPI IDirectMusicTrackImpl_Clone ( IDirectMusicTrack *  iface,
MUSIC_TIME  mtStart,
MUSIC_TIME  mtEnd,
IDirectMusicTrack **  ppTrack 
)
static

Definition at line 180 of file markertrack.c.

182{
184 FIXME("(%p, %ld, %ld, %p): stub\n", This, mtStart, mtEnd, ppTrack);
185 return S_OK;
186}

◆ IDirectMusicTrackImpl_EndPlay()

static HRESULT WINAPI IDirectMusicTrackImpl_EndPlay ( IDirectMusicTrack *  iface,
void *  pStateData 
)
static

Definition at line 102 of file markertrack.c.

103{
105 FIXME("(%p, %p): stub\n", This, pStateData);
106 return S_OK;
107}

◆ IDirectMusicTrackImpl_GetParam()

static HRESULT WINAPI IDirectMusicTrackImpl_GetParam ( IDirectMusicTrack *  iface,
REFGUID  type,
MUSIC_TIME  time,
MUSIC_TIME *  next,
void *  param 
)
static

Definition at line 118 of file markertrack.c.

120{
122
123 TRACE("(%p, %s, %ld, %p, %p)\n", This, debugstr_dmguid(type), time, next, param);
124
125 if (!param)
126 return E_POINTER;
127
128 if (IsEqualGUID(type, &GUID_Play_Marker)) {
129 FIXME("GUID_Play_Marker not handled yet\n");
130 return S_FALSE;
131 }
132 if (IsEqualGUID(type, &GUID_Valid_Start_Time)) {
133 FIXME("GUID_Valid_Start_Time not handled yet\n");
134 return DMUS_E_NOT_FOUND;
135 }
136
138}
#define DMUS_E_GET_UNSUPPORTED
Definition: dmerror.h:72
#define DMUS_E_NOT_FOUND
Definition: dmerror.h:109
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLfloat param
Definition: glext.h:5796
__u16 time
Definition: mkdosfs.c:8
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
static unsigned __int64 next
Definition: rand_nt.c:6
#define S_FALSE
Definition: winerror.h:3451
#define E_POINTER
Definition: winerror.h:3480

◆ IDirectMusicTrackImpl_Init()

static HRESULT WINAPI IDirectMusicTrackImpl_Init ( IDirectMusicTrack *  iface,
IDirectMusicSegment *  pSegment 
)
static

Definition at line 85 of file markertrack.c.

87{
89 FIXME("(%p, %p): stub\n", This, pSegment);
90 return S_OK;
91}

◆ IDirectMusicTrackImpl_InitPlay()

static HRESULT WINAPI IDirectMusicTrackImpl_InitPlay ( IDirectMusicTrack *  iface,
IDirectMusicSegmentState *  pSegmentState,
IDirectMusicPerformance *  pPerformance,
void **  ppStateData,
DWORD  dwVirtualTrack8ID,
DWORD  dwFlags 
)
static

Definition at line 93 of file markertrack.c.

96{
98 FIXME("(%p, %p, %p, %p, %ld, %ld): stub\n", This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID, dwFlags);
99 return S_OK;
100}
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141

◆ IDirectMusicTrackImpl_IsParamSupported()

static HRESULT WINAPI IDirectMusicTrackImpl_IsParamSupported ( IDirectMusicTrack *  iface,
REFGUID  rguidType 
)
static

Definition at line 149 of file markertrack.c.

151{
153
154 TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
155 if (IsEqualGUID (rguidType, &GUID_Play_Marker)
156 || IsEqualGUID (rguidType, &GUID_Valid_Start_Time)) {
157 TRACE("param supported\n");
158 return S_OK;
159 }
160 TRACE("param unsupported\n");
162}
#define DMUS_E_TYPE_UNSUPPORTED
Definition: dmerror.h:112

◆ IDirectMusicTrackImpl_Play()

static HRESULT WINAPI IDirectMusicTrackImpl_Play ( IDirectMusicTrack *  iface,
void *  pStateData,
MUSIC_TIME  mtStart,
MUSIC_TIME  mtEnd,
MUSIC_TIME  mtOffset,
DWORD  dwFlags,
IDirectMusicPerformance *  pPerf,
IDirectMusicSegmentState *  pSegSt,
DWORD  dwVirtualID 
)
static

Definition at line 109 of file markertrack.c.

112{
114 FIXME("(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n", This, pStateData, mtStart, mtEnd, mtOffset, dwFlags, pPerf, pSegSt, dwVirtualID);
115 return S_OK;
116}

◆ IDirectMusicTrackImpl_QueryInterface()

static HRESULT WINAPI IDirectMusicTrackImpl_QueryInterface ( IDirectMusicTrack *  iface,
REFIID  riid,
void **  ret_iface 
)
static

Definition at line 39 of file markertrack.c.

41{
43
44 TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ret_iface);
45
46 *ret_iface = NULL;
47
48 if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDirectMusicTrack))
49 *ret_iface = iface;
51 *ret_iface = &This->dmobj.IPersistStream_iface;
52 else {
53 WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ret_iface);
54 return E_NOINTERFACE;
55 }
56
57 IUnknown_AddRef((IUnknown*)*ret_iface);
58 return S_OK;
59}
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
const GUID IID_IPersistStream
Definition: proxy.cpp:13
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ IDirectMusicTrackImpl_Release()

static ULONG WINAPI IDirectMusicTrackImpl_Release ( IDirectMusicTrack *  iface)
static

Definition at line 71 of file markertrack.c.

72{
75
76 TRACE("(%p) ref=%ld\n", This, ref);
77
78 if (!ref) {
79 free(This);
80 }
81
82 return ref;
83}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

◆ IDirectMusicTrackImpl_RemoveNotificationType()

static HRESULT WINAPI IDirectMusicTrackImpl_RemoveNotificationType ( IDirectMusicTrack *  iface,
REFGUID  rguidNotificationType 
)
static

Definition at line 172 of file markertrack.c.

174{
176 FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
177 return S_OK;
178}

◆ IDirectMusicTrackImpl_SetParam()

static HRESULT WINAPI IDirectMusicTrackImpl_SetParam ( IDirectMusicTrack *  iface,
REFGUID  type,
MUSIC_TIME  time,
void *  param 
)
static

Definition at line 140 of file markertrack.c.

142{
144
145 TRACE("(%p, %s, %ld, %p): not supported\n", This, debugstr_dmguid(type), time, param);
147}
#define DMUS_E_SET_UNSUPPORTED
Definition: dmerror.h:71

◆ impl_from_IDirectMusicTrack()

◆ marker_IPersistStream_Load()

static HRESULT WINAPI marker_IPersistStream_Load ( IPersistStream *  iface,
IStream *  stream 
)
static

Definition at line 204 of file markertrack.c.

205{
206 FIXME(": Loading not implemented yet\n");
207 return S_OK;
208}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( dmime  )

Variable Documentation

◆ dmtrack_vtbl

const IDirectMusicTrackVtbl dmtrack_vtbl
static
Initial value:
= {
}
static HRESULT WINAPI IDirectMusicTrackImpl_Play(IDirectMusicTrack *iface, void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
Definition: markertrack.c:109
static HRESULT WINAPI IDirectMusicTrackImpl_EndPlay(IDirectMusicTrack *iface, void *pStateData)
Definition: markertrack.c:102
static HRESULT WINAPI IDirectMusicTrackImpl_SetParam(IDirectMusicTrack *iface, REFGUID type, MUSIC_TIME time, void *param)
Definition: markertrack.c:140
static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface)
Definition: markertrack.c:71
static ULONG WINAPI IDirectMusicTrackImpl_AddRef(IDirectMusicTrack *iface)
Definition: markertrack.c:61
static HRESULT WINAPI IDirectMusicTrackImpl_QueryInterface(IDirectMusicTrack *iface, REFIID riid, void **ret_iface)
Definition: markertrack.c:39
static HRESULT WINAPI IDirectMusicTrackImpl_Init(IDirectMusicTrack *iface, IDirectMusicSegment *pSegment)
Definition: markertrack.c:85
static HRESULT WINAPI IDirectMusicTrackImpl_InitPlay(IDirectMusicTrack *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
Definition: markertrack.c:93
static HRESULT WINAPI IDirectMusicTrackImpl_IsParamSupported(IDirectMusicTrack *iface, REFGUID rguidType)
Definition: markertrack.c:149
static HRESULT WINAPI IDirectMusicTrackImpl_RemoveNotificationType(IDirectMusicTrack *iface, REFGUID rguidNotificationType)
Definition: markertrack.c:172
static HRESULT WINAPI IDirectMusicTrackImpl_AddNotificationType(IDirectMusicTrack *iface, REFGUID rguidNotificationType)
Definition: markertrack.c:164
static HRESULT WINAPI IDirectMusicTrackImpl_Clone(IDirectMusicTrack *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
Definition: markertrack.c:180
static HRESULT WINAPI IDirectMusicTrackImpl_GetParam(IDirectMusicTrack *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
Definition: markertrack.c:118

Definition at line 188 of file markertrack.c.

Referenced by create_dmmarkertrack().

◆ persiststream_vtbl

const IPersistStreamVtbl persiststream_vtbl
static
Initial value:
= {
}
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
Definition: dmobject.c:702
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
Definition: dmobject.c:742
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
Definition: dmobject.c:708
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
Definition: dmobject.c:696
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
Definition: dmobject.c:689
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
Definition: dmobject.c:729
HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream, BOOL clear_dirty)
Definition: dmobject.c:735
static HRESULT WINAPI marker_IPersistStream_Load(IPersistStream *iface, IStream *stream)
Definition: markertrack.c:204

Definition at line 210 of file markertrack.c.

Referenced by create_dmmarkertrack().