source: trunk/Include/directx9/dmplugin.sbp@ 435

Last change on this file since 435 was 1, checked in by (none), 17 years ago
File size: 4.5 KB
Line 
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
8Class IDirectMusicTool
9 Inherits IUnknown
10Public
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
18End Class
19
20Class IDirectMusicTool8
21 Inherits IDirectMusicTool
22Public
23 'IDirectMusicTool8
24 Abstract Function Clone(ppTool As **IDirectMusicTool) As DWord
25End Class
26
27' The following flags are sent in the IDirectMusicTrack::Play() method inside the dwFlags parameter
28Const 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().
41End Enum
42
43' The following flags are sent in the IDirectMusicTrack8::GetParamEx() and SetParamEx() methods
44' inside the dwFlags parameter.
45Const DMUS_TRACK_PARAMF_CLOCK = &H01 'set when the time is measured is in reference (clock) time
46
47Class IDirectMusicTrack
48 Inherits IUnknown
49Public
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
61End Class
62
63Class IDirectMusicTrack8
64 Inherits IDirectMusicTrack
65Public
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
72End Class
73
74
75#endif '_INC_DMPLUGIN
Note: See TracBrowser for help on using the repository browser.