[1] | 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
|
---|