1 | ' dmplugin.sbp - This module contains the API for plugins for the DirectMusic performance layer
|
---|
2 |
|
---|
3 |
|
---|
4 | #ifndef _INC_DMPLUGIN
|
---|
5 | #define _INC_DMPLUGIN
|
---|
6 |
|
---|
7 |
|
---|
8 | Class IDirectMusicTool
|
---|
9 | Inherits IUnknown
|
---|
10 | Public
|
---|
11 | 'IDirectMusicTool
|
---|
12 | Abstract Function Init(pGraph As *IDirectMusicGraph) As DWord
|
---|
13 | Abstract Function GetMsgDeliveryType(pdwDeliveryType As DWordPtr) As DWord
|
---|
14 | Abstract Function GetMediaTypeArraySize(pdwNumElements As DWordPtr) As DWord
|
---|
15 | Abstract Function GetMediaTypes(padwMediaTypes As **DWord, dwNumElements As DWord) As DWord
|
---|
16 | Abstract Function ProcessPMsg(pPerf As *IDirectMusicPerformance, pPMSG As *DMUS_PMSG) As DWord
|
---|
17 | Abstract Function Flush(pPerf As *IDirectMusicPerformance, pPMSG As *DMUS_PMSG, rtTime As REFERENCE_TIME) As DWord
|
---|
18 | End Class
|
---|
19 |
|
---|
20 | Class IDirectMusicTool8
|
---|
21 | Inherits IDirectMusicTool
|
---|
22 | Public
|
---|
23 | 'IDirectMusicTool8
|
---|
24 | Abstract Function Clone(ppTool As **IDirectMusicTool) As DWord
|
---|
25 | End Class
|
---|
26 |
|
---|
27 | ' The following flags are sent in the IDirectMusicTrack::Play() method inside the dwFlags parameter
|
---|
28 | Const Enum DMUS_TRACKF_FLAGS
|
---|
29 | DMUS_TRACKF_SEEK = 1 'set on a seek
|
---|
30 | DMUS_TRACKF_LOOP = 2 'set on a loop (repeat)
|
---|
31 | DMUS_TRACKF_START = 4 'set on first call to Play
|
---|
32 | DMUS_TRACKF_FLUSH = 8 'set when this call is in response to a flush on the perfomance
|
---|
33 | DMUS_TRACKF_DIRTY = &H10 'set when the track should consider any cached values from a previous call to GetParam to be invalidated
|
---|
34 | 'The following flags are DX8 only.
|
---|
35 | DMUS_TRACKF_NOTIFY_OFF = &H20 'tells track not to send notifications.
|
---|
36 | DMUS_TRACKF_PLAY_OFF = &H40 'tells track not to play anything (but can still send notifications.)
|
---|
37 | DMUS_TRACKF_LOOPEND = &H80 'set when the end of range is also a loop end.
|
---|
38 | DMUS_TRACKF_STOP = &H100 'set when the end of range is also end of playing this segment.
|
---|
39 | DMUS_TRACKF_RECOMPOSE = &H200 'set to indicate the track should compose.
|
---|
40 | DMUS_TRACKF_CLOCK = &H400 'set when time parameters are in reference (clock) time. Only valid for PlayEx().
|
---|
41 | End Enum
|
---|
42 |
|
---|
43 | ' The following flags are sent in the IDirectMusicTrack8::GetParamEx() and SetParamEx() methods
|
---|
44 | ' inside the dwFlags parameter.
|
---|
45 | Const DMUS_TRACK_PARAMF_CLOCK = &H01 'set when the time is measured is in reference (clock) time
|
---|
46 |
|
---|
47 | Class IDirectMusicTrack
|
---|
48 | Inherits IUnknown
|
---|
49 | Public
|
---|
50 | 'IDirectMusicTrack
|
---|
51 | Abstract Function Init(pSegment As *IDirectMusicSegment) As DWord
|
---|
52 | Abstract Function InitPlay(pSegmentState As *IDirectMusicSegmentState, pPerformance As *IDirectMusicPerformance, ppStateData As DWordPtr, dwVirtualTrackID As DWord, dwFlags As DWord) As DWord
|
---|
53 | Abstract Function EndPlay(pStateData As VoidPtr) As DWord
|
---|
54 | Abstract Function Play(pStateData As VoidPtr, mtStart As MUSIC_TIME, mtEnd As MUSIC_TIME, mtOffset As MUSIC_TIME, dwFlags As DWord, pPerf As *IDirectMusicPerformance, pSegSt As *IDirectMusicSegmentState, dwVirtualID As DWord) As DWord
|
---|
55 | Abstract Function GetParam(ByRef rguidType As GUID, mtTime As MUSIC_TIME, pmtNext As *MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
56 | Abstract Function SetParam(ByRef rguidType As GUID, mtTime As MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
57 | Abstract Function IsParamSupported(ByRef rguidType As GUID) As DWord
|
---|
58 | Abstract Function AddNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
59 | Abstract Function RemoveNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
60 | Abstract Function Clone(mtStart As MUSIC_TIME, mtEnd As MUSIC_TIME, ppTrack As **IDirectMusicTrack) As DWord
|
---|
61 | End Class
|
---|
62 |
|
---|
63 | Class IDirectMusicTrack8
|
---|
64 | Inherits IDirectMusicTrack
|
---|
65 | Public
|
---|
66 | 'IDirectMusicTrack8
|
---|
67 | Abstract Function PlayEx(pStateData As VoidPtr, rtStart As REFERENCE_TIME, rtEnd As REFERENCE_TIME, rtOffset As REFERENCE_TIME, dwFlags As DWord, pPerf As *IDirectMusicPerformance, pSegSt As *IDirectMusicSegmentState, dwVirtualID As DWord) As DWord
|
---|
68 | Abstract Function GetParamEx(ByRef rguidType As GUID, rtTime As REFERENCE_TIME, prtNext As *REFERENCE_TIME, pParam As VoidPtr, pStateData As VoidPtr, dwFlags As DWord) As DWord
|
---|
69 | Abstract Function SetParamEx(ByRef rguidType As GUID, rtTime As REFERENCE_TIME, pParam As VoidPtr, pStateData As VoidPtr, dwFlags As DWord) As DWord
|
---|
70 | Abstract Function Compose(pContext As *IUnknown, dwTrackGroup As DWord, ppResultTrack As **IDirectMusicTrack) As DWord
|
---|
71 | Abstract Function Join(pNewTrack As *IDirectMusicTrack, mtJoin As MUSIC_TIME, pContext As *IUnknown, dwTrackGroup As DWord, ppResultTrack As **IDirectMusicTrack) As DWord
|
---|
72 | End Class
|
---|
73 |
|
---|
74 |
|
---|
75 | #endif '_INC_DMPLUGIN
|
---|