1 | ' dmusic.sbp - This module contains the API for the DirectMusic performance layer
|
---|
2 |
|
---|
3 |
|
---|
4 | #ifndef _INC_DMUSIC
|
---|
5 | #define _INC_DMUSIC
|
---|
6 |
|
---|
7 |
|
---|
8 | #include <directx9\dsound.sbp>
|
---|
9 | #include <directx9\dmdls.sbp>
|
---|
10 | #include <directx9\dmusicc.sbp>
|
---|
11 | #include <directx9\dmplugin.sbp>
|
---|
12 |
|
---|
13 |
|
---|
14 | TypeDef REFERENCE_TIME = Int64
|
---|
15 | TypeDef MUSIC_TIME = Long
|
---|
16 |
|
---|
17 |
|
---|
18 | ' For DMUS_PMSG dwFlags
|
---|
19 | Const Enum DMUS_PMSGF_FLAGS
|
---|
20 | DMUS_PMSGF_REFTIME = 1
|
---|
21 | DMUS_PMSGF_MUSICTIME = 2
|
---|
22 | DMUS_PMSGF_TOOL_IMMEDIATE = 4
|
---|
23 | DMUS_PMSGF_TOOL_QUEUE = 8
|
---|
24 | DMUS_PMSGF_TOOL_ATTIME = &H10
|
---|
25 | DMUS_PMSGF_TOOL_FLUSH = &H20
|
---|
26 | DMUS_PMSGF_LOCKTOREFTIME = &H40
|
---|
27 | DMUS_PMSGF_DX8 = &H80
|
---|
28 | End Enum
|
---|
29 |
|
---|
30 | Const Enum DMUS_PMSGT_TYPES
|
---|
31 | DMUS_PMSGT_MIDI = 0
|
---|
32 | DMUS_PMSGT_NOTE = 1
|
---|
33 | DMUS_PMSGT_SYSEX = 2
|
---|
34 | DMUS_PMSGT_NOTIFICATION = 3
|
---|
35 | DMUS_PMSGT_TEMPO = 4
|
---|
36 | DMUS_PMSGT_CURVE = 5
|
---|
37 | DMUS_PMSGT_TIMESIG = 6
|
---|
38 | DMUS_PMSGT_PATCH = 7
|
---|
39 | DMUS_PMSGT_TRANSPOSE = 8
|
---|
40 | DMUS_PMSGT_CHANNEL_PRIORITY = 9
|
---|
41 | DMUS_PMSGT_STOP = 10
|
---|
42 | DMUS_PMSGT_DIRTY = 11
|
---|
43 | DMUS_PMSGT_WAVE = 12
|
---|
44 | DMUS_PMSGT_LYRIC = 13
|
---|
45 | DMUS_PMSGT_SCRIPTLYRIC = 14
|
---|
46 | DMUS_PMSGT_USER = 255
|
---|
47 | End Enum
|
---|
48 |
|
---|
49 | Const DMUS_PCHANNEL_BROADCAST_PERFORMANCE = &HFFFFFFFF 'PMsg is sent on all PChannels of the performance.
|
---|
50 | Const DMUS_PCHANNEL_BROADCAST_AUDIOPATH = &HFFFFFFFE 'PMsg is sent on all PChannels of the audio path.
|
---|
51 | Const DMUS_PCHANNEL_BROADCAST_SEGMENT = &HFFFFFFFD 'PMsg is sent on all PChannels of the segment.
|
---|
52 | Const DMUS_PCHANNEL_BROADCAST_GROUPS = &HFFFFFFFC 'A duplicate PMsg is for each Channels Groups in the performance.
|
---|
53 |
|
---|
54 | Const DMUS_PATH_SEGMENT = &H1000 'Get the segment itself (from a segment state.)
|
---|
55 | Const DMUS_PATH_SEGMENT_TRACK = &H1100 'Look in Track List of Segment.
|
---|
56 | Const DMUS_PATH_SEGMENT_GRAPH = &H1200 'Get the segment's tool graph.
|
---|
57 | Const DMUS_PATH_SEGMENT_TOOL = &H1300 'Look in Tool Graph of Segment.
|
---|
58 | Const DMUS_PATH_AUDIOPATH = &H2000 'Get the audiopath itself (from a segment state.)
|
---|
59 | Const DMUS_PATH_AUDIOPATH_GRAPH = &H2200 'Get the audiopath's tool graph.
|
---|
60 | Const DMUS_PATH_AUDIOPATH_TOOL = &H2300 'Look in Tool Graph of Audio Path.
|
---|
61 | Const DMUS_PATH_PERFORMANCE = &H3000 'Access the performance.
|
---|
62 | Const DMUS_PATH_PERFORMANCE_GRAPH = &H3200 'Get the performance's tool graph.
|
---|
63 | Const DMUS_PATH_PERFORMANCE_TOOL = &H3300 'Look in Tool Graph of Performance.
|
---|
64 | Const DMUS_PATH_PORT = &H4000 'Access the synth.
|
---|
65 | Const DMUS_PATH_BUFFER = &H6000 'Look in DirectSoundBuffer.
|
---|
66 | Const DMUS_PATH_BUFFER_DMO = &H6100 'Access a DMO in the buffer.
|
---|
67 | Const DMUS_PATH_MIXIN_BUFFER = &H7000 'Look in a global mixin buffer.
|
---|
68 | Const DMUS_PATH_MIXIN_BUFFER_DMO = &H7100 'Access a DMO in a global mixin buffer.
|
---|
69 | Const DMUS_PATH_PRIMARY_BUFFER = &H8000 'Access the primary buffer.
|
---|
70 |
|
---|
71 | Const DMUS_PCHANNEL_ALL = &HFFFFFFFB
|
---|
72 |
|
---|
73 | Type DMUS_PMSG
|
---|
74 | dwSize As DWord
|
---|
75 | rtTime As REFERENCE_TIME
|
---|
76 | mtTime As MUSIC_TIME
|
---|
77 | dwFlags As DWord
|
---|
78 | dwPChannel As DWord
|
---|
79 | dwVirtualTrackID As DWord
|
---|
80 | pTool As *IDirectMusicTool
|
---|
81 | pGraph As *IDirectMusicGraph
|
---|
82 | dwType As DWord
|
---|
83 | dwVoiceID As DWord
|
---|
84 | dwGroupID As DWord
|
---|
85 | punkUser As *IUnknown
|
---|
86 | End Type
|
---|
87 |
|
---|
88 | Const DMUS_APATH_SHARED_STEREOPLUSREVERB = 1
|
---|
89 | Const DMUS_APATH_DYNAMIC_3D = 6
|
---|
90 | Const DMUS_APATH_DYNAMIC_MONO = 7
|
---|
91 | Const DMUS_APATH_DYNAMIC_STEREO = 8
|
---|
92 |
|
---|
93 | ' For DMUS_AUDIOPARAMS dwFeatures
|
---|
94 | Const DMUS_AUDIOF_3D = &H1
|
---|
95 | Const DMUS_AUDIOF_ENVIRON = &H2
|
---|
96 | Const DMUS_AUDIOF_EAX = &H4
|
---|
97 | Const DMUS_AUDIOF_DMOS = &H8
|
---|
98 | Const DMUS_AUDIOF_STREAMING = &H10
|
---|
99 | Const DMUS_AUDIOF_BUFFERS = &H20
|
---|
100 | Const DMUS_AUDIOF_ALL = &H3F
|
---|
101 |
|
---|
102 | ' For DMUS_AUDIOPARAMS dwValidData
|
---|
103 | Const DMUS_AUDIOPARAMS_FEATURES = &H00000001
|
---|
104 | Const DMUS_AUDIOPARAMS_VOICES = &H00000002
|
---|
105 | Const DMUS_AUDIOPARAMS_SAMPLERATE = &H00000004
|
---|
106 | Const DMUS_AUDIOPARAMS_DEFAULTSYNTH = &H00000008
|
---|
107 |
|
---|
108 | Type DMUS_AUDIOPARAMS
|
---|
109 | dwSize As DWord
|
---|
110 | fInitNow As Long
|
---|
111 | dwValidData As DWord
|
---|
112 | dwFeatures As DWord
|
---|
113 | dwVoices As DWord
|
---|
114 | dwSampleRate As DWord
|
---|
115 | clsidDefaultSynth As GUID
|
---|
116 | End Type
|
---|
117 |
|
---|
118 | ' DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment
|
---|
119 | Const Enum DMUS_SEGF_FLAGS
|
---|
120 | DMUS_SEGF_REFTIME = 1<<6 '&H40 Time parameter is in reference time
|
---|
121 | DMUS_SEGF_SECONDARY = 1<<7 '&H80 Secondary segment
|
---|
122 | DMUS_SEGF_QUEUE = 1<<8 '&H100 Queue at the end of the primary segment queue (primary only)
|
---|
123 | DMUS_SEGF_CONTROL = 1<<9 '&H200 Play as a control track (secondary segments only)
|
---|
124 | DMUS_SEGF_AFTERPREPARETIME = 1<<10 '&H400 Play after the prepare time (See IDirectMusicPerformance::GetPrepareTime)
|
---|
125 | DMUS_SEGF_GRID = 1<<11 '&H800 Play on grid boundary
|
---|
126 | DMUS_SEGF_BEAT = 1<<12 '&H1000 Play on beat boundary
|
---|
127 | DMUS_SEGF_MEASURE = 1<<13 '&H2000 Play on measure boundary
|
---|
128 | DMUS_SEGF_DEFAULT = 1<<14 '&H4000 Use segment's default boundary
|
---|
129 | DMUS_SEGF_NOINVALIDATE = 1<<15 '&H8000 Play without invalidating the currently playing segment(s)
|
---|
130 | DMUS_SEGF_ALIGN = 1<<16 '&H10000 Align segment with requested boundary, but switch at first valid point
|
---|
131 | DMUS_SEGF_VALID_START_BEAT = 1<<17 '&H20000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any beat.
|
---|
132 | DMUS_SEGF_VALID_START_GRID = 1<<18 '&H40000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any grid.
|
---|
133 | DMUS_SEGF_VALID_START_TICK = 1<<19 '&H80000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur any time.
|
---|
134 | DMUS_SEGF_AUTOTRANSITION = 1<<20 '&H100000 Compose and play a transition segment, using the transition template.
|
---|
135 | DMUS_SEGF_AFTERQUEUETIME = 1<<21 '&H200000 Make sure to play after the queue time. This is default for primary segments
|
---|
136 | DMUS_SEGF_AFTERLATENCYTIME = 1<<22 '&H400000 Make sure to play after the latency time. This is true for all segments, so this is a nop
|
---|
137 | DMUS_SEGF_SEGMENTEND = 1<<23 '&H800000 Play at the next end of segment.
|
---|
138 | DMUS_SEGF_MARKER = 1<<24 '&H1000000 Play at next marker in the primary segment. If there are no markers, default to any other resolution requests.
|
---|
139 | DMUS_SEGF_TIMESIG_ALWAYS = 1<<25 '&H2000000 Even if there is no primary segment, align start time with current time signature.
|
---|
140 | DMUS_SEGF_USE_AUDIOPATH = 1<<26 '&H4000000 Uses the audio path that is embedded in the segment.
|
---|
141 | DMUS_SEGF_VALID_START_MEASURE = 1<<27 '&H8000000 In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any bar.
|
---|
142 | DMUS_SEGF_INVALIDATE_PRI = 1<<28 '&H10000000 invalidate only the current primary seg state
|
---|
143 | End Enum
|
---|
144 |
|
---|
145 | Const DMUS_SEG_REPEAT_INFINITE = &HFFFFFFFF 'For IDirectMusicSegment::SetRepeat
|
---|
146 | Const DMUS_SEG_ALLTRACKS = &H80000000 'For IDirectMusicSegment::SetParam() and SetTrackConfig() - selects all tracks instead on nth index.
|
---|
147 | Const DMUS_SEG_ANYTRACK = &H80000000 'For IDirectMusicSegment::GetParam() - checks each track until it finds one that returns data (not DMUS_E_NOT_FOUND.)
|
---|
148 |
|
---|
149 | Const Enum DMUS_TIME_RESOLVE_FLAGS
|
---|
150 | DMUS_TIME_RESOLVE_AFTERPREPARETIME = DMUS_SEGF_AFTERPREPARETIME
|
---|
151 | DMUS_TIME_RESOLVE_AFTERQUEUETIME = DMUS_SEGF_AFTERQUEUETIME
|
---|
152 | DMUS_TIME_RESOLVE_AFTERLATENCYTIME = DMUS_SEGF_AFTERLATENCYTIME
|
---|
153 | DMUS_TIME_RESOLVE_GRID = DMUS_SEGF_GRID
|
---|
154 | DMUS_TIME_RESOLVE_BEAT = DMUS_SEGF_BEAT
|
---|
155 | DMUS_TIME_RESOLVE_MEASURE = DMUS_SEGF_MEASURE
|
---|
156 | DMUS_TIME_RESOLVE_MARKER = DMUS_SEGF_MARKER
|
---|
157 | DMUS_TIME_RESOLVE_SEGMENTEND = DMUS_SEGF_SEGMENTEND
|
---|
158 | End Enum
|
---|
159 |
|
---|
160 | ' The following flags are sent inside the DMUS_CHORD_KEY.dwFlags parameter
|
---|
161 | Const Enum DMUS_CHORDKEYF_FLAGS
|
---|
162 | DMUS_CHORDKEYF_SILENT = 1 'is the chord silent?
|
---|
163 | End Enum
|
---|
164 |
|
---|
165 | Const DMUS_MAXSUBCHORD = 8
|
---|
166 | Type DMUS_SUBCHORD
|
---|
167 | dwChordPattern As DWord
|
---|
168 | dwScalePattern As DWord
|
---|
169 | dwInversionPoints As DWord
|
---|
170 | dwLevels As DWord
|
---|
171 | bChordRoot As Byte
|
---|
172 | bScaleRoot As Byte
|
---|
173 | End Type
|
---|
174 | Type DMUS_CHORD_KEY
|
---|
175 | wszName[16-1] As WCHAR
|
---|
176 | wMeasure As Word
|
---|
177 | bBeat As Byte
|
---|
178 | bSubChordCount As Byte
|
---|
179 | SubChordList[DMUS_MAXSUBCHORD-1] As DMUS_SUBCHORD
|
---|
180 | dwScale As DWord
|
---|
181 | bKey As Byte
|
---|
182 | bFlags As Byte
|
---|
183 | End Type
|
---|
184 |
|
---|
185 | Type DMUS_NOTIFICATION_PMSG
|
---|
186 | dwSize As DWord
|
---|
187 | rtTime As REFERENCE_TIME
|
---|
188 | mtTime As MUSIC_TIME
|
---|
189 | dwFlags As DWord
|
---|
190 | dwPChannel As DWord
|
---|
191 | dwVirtualTrackID As DWord
|
---|
192 | pTool As *IDirectMusicTool
|
---|
193 | pGraph As *IDirectMusicGraph
|
---|
194 | dwType As DWord
|
---|
195 | dwVoiceID As DWord
|
---|
196 | dwGroupID As DWord
|
---|
197 | punkUser As *IUnknown
|
---|
198 |
|
---|
199 | guidNotificationType As GUID
|
---|
200 | dwNotificationOption As DWord
|
---|
201 | dwField1 As DWord
|
---|
202 | dwField2 As DWord
|
---|
203 | End Type
|
---|
204 |
|
---|
205 | Const DMUS_MAX_NAME = 64
|
---|
206 | Const DMUS_MAX_CATEGORY = 64
|
---|
207 | Const DMUS_MAX_FILENAME = MAX_PATH
|
---|
208 |
|
---|
209 | Type DMUS_VERSION
|
---|
210 | dwVersionMS As DWord
|
---|
211 | dwVersionLS As DWord
|
---|
212 | End Type
|
---|
213 |
|
---|
214 | Type DMUS_TIMESIGNATURE
|
---|
215 | mtTime As MUSIC_TIME
|
---|
216 | bBeatsPerMeasure As Byte
|
---|
217 | bBeat As Byte
|
---|
218 | wGridsPerBeat As Word
|
---|
219 | End Type
|
---|
220 |
|
---|
221 | ' For DMUS_OBJECTDESC dwValidData
|
---|
222 | Const DMUS_OBJ_OBJECT = 1 << 0 'Object GUID is valid.
|
---|
223 | Const DMUS_OBJ_CLASS = 1 << 1 'Class GUID is valid.
|
---|
224 | Const DMUS_OBJ_NAME = 1 << 2 'Name is valid.
|
---|
225 | Const DMUS_OBJ_CATEGORY = 1 << 3 'Category is valid.
|
---|
226 | Const DMUS_OBJ_FILENAME = 1 << 4 'File path is valid.
|
---|
227 | Const DMUS_OBJ_FULLPATH = 1 << 5 'Path is full path.
|
---|
228 | Const DMUS_OBJ_URL = 1 << 6 'Path is URL.
|
---|
229 | Const DMUS_OBJ_VERSION = 1 << 7 'Version is valid.
|
---|
230 | Const DMUS_OBJ_DATE = 1 << 8 'Date is valid.
|
---|
231 | Const DMUS_OBJ_LOADED = 1 << 9 'Object is currently loaded in memory.
|
---|
232 | Const DMUS_OBJ_MEMORY = 1 << 10 'Object is pointed to by pbMemData.
|
---|
233 | Const DMUS_OBJ_STREAM = 1 << 11 'Object is stored in pStream.
|
---|
234 |
|
---|
235 | Type DMUS_OBJECTDESC
|
---|
236 | dwSize As DWord
|
---|
237 | dwValidData As DWord
|
---|
238 | guidObject As GUID
|
---|
239 | guidClass As GUID
|
---|
240 | ftDate As FILETIME
|
---|
241 | vVersion As DMUS_VERSION
|
---|
242 | wszName[DMUS_MAX_NAME-1] As WCHAR
|
---|
243 | wszCategory[DMUS_MAX_CATEGORY-1] As WCHAR
|
---|
244 | wszFileName[DMUS_MAX_FILENAME-1] As WCHAR
|
---|
245 | llMemLength As Int64
|
---|
246 | pbMemData As BytePtr
|
---|
247 | pStream As *IStream
|
---|
248 | End Type
|
---|
249 |
|
---|
250 | Type DMUS_SCRIPT_ERRORINFO
|
---|
251 | dwSize As DWord
|
---|
252 | hr As DWord
|
---|
253 | ulLineNumber As DWord
|
---|
254 | ichCharPosition As Long
|
---|
255 | wszSourceFile[DMUS_MAX_FILENAME-1] As WCHAR
|
---|
256 | wszSourceComponent[DMUS_MAX_FILENAME-1] As WCHAR
|
---|
257 | wszDescription[DMUS_MAX_FILENAME-1] As WCHAR
|
---|
258 | wszSourceLineText[DMUS_MAX_FILENAME-1] As WCHAR
|
---|
259 | End Type
|
---|
260 |
|
---|
261 | ' Track configuration flags, used with IDirectMusicSegment8::SetTrackConfig()
|
---|
262 | Const DMUS_TRACKCONFIG_OVERRIDE_ALL = 1 'This track should get parameters from this segment before controlling and primary tracks.
|
---|
263 | Const DMUS_TRACKCONFIG_OVERRIDE_PRIMARY = 2 'This track should get parameters from this segment before the primary segment tracks.
|
---|
264 | Const DMUS_TRACKCONFIG_FALLBACK = 4 'This track should get parameters from this segment if the primary and controlling segments don't succeed.
|
---|
265 | Const DMUS_TRACKCONFIG_CONTROL_ENABLED = 8 'GetParam() enabled for this track.
|
---|
266 | Const DMUS_TRACKCONFIG_PLAY_ENABLED = &H10 'Play() enabled for this track.
|
---|
267 | Const DMUS_TRACKCONFIG_NOTIFICATION_ENABLED = &H20 'Notifications enabled for this track.
|
---|
268 | Const DMUS_TRACKCONFIG_PLAY_CLOCKTIME = &H40 'This track plays in clock time, not music time.
|
---|
269 | Const DMUS_TRACKCONFIG_PLAY_COMPOSE = &H80 'This track should regenerate data each time it starts playing.
|
---|
270 | Const DMUS_TRACKCONFIG_LOOP_COMPOSE = &H100 'This track should regenerate data each time it repeats.
|
---|
271 | Const DMUS_TRACKCONFIG_COMPOSING = &H200 'This track is used to compose other tracks.
|
---|
272 | Const DMUS_TRACKCONFIG_CONTROL_PLAY = &H10000 'This track, when played in a controlling segment, overrides playback of primary segment tracks.
|
---|
273 | Const DMUS_TRACKCONFIG_CONTROL_NOTIFICATION = &H20000 'This track, when played in a controlling segment, overrides notification of primary segment tracks.
|
---|
274 | ' Additional track config flags for composing transitions
|
---|
275 | Const DMUS_TRACKCONFIG_TRANS1_FROMSEGSTART = &H400 'Get track info from start of From segment
|
---|
276 | Const DMUS_TRACKCONFIG_TRANS1_FROMSEGCURRENT = &H800 'Get track info from current place in From segment
|
---|
277 | Const DMUS_TRACKCONFIG_TRANS1_TOSEGSTART = &H1000 'Get track info from start of To segment
|
---|
278 | Const DMUS_TRACKCONFIG_DEFAULT = DMUS_TRACKCONFIG_CONTROL_ENABLED or DMUS_TRACKCONFIG_PLAY_ENABLED or DMUS_TRACKCONFIG_NOTIFICATION_ENABLED
|
---|
279 |
|
---|
280 |
|
---|
281 | '-----------------
|
---|
282 | ' Interfaces
|
---|
283 | '-----------------
|
---|
284 |
|
---|
285 | Class IDirectMusicBand
|
---|
286 | Inherits IUnknown
|
---|
287 | Public
|
---|
288 | 'IDirectMusicBand
|
---|
289 | Abstract Function CreateSegment(ppSegment As **IDirectMusicSegment) As DWord
|
---|
290 | Abstract Function Download(pPerformance As *IDirectMusicPerformance) As DWord
|
---|
291 | Abstract Function Unload(pPerformance As *IDirectMusicPerformance) As DWord
|
---|
292 | End Class
|
---|
293 | TypeDef IDirectMusicBand8 = IDirectMusicBand
|
---|
294 |
|
---|
295 | Class IDirectMusicObject
|
---|
296 | Inherits IUnknown
|
---|
297 | Public
|
---|
298 | 'IDirectMusicObject
|
---|
299 | Abstract Function GetDescriptor(pDesc As *DMUS_OBJECTDESC) As DWord
|
---|
300 | Abstract Function SetDescriptor(pDesc As *DMUS_OBJECTDESC) As DWord
|
---|
301 | Abstract Function ParseDescriptor(pStream As LPSTREAM, pDesc As *DMUS_OBJECTDESC) As DWord
|
---|
302 | End Class
|
---|
303 | TypeDef IDirectMusicObject8 = IDirectMusicObject
|
---|
304 |
|
---|
305 | Class IDirectMusicLoader
|
---|
306 | Inherits IUnknown
|
---|
307 | Public
|
---|
308 | 'IDirectMusicLoader
|
---|
309 | Abstract Function GetObject(pDesc As *DMUS_OBJECTDESC, ByRef riid As GUID, ppv As VoidPtr) As DWord
|
---|
310 | Abstract Function SetObject(pDesc As *DMUS_OBJECTDESC) As DWord
|
---|
311 | Abstract Function SetSearchDirectory(ByRef rguidClass As GUID, pwzPath As *WCHAR, fClear As Long) As DWord
|
---|
312 | Abstract Function ScanDirectory(ByRef rguidClass As GUID, pwzFileExtension As *WCHAR, pwzScanFileName As *WCHAR) As DWord
|
---|
313 | Abstract Function CacheObject(pObject As *IDirectMusicObject) As DWord
|
---|
314 | Abstract Function ReleaseObject(pObject As *IDirectMusicObject) As DWord
|
---|
315 | Abstract Function ClearCache(ByRef rguidClass As GUID) As DWord
|
---|
316 | Abstract Function EnableCache(ByRef rguidClass As GUID, fEnable As Long) As DWord
|
---|
317 | Abstract Function EnumObject(ByRef rguidClass As GUID, dwIndex As DWord, pDesc As *DMUS_OBJECTDESC) As DWord
|
---|
318 | End Class
|
---|
319 |
|
---|
320 | Class IDirectMusicLoader8
|
---|
321 | Inherits IDirectMusicLoader
|
---|
322 | Public
|
---|
323 | 'IDirectMusicLoader8
|
---|
324 | Abstract Sub CollectGarbage()
|
---|
325 | Abstract Function ReleaseObjectByUnknown(pObject As *IUnknown) As DWord
|
---|
326 | Abstract Function LoadObjectFromFile(ByRef rguidClassID As GUID, ByRef iidInterfaceID As GUID, pwzFilePath As *WCHAR, ppObject As DWordPtr) As DWord
|
---|
327 | End Class
|
---|
328 |
|
---|
329 | Class IDirectMusicGetLoader
|
---|
330 | Inherits IUnknown
|
---|
331 | Public
|
---|
332 | 'IDirectMusicGetLoader
|
---|
333 | Abstract Function GetLoader(ppLoader As **IDirectMusicLoader) As DWord
|
---|
334 | End Class
|
---|
335 |
|
---|
336 | Class IDirectMusicSegment
|
---|
337 | Inherits IUnknown
|
---|
338 | Public
|
---|
339 | 'IDirectMusicSegment
|
---|
340 | Abstract Function GetLength(pmtLength As *MUSIC_TIME) As DWord
|
---|
341 | Abstract Function SetLength(mtLength As MUSIC_TIME) As DWord
|
---|
342 | Abstract Function GetRepeats(pdwRepeats As DWordPtr) As DWord
|
---|
343 | Abstract Function SetRepeats(dwRepeats As DWord) As DWord
|
---|
344 | Abstract Function GetDefaultResolution(pdwResolution As DWordPtr) As DWord
|
---|
345 | Abstract Function SetDefaultResolution(dwResolution As DWord) As DWord
|
---|
346 | Abstract Function GetTrack(ByRef rguidType As GUID, dwGroupBits As DWord, dwIndex As DWord, ppTrack As **IDirectMusicTrack) As DWord
|
---|
347 | Abstract Function GetTrackGroup(pTrack As *IDirectMusicTrack, pdwGroupBits As DWordPtr) As DWord
|
---|
348 | Abstract Function InsertTrack(pTrack As *IDirectMusicTrack, dwGroupBits As DWord) As DWord
|
---|
349 | Abstract Function RemoveTrack(pTrack As *IDirectMusicTrack) As DWord
|
---|
350 | Abstract Function InitPlay(ppSegState As **IDirectMusicSegmentState, pPerformance As *IDirectMusicPerformance, dwFlags As DWord) As DWord
|
---|
351 | Abstract Function GetGraph(ppGraph As **IDirectMusicGraph) As DWord
|
---|
352 | Abstract Function SetGraph(pGraph As *IDirectMusicGraph) As DWord
|
---|
353 | Abstract Function AddNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
354 | Abstract Function RemoveNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
355 | Abstract Function GetParam(ByRef rguidType As GUID, dwGroupBits As DWord, dwIndex As DWord, mtTime As MUSIC_TIME, pmtNext As *MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
356 | Abstract Function SetParam(ByRef rguidType As GUID, dwGroupBits As DWord, dwIndex As DWord, mtTime As MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
357 | Abstract Function Clone(mtStart As MUSIC_TIME, mtEnd As MUSIC_TIME, ppSegment As **IDirectMusicSegment) As DWord
|
---|
358 | Abstract Function SetStartPoint(mtStart As MUSIC_TIME) As DWord
|
---|
359 | Abstract Function GetStartPoint(pmtStart As *MUSIC_TIME) As DWord
|
---|
360 | Abstract Function SetLoopPoints(mtStart As MUSIC_TIME, mtEnd As MUSIC_TIME) As DWord
|
---|
361 | Abstract Function GetLoopPoints(pmtStart As *MUSIC_TIME, pmtEnd As *MUSIC_TIME) As DWord
|
---|
362 | Abstract Function SetPChannelsUsed(dwNumPChannels As DWord, paPChannels As DWordPtr) As DWord
|
---|
363 | End Class
|
---|
364 |
|
---|
365 | Class IDirectMusicSegment8
|
---|
366 | Inherits IDirectMusicSegment
|
---|
367 | Public
|
---|
368 | 'IDirectMusicSegment8
|
---|
369 | Abstract Function SetTrackConfig(ByRef rguidTrackClassID As GUID, dwGroupBits As DWord, dwIndex As DWord, dwFlagsOn As DWord, dwFlagsOff As DWord) As DWord
|
---|
370 | Abstract Function GetAudioPathConfig(ppAudioPathConfig As **IUnknown) As DWord
|
---|
371 | Abstract Function Compose(mtTime As MUSIC_TIME, pFromSegment As *IDirectMusicSegment, pToSegment As *IDirectMusicSegment, ppComposedSegment As **IDirectMusicSegment) As DWord
|
---|
372 | Abstract Function Download(pAudioPath As *IUnknown) As DWord
|
---|
373 | Abstract Function Unload(pAudioPath As *IUnknown) As DWord
|
---|
374 | End Class
|
---|
375 |
|
---|
376 | Class IDirectMusicSegmentState
|
---|
377 | Inherits IUnknown
|
---|
378 | Public
|
---|
379 | 'IDirectMusicSegmentState
|
---|
380 | Abstract Function GetRepeats(pdwRepeats As DWordPtr) As DWord
|
---|
381 | Abstract Function GetSegment(ppSegment As **IDirectMusicSegment) As DWord
|
---|
382 | Abstract Function GetStartTime(pmtStart As *MUSIC_TIME) As DWord
|
---|
383 | Abstract Function GetSeek(pmtSeek As *MUSIC_TIME) As DWord
|
---|
384 | Abstract Function GetStartPoint(pmtStart As *MUSIC_TIME) As DWord
|
---|
385 | End Class
|
---|
386 |
|
---|
387 | Class IDirectMusicSegmentState8
|
---|
388 | Inherits IDirectMusicSegmentState
|
---|
389 | Public
|
---|
390 | 'IDirectMusicSegmentState8
|
---|
391 | Abstract Function SetTrackConfig(ByRef rguidTrackClassID As GUID, dwGroupBits As DWord, dwIndex As DWord, dwFlagsOn As DWord, dwFlagsOff As DWord) As DWord
|
---|
392 | Abstract Function GetObjectInPath(dwPChannel As DWord, dwStage As DWord, dwBuffer As DWord, ByRef guidObject As GUID, dwIndex As DWord, ByRef iidInterface As GUID, ppObject As DWordPtr) As DWord
|
---|
393 | End Class
|
---|
394 |
|
---|
395 | Class IDirectMusicAudioPath
|
---|
396 | Inherits IUnknown
|
---|
397 | Public
|
---|
398 | 'IDirectMusicAudioPath
|
---|
399 | Abstract Function GetObjectInPath(dwPChannel As DWord, dwStage As DWord, dwBuffer As DWord, ByRef guidObject As GUID, dwIndex As DWord, ByRef iidInterface As GUID, ppObject As DWordPtr) As DWord
|
---|
400 | Abstract Function Activate(fActivate As Long) As DWord
|
---|
401 | Abstract Function SetVolume(lVolume As Long, dwDuration As DWord) As DWord
|
---|
402 | Abstract Function ConvertPChannel(dwPChannelIn As DWord, pdwPChannelOut As DWordPtr) As DWord
|
---|
403 | End Class
|
---|
404 | TypeDef IDirectMusicAudioPath8 = IDirectMusicAudioPath
|
---|
405 |
|
---|
406 | Class IDirectMusicPerformance
|
---|
407 | Inherits IUnknown
|
---|
408 | Public
|
---|
409 | 'IDirectMusicPerformance
|
---|
410 | Abstract Function Init(ppDirectMusic As **IDirectMusic, pDirectSound As LPDIRECTSOUND, hWnd As HWND) As DWord
|
---|
411 | Abstract Function PlaySegment(pSegment As *IDirectMusicSegment, dwFlags As DWord, i64StartTime As REFERENCE_TIME, ppSegmentState As **IDirectMusicSegmentState) As DWord
|
---|
412 | Abstract Function Stop(pSegment As *IDirectMusicSegment, pSegmentState As *IDirectMusicSegmentState, mtTime As MUSIC_TIME, dwFlags As DWord) As DWord
|
---|
413 | Abstract Function GetSegmentState(ppSegmentState As **IDirectMusicSegmentState, mtTime As MUSIC_TIME) As DWord
|
---|
414 | Abstract Function SetPrepareTime(dwMilliSeconds As DWord) As DWord
|
---|
415 | Abstract Function GetPrepareTime(pdwMilliSeconds As DWordPtr) As DWord
|
---|
416 | Abstract Function SetBumperLength(dwMilliSeconds As DWord) As DWord
|
---|
417 | Abstract Function GetBumperLength(pdwMilliSeconds As DWordPtr) As DWord
|
---|
418 | Abstract Function SendPMsg(pPMSG As *DMUS_PMSG) As DWord
|
---|
419 | Abstract Function MusicToReferenceTime(mtTime As MUSIC_TIME, prtTime As *REFERENCE_TIME) As DWord
|
---|
420 | Abstract Function ReferenceToMusicTime(rtTime As REFERENCE_TIME, pmtTime As *MUSIC_TIME) As DWord
|
---|
421 | Abstract Function IsPlaying(pSegment As *IDirectMusicSegment, pSegState As *IDirectMusicSegmentState) As DWord
|
---|
422 | Abstract Function GetTime(prtNow As *REFERENCE_TIME, pmtNow As *MUSIC_TIME) As DWord
|
---|
423 | Abstract Function AllocPMsg(cb As DWord, ppPMSG As **DMUS_PMSG) As DWord
|
---|
424 | Abstract Function FreePMsg(pPMSG As *DMUS_PMSG) As DWord
|
---|
425 | Abstract Function GetGraph(ppGraph As **IDirectMusicGraph) As DWord
|
---|
426 | Abstract Function SetGraph(pGraph As *IDirectMusicGraph) As DWord
|
---|
427 | Abstract Function SetNotificationHandle(hNotification As HANDLE, rtMinimum As REFERENCE_TIME) As DWord
|
---|
428 | Abstract Function GetNotificationPMsg(ppNotificationPMsg As **DMUS_NOTIFICATION_PMSG) As DWord
|
---|
429 | Abstract Function AddNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
430 | Abstract Function RemoveNotificationType(ByRef rguidNotificationType As GUID) As DWord
|
---|
431 | Abstract Function AddPort(pPort As *IDirectMusicPort) As DWord
|
---|
432 | Abstract Function RemovePort(pPort As *IDirectMusicPort) As DWord
|
---|
433 | Abstract Function AssignPChannelBlock(dwBlockNum As DWord, pPort As *IDirectMusicPort, dwGroup As DWord) As DWord
|
---|
434 | Abstract Function AssignPChannel(dwPChannel As DWord, pPort As *IDirectMusicPort, dwGroup As DWord, dwMChannel As DWord) As DWord
|
---|
435 | Abstract Function PChannelInfo(dwPChannel As DWord, ppPort As **IDirectMusicPort, pdwGroup As DWordPtr, pdwMChannel As DWordPtr) As DWord
|
---|
436 | Abstract Function DownloadInstrument(pInst As *IDirectMusicInstrument, dwPChannel As DWord, ppDownInst As **IDirectMusicDownloadedInstrument, pNoteRanges As *DMUS_NOTERANGE, dwNumNoteRanges As DWord, ppPort As **IDirectMusicPort, pdwGroup As DWordPtr, pdwMChannel As DWordPtr) As DWord
|
---|
437 | Abstract Function Invalidate(mtTime As MUSIC_TIME, dwFlags As DWord) As DWord
|
---|
438 | Abstract Function GetParam(ByRef rguidType As GUID, dwGroupBits As DWord, dwIndex As DWord, mtTime As MUSIC_TIME, pmtNext As *MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
439 | Abstract Function SetParam(ByRef rguidType As GUID, dwGroupBits As DWord, dwIndex As DWord, mtTime As MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
440 | Abstract Function GetGlobalParam(ByRef rguidType As GUID, pParam As VoidPtr, dwSize As DWord) As DWord
|
---|
441 | Abstract Function SetGlobalParam(ByRef rguidType As GUID, pParam As VoidPtr, dwSize As DWord) As DWord
|
---|
442 | Abstract Function GetLatencyTime(prtTime As *REFERENCE_TIME) As DWord
|
---|
443 | Abstract Function GetQueueTime(prtTime As *REFERENCE_TIME) As DWord
|
---|
444 | Abstract Function AdjustTime(rtAmount As REFERENCE_TIME) As DWord
|
---|
445 | Abstract Function CloseDown() As DWord
|
---|
446 | Abstract Function GetResolvedTime(rtTime As REFERENCE_TIME, prtResolved As *REFERENCE_TIME, dwTimeResolveFlags As DWord) As DWord
|
---|
447 | Abstract Function MIDIToMusic(bMIDIValue As Byte, pChord As *DMUS_CHORD_KEY, bPlayMode As Byte, bChordLevel As Byte, pwMusicValue As WordPtr) As DWord
|
---|
448 | Abstract Function MusicToMIDI(wMusicValue As Word, pChord As *DMUS_CHORD_KEY, bPlayMode As Byte, bChordLevel As Byte, pbMIDIValue As BytePtr) As DWord
|
---|
449 | Abstract Function TimeToRhythm(mtTime As MUSIC_TIME, pTimeSig As *DMUS_TIMESIGNATURE, pwMeasure As WordPtr, pbBeat As BytePtr, pbGrid As BytePtr, pnOffset As WordPtr) As DWord
|
---|
450 | Abstract Function RhythmToTime(wMeasure As Word, bBeat As Byte, bGrid As Byte, nOffset As Integer, pTimeSig As *DMUS_TIMESIGNATURE, pmtTime As *MUSIC_TIME) As DWord
|
---|
451 | End Class
|
---|
452 |
|
---|
453 | Class IDirectMusicPerformance8
|
---|
454 | Inherits IDirectMusicPerformance
|
---|
455 | Public
|
---|
456 | 'IDirectMusicPerformance8
|
---|
457 | Abstract Function InitAudio(ppDirectMusic As **IDirectMusic, ppDirectSound As **IDirectSound, hWnd As HWND, dwDefaultPathType As DWord, dwPChannelCount As DWord, dwFlags As DWord, pParams As *DMUS_AUDIOPARAMS) As DWord
|
---|
458 | Abstract Function PlaySegmentEx(pSource As *IUnknown, pwzSegmentName As *WCHAR, pTransition As *IUnknown, dwFlags As DWord, i64StartTime As Int64, ppSegmentState As **IDirectMusicSegmentState, pFrom As *IUnknown, pAudioPath As *IUnknown) As DWord
|
---|
459 | Abstract Function StopEx(pObjectToStop As *IUnknown, i64StopTime As Int64, dwFlags As DWord) As DWord
|
---|
460 | Abstract Function ClonePMsg(pSourcePMSG As *DMUS_PMSG, ppCopyPMSG As **DMUS_PMSG) As DWord
|
---|
461 | Abstract Function CreateAudioPath(pSourceConfig As *IUnknown, fActivate As Long, ppNewPath As **IDirectMusicAudioPath) As DWord
|
---|
462 | Abstract Function CreateStandardAudioPath(dwType As DWord, dwPChannelCount As DWord, fActivate As Long, ppNewPath As **IDirectMusicAudioPath) As DWord
|
---|
463 | Abstract Function SetDefaultAudioPath(pAudioPath As *IDirectMusicAudioPath) As DWord
|
---|
464 | Abstract Function GetDefaultAudioPath(ppAudioPath As **IDirectMusicAudioPath) As DWord
|
---|
465 | Abstract Function GetParamEx(ByRef rguidType As GUID, dwTrackID As DWord, dwGroupBits As DWord, dwIndex As DWord, mtTime As MUSIC_TIME, pmtNext As *MUSIC_TIME, pParam As VoidPtr) As DWord
|
---|
466 | End Class
|
---|
467 |
|
---|
468 | Class IDirectMusicGraph
|
---|
469 | Inherits IUnknown
|
---|
470 | Public
|
---|
471 | 'IDirectMusicGraph
|
---|
472 | Abstract Function StampPMsg(pPMSG As *DMUS_PMSG) As DWord
|
---|
473 | Abstract Function InsertTool(pTool As *IDirectMusicTool, pdwPChannels As DWordPtr, cPChannels As DWord, lIndex As Long) As DWord
|
---|
474 | Abstract Function GetTool(dwIndex As DWord, ppTool As **IDirectMusicTool) As DWord
|
---|
475 | Abstract Function RemoveTool(pTool As *IDirectMusicTool) As DWord
|
---|
476 | End Class
|
---|
477 |
|
---|
478 | Class IDirectMusicStyle
|
---|
479 | Inherits IUnknown
|
---|
480 | Public
|
---|
481 | 'IDirectMusicStyle
|
---|
482 | Abstract Function GetBand(pwszName As *WCHAR, ppBand As **IDirectMusicBand) As DWord
|
---|
483 | Abstract Function EnumBand(dwIndex As DWord, pwszName As *WCHAR) As DWord
|
---|
484 | Abstract Function GetDefaultBand(ppBand As **IDirectMusicBand) As DWord
|
---|
485 | Abstract Function EnumMotif(dwIndex As DWord, pwszName As *WCHAR) As DWord
|
---|
486 | Abstract Function GetMotif(pwszName As *WCHAR, ppSegment As **IDirectMusicSegment) As DWord
|
---|
487 | Abstract Function GetDefaultChordMap(ppChordMap As **IDirectMusicChordMap) As DWord
|
---|
488 | Abstract Function EnumChordMap(dwIndex As DWord, pwszName As *WCHAR) As DWord
|
---|
489 | Abstract Function GetChordMap(pwszName As *WCHAR, ppChordMap As **IDirectMusicChordMap) As DWord
|
---|
490 | Abstract Function GetTimeSignature(pTimeSig As *DMUS_TIMESIGNATURE) As DWord
|
---|
491 | Abstract Function GetEmbellishmentLength(dwType As DWord, dwLevel As DWord, pdwMin As DWordPtr, pdwMax As DWordPtr) As DWord
|
---|
492 | Abstract Function GetTempo(pTempo As DoublePtr) As DWord
|
---|
493 | End Class
|
---|
494 |
|
---|
495 | Class IDirectMusicStyle8
|
---|
496 | Inherits IDirectMusicStyle
|
---|
497 | Public
|
---|
498 | 'IDirectMusicStyle8
|
---|
499 | Abstract Function EnumPattern(dwIndex As DWord, dwPatternType As DWord, pwszName As *WCHAR) As DWord
|
---|
500 | End Class
|
---|
501 |
|
---|
502 | Class IDirectMusicChordMap
|
---|
503 | Inherits IUnknown
|
---|
504 | Public
|
---|
505 | 'IDirectMusicChordMap
|
---|
506 | Abstract Function GetScale(pdwScale As DWordPtr) As DWord
|
---|
507 | End Class
|
---|
508 | TypeDef IDirectMusicChordMap8 = IDirectMusicChordMap
|
---|
509 |
|
---|
510 | Class IDirectMusicComposer
|
---|
511 | Inherits IUnknown
|
---|
512 | Public
|
---|
513 | 'IDirectMusicComposer
|
---|
514 | Abstract Function ComposeSegmentFromTemplate(pStyle As *IDirectMusicStyle, pTemplate As *IDirectMusicSegment, wActivity As Word, pChordMap As *IDirectMusicChordMap, ppSegment As **IDirectMusicSegment) As DWord
|
---|
515 | Abstract Function ComposeSegmentFromShape(pStyle As *IDirectMusicStyle, wNumMeasures As Word, wShape As Word, wActivity As Word, fIntro As Long, fEnd As Long, pChordMap As *IDirectMusicChordMap, ppSegment As **IDirectMusicSegment) As DWord
|
---|
516 | Abstract Function ComposeTransition(pFromSeg As *IDirectMusicSegment, pToSeg As *IDirectMusicSegment, mtTime As MUSIC_TIME, wCommand As Word, dwFlags As DWord, pChordMap As *IDirectMusicChordMap, ppTransSeg As **IDirectMusicSegment) As DWord
|
---|
517 | Abstract Function AutoTransition(pPerformance As *IDirectMusicPerformance, pToSeg As *IDirectMusicSegment, wCommand As Word, dwFlags As DWord, pChordMap As *IDirectMusicChordMap, ppTransSeg As **IDirectMusicSegment, ppToSegState As **IDirectMusicSegmentState, ppTransSegState As **IDirectMusicSegmentState) As DWord
|
---|
518 | Abstract Function ComposeTemplateFromShape(wNumMeasures As Word, wShape As Word, fIntro As Long, fEnd As Long, wEndLength As Word, ppTemplate As **IDirectMusicSegment) As DWord
|
---|
519 | Abstract Function ChangeChordMap(pSegment As *IDirectMusicSegment, fTrackScale As Long, pChordMap As *IDirectMusicChordMap) As DWord
|
---|
520 | End Class
|
---|
521 | TypeDef IDirectMusicComposer8 = IDirectMusicComposer
|
---|
522 |
|
---|
523 |
|
---|
524 | '-----------------
|
---|
525 | ' CLSID and IID
|
---|
526 | '-----------------
|
---|
527 |
|
---|
528 | ' CLSID's
|
---|
529 | Dim CLSID_DirectMusicPerformance = [&Hd2ac2881, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
530 | Dim CLSID_DirectMusicSegment = [&Hd2ac2882, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
531 | Dim CLSID_DirectMusicSegmentState = [&Hd2ac2883, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
532 | Dim CLSID_DirectMusicGraph = [&Hd2ac2884, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
533 | Dim CLSID_DirectMusicStyle = [&Hd2ac288a, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
534 | Dim CLSID_DirectMusicChordMap = [&Hd2ac288f, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
535 | Dim CLSID_DirectMusicComposer = [&Hd2ac2890, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
536 | Dim CLSID_DirectMusicLoader = [&Hd2ac2892, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
537 | Dim CLSID_DirectMusicBand = [&H79ba9e00, &Hb6ee, &H11d1, [&H86, &Hbe, &H0, &Hc0, &H4f, &Hbf, &H8f, &Hef]] As GUID
|
---|
538 |
|
---|
539 | ' New CLSID's for DX8
|
---|
540 | Dim CLSID_DirectMusicPatternTrack = [&Hd2ac2897, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
541 | Dim CLSID_DirectMusicScript = [&H810b5013, &He88d, &H11d2, [&H8b, &Hc1, &H0, &H60, &H8, &H93, &Hb1, &Hb6]] As GUID ' {810B5013-E88D-11d2-8BC1-00600893B1B6}
|
---|
542 | Dim CLSID_DirectMusicContainer = [&H9301e380, &H1f22, &H11d3, [&H82, &H26, &Hd2, &Hfa, &H76, &H25, &H5d, &H47]] As GUID
|
---|
543 | Dim CLSID_DirectSoundWave = [&H8a667154, &Hf9cb, &H11d2, [&Had, &H8a, &H0, &H60, &Hb0, &H57, &H5a, &Hbc]] As GUID
|
---|
544 | Dim CLSID_DirectMusicAudioPathConfig = [&Hee0b9ca0, &Ha81e, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
545 |
|
---|
546 | ' Special GUID for all object types. This is used by the loader.
|
---|
547 | Dim GUID_DirectMusicAllTypes = [&Hd2ac2893, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
548 |
|
---|
549 | ' Notification guids
|
---|
550 | Dim GUID_NOTIFICATION_SEGMENT = [&Hd2ac2899, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
551 | Dim GUID_NOTIFICATION_PERFORMANCE = [&H81f75bc5, &H4e5d, &H11d2, [&Hbc, &Hc7, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
552 | Dim GUID_NOTIFICATION_MEASUREANDBEAT = [&Hd2ac289a, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
553 | Dim GUID_NOTIFICATION_CHORD = [&Hd2ac289b, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
554 | Dim GUID_NOTIFICATION_COMMAND = [&Hd2ac289c, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
555 | Dim GUID_NOTIFICATION_RECOMPOSE = [&Hd348372b, &H945b, &H45ae, [&Ha5, &H22, &H45, &Hf, &H12, &H5b, &H84, &Ha5]] As GUID
|
---|
556 |
|
---|
557 | ' Track param type guids
|
---|
558 | ' Use to get/set a DMUS_COMMAND_PARAM param in the Command track
|
---|
559 | Dim GUID_CommandParam = [&Hd2ac289d, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
560 |
|
---|
561 | ' Use to get a DMUS_COMMAND_PARAM_2 param in the Command track
|
---|
562 | Dim GUID_CommandParam2 = [&H28f97ef7, &H9538, &H11d2, [&H97, &Ha9, &H0, &Hc0, &H4f, &Ha3, &H6e, &H58]] As GUID
|
---|
563 |
|
---|
564 | ' Use to get/set a DMUS_COMMAND_PARAM_2 param to be used as the command following all commands in
|
---|
565 | ' the Command track (this information can't be saved)
|
---|
566 | Dim GUID_CommandParamNext = [&H472afe7a, &H281b, &H11d3, [&H81, &H7d, &H0, &Hc0, &H4f, &Ha3, &H6e, &H58]] As GUID
|
---|
567 |
|
---|
568 | ' Use to get/set a DMUS_CHORD_PARAM param in the Chord track
|
---|
569 | Dim GUID_ChordParam = [&Hd2ac289e, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
570 |
|
---|
571 | ' Use to get a DMUS_RHYTHM_PARAM param in the Chord track
|
---|
572 | Dim GUID_RhythmParam = [&Hd2ac289f, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
573 |
|
---|
574 | ' Use to get/set an IDirectMusicStyle param in the Style track
|
---|
575 | Dim GUID_IDirectMusicStyle = [&Hd2ac28a1, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
576 |
|
---|
577 | ' Use to get a DMUS_TIMESIGNATURE param in the Style and TimeSig tracks
|
---|
578 | Dim GUID_TimeSignature = [&Hd2ac28a4, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
579 |
|
---|
580 | ' Use to get/set a DMUS_TEMPO_PARAM param in the Tempo track
|
---|
581 | Dim GUID_TempoParam = [&Hd2ac28a5, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
582 |
|
---|
583 | ' Use to get the next valid point in a segment at which it may start
|
---|
584 | Dim GUID_Valid_Start_Time = [&H7f6b1760, &H1fdb, &H11d3, [&H82, &H26, &H44, &H45, &H53, &H54, &H0, &H0]] As GUID
|
---|
585 |
|
---|
586 | ' Use to get the next point in the currently playing primary segment at which a new segment may start
|
---|
587 | Dim GUID_Play_Marker = [&Hd8761a41, &H801a, &H11d3, [&H9b, &Hd1, &Hda, &Hf7, &He1, &Hc3, &Hd8, &H34]] As GUID
|
---|
588 |
|
---|
589 | ' Use to get (GetParam) or add (SetParam) bands in the Band track
|
---|
590 | Dim GUID_BandParam = [&H2bb1938, &Hcb8b, &H11d2, [&H8b, &Hb9, &H0, &H60, &H8, &H93, &Hb1, &Hb6]] As GUID
|
---|
591 | Type DMUS_BAND_PARAM
|
---|
592 | mtTimePhysical As MUSIC_TIME
|
---|
593 | pBand As *IDirectMusicBand
|
---|
594 | End Type
|
---|
595 |
|
---|
596 | ' Obsolete -- doesn't distinguish physical and logical time. Use GUID_BandParam instead.
|
---|
597 | Dim GUID_IDirectMusicBand = [&Hd2ac28ac, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
598 |
|
---|
599 | ' Use to get/set an IDirectMusicChordMap param in the ChordMap track
|
---|
600 | Dim GUID_IDirectMusicChordMap = [&Hd2ac28ad, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
601 |
|
---|
602 | ' Use to get/set a DMUS_MUTE_PARAM param in the Mute track
|
---|
603 | Dim GUID_MuteParam = [&Hd2ac28af, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
604 |
|
---|
605 | ' These guids are used in IDirectMusicSegment::SetParam to tell the band track to perform various actions.
|
---|
606 | ' Some of these guids (where noted) also apply to wave tracks.
|
---|
607 |
|
---|
608 | ' Download bands/waves for the IDirectMusicSegment
|
---|
609 | Dim GUID_Download = [&Hd2ac28a7, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
610 |
|
---|
611 | ' Unload bands/waves for the IDirectMusicSegment
|
---|
612 | Dim GUID_Unload = [&Hd2ac28a8, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
613 |
|
---|
614 | ' Connect segment's bands to an IDirectMusicCollection
|
---|
615 | Dim GUID_ConnectToDLSCollection = [&H1db1ae6b, &He92e, &H11d1, [&Ha8, &Hc5, &H0, &Hc0, &H4f, &Ha3, &H72, &H6e]] As GUID
|
---|
616 |
|
---|
617 | ' Enable/disable autodownloading of bands/waves
|
---|
618 | Dim GUID_Enable_Auto_Download = [&Hd2ac28a9, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
619 | Dim GUID_Disable_Auto_Download = [&Hd2ac28aa, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
620 |
|
---|
621 | ' Clear all bands
|
---|
622 | Dim GUID_Clear_All_Bands = [&Hd2ac28ab, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
623 |
|
---|
624 | ' Set segment to manage all program changes, bank selects, etc. for simple playback of a standard MIDI file
|
---|
625 | Dim GUID_StandardMIDIFile = [&H6621075, &He92e, &H11d1, [&Ha8, &Hc5, &H0, &Hc0, &H4f, &Ha3, &H72, &H6e]] As GUID
|
---|
626 |
|
---|
627 | ' Disable/enable param guids. Use these in SetParam calls to disable or enable sending
|
---|
628 | ' * specific PMsg types.
|
---|
629 |
|
---|
630 | Dim GUID_DisableTimeSig = [&H45fc707b, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
631 | Dim GUID_EnableTimeSig = [&H45fc707c, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
632 | Dim GUID_DisableTempo = [&H45fc707d, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
633 | Dim GUID_EnableTempo = [&H45fc707e, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
634 |
|
---|
635 | ' Used in SetParam calls for pattern-based tracks. A nonzero value seeds the random number
|
---|
636 | ' generator for variation selection; a value of zero reverts to the default behavior of
|
---|
637 | ' getting the seed from the system clock.
|
---|
638 | Dim GUID_SeedVariations = [&H65b76fa5, &Hff37, &H11d2, [&H81, &H4e, &H0, &Hc0, &H4f, &Ha3, &H6e, &H58]] As GUID
|
---|
639 |
|
---|
640 | ' Used to get the variations currently in effect across PChannels
|
---|
641 | Dim GUID_Variations = [&H11f72cce, &H26e6, &H4ecd, [&Haf, &H2e, &Hd6, &H68, &He6, &H67, &H7, &Hd8]] As GUID
|
---|
642 | Type DMUS_VARIATIONS_PARAM
|
---|
643 | dwPChannelsUsed As DWord
|
---|
644 | padwPChannels As DWordPtr
|
---|
645 | padwVariations As DWordPtr
|
---|
646 | End Type
|
---|
647 |
|
---|
648 | ' Download bands/waves for the IDirectMusicSegment, passed an IDirectMusicAudioPath instead of an IDirectMusicPerformance
|
---|
649 | Dim GUID_DownloadToAudioPath = [&H9f2c0341, &Hc5c4, &H11d3, [&H9b, &Hd1, &H44, &H45, &H53, &H54, &H0, &H0]] As GUID
|
---|
650 |
|
---|
651 | ' Unload bands/waves for the IDirectMusicSegment, passed an IDirectMusicAudioPath instead of an IDirectMusicPerformance
|
---|
652 | Dim GUID_UnloadFromAudioPath = [&H9f2c0342, &Hc5c4, &H11d3, [&H9b, &Hd1, &H44, &H45, &H53, &H54, &H0, &H0]] As GUID
|
---|
653 |
|
---|
654 |
|
---|
655 | ' Global data guids
|
---|
656 | Dim GUID_PerfMasterTempo = [&Hd2ac28b0, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
657 | Dim GUID_PerfMasterVolume = [&Hd2ac28b1, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
658 | Dim GUID_PerfMasterGrooveLevel = [&Hd2ac28b2, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
659 | Dim GUID_PerfAutoDownload = [&Hfb09565b, &H3631, &H11d2, [&Hbc, &Hb8, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
660 |
|
---|
661 | ' GUID for default GM/GS dls collection.
|
---|
662 | Dim GUID_DefaultGMCollection = [&Hf17e8673, &Hc3b4, &H11d1, [&H87, &Hb, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
663 |
|
---|
664 | ' GUID to define default synth, placed in AudioPath configuration file.
|
---|
665 | Dim GUID_Synth_Default = [&H26bb9432, &H45fe, &H48d3, [&Ha3, &H75, &H24, &H72, &Hc5, &He3, &He7, &H86]] As GUID
|
---|
666 |
|
---|
667 | ' GUIDs to define default buffer configurations to place in AudioPath configuration file.
|
---|
668 | Dim GUID_Buffer_Reverb = [&H186cc541, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
669 | Dim GUID_Buffer_EnvReverb = [&H186cc542, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
670 | Dim GUID_Buffer_Stereo = [&H186cc545, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
671 | Dim GUID_Buffer_3D_Dry = [&H186cc546, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
672 | Dim GUID_Buffer_Mono = [&H186cc547, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
|
---|
673 |
|
---|
674 | ' IID's
|
---|
675 | Dim IID_IDirectMusicLoader = [&H2ffaaca2, &H5dca, &H11d2, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
|
---|
676 | Dim IID_IDirectMusicGetLoader = [&H68a04844, &Hd13d, &H11d1, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
|
---|
677 | Dim IID_IDirectMusicObject = [&Hd2ac28b5, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
678 | Dim IID_IDirectMusicSegment = [&Hf96029a2, &H4282, &H11d2, [&H87, &H17, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
679 | Dim IID_IDirectMusicSegmentState = [&Ha3afdcc7, &Hd3ee, &H11d1, [&Hbc, &H8d, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
680 | Dim IID_IDirectMusicPerformance = [&H7d43d03, &H6523, &H11d2, [&H87, &H1d, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
681 | Dim IID_IDirectMusicGraph = [&H2befc277, &H5497, &H11d2, [&Hbc, &Hcb, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
|
---|
682 | Dim IID_IDirectMusicStyle = [&Hd2ac28bd, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
683 | Dim IID_IDirectMusicChordMap = [&Hd2ac28be, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
684 | Dim IID_IDirectMusicComposer = [&Hd2ac28bf, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
685 | Dim IID_IDirectMusicBand = [&Hd2ac28c0, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
686 |
|
---|
687 | ' Alternate interface IDs, available in DX7 release and after.
|
---|
688 | Dim IID_IDirectMusicPerformance2 = [&H6fc2cae0, &Hbc78, &H11d2, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
|
---|
689 | Dim IID_IDirectMusicSegment2 = [&Hd38894d1, &Hc052, &H11d2, [&H87, &H2f, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
|
---|
690 |
|
---|
691 | ' Interface IDs for DX8
|
---|
692 | ' changed interfaces (GUID only)
|
---|
693 | Dim IID_IDirectMusicLoader8 = [&H19e7c08c, &Ha44, &H4e6a, [&Ha1, &H16, &H59, &H5a, &H7c, &Hd5, &Hde, &H8c]] As GUID
|
---|
694 | Dim IID_IDirectMusicPerformance8 = [&H679c4137, &Hc62e, &H4147, [&Hb2, &Hb4, &H9d, &H56, &H9a, &Hcb, &H25, &H4c]] As GUID
|
---|
695 | Dim IID_IDirectMusicSegment8 = [&Hc6784488, &H41a3, &H418f, [&Haa, &H15, &Hb3, &H50, &H93, &Hba, &H42, &Hd4]] As GUID
|
---|
696 | Dim IID_IDirectMusicSegmentState8 = [&Ha50e4730, &Hae4, &H48a7, [&H98, &H39, &Hbc, &H4, &Hbf, &He0, &H77, &H72]] As GUID
|
---|
697 | Dim IID_IDirectMusicStyle8 = [&Hfd24ad8a, &Ha260, &H453d, [&Hbf, &H50, &H6f, &H93, &H84, &Hf7, &H9, &H85]] As GUID
|
---|
698 | ' new interfaces (GUID + alias)
|
---|
699 | Dim IID_IDirectMusicPatternTrack = [&H51c22e10, &Hb49f, &H46fc, [&Hbe, &Hc2, &He6, &H28, &H8f, &Hb9, &Hed, &He6]] As GUID
|
---|
700 | Dim IID_IDirectMusicScript = [&H2252373a, &H5814, &H489b, [&H82, &H9, &H31, &Hfe, &Hde, &Hba, &Hf1, &H37]] As GUID ' {2252373A-5814-489b-8209-31FEDEBAF137}
|
---|
701 | Dim IID_IDirectMusicScript8 As GUID: IID_IDirectMusicScript8=IID_IDirectMusicScript
|
---|
702 | Dim IID_IDirectMusicContainer = [&H9301e386, &H1f22, &H11d3, [&H82, &H26, &Hd2, &Hfa, &H76, &H25, &H5d, &H47]] As GUID
|
---|
703 | Dim IID_IDirectMusicContainer8 As GUID: IID_IDirectMusicContainer8=IID_IDirectMusicContainer
|
---|
704 | Dim IID_IDirectMusicAudioPath = [&Hc87631f5, &H23be, &H4986, [&H88, &H36, &H5, &H83, &H2f, &Hcc, &H48, &Hf9]] As GUID
|
---|
705 | Dim IID_IDirectMusicAudioPath8 As GUID: IID_IDirectMusicAudioPath8=IID_IDirectMusicAudioPath
|
---|
706 | ' unchanged interfaces (alias only)
|
---|
707 | Dim IID_IDirectMusicGetLoader8 As GUID: IID_IDirectMusicGetLoader8=IID_IDirectMusicGetLoader
|
---|
708 | Dim IID_IDirectMusicChordMap8 As GUID: IID_IDirectMusicChordMap8=IID_IDirectMusicChordMap
|
---|
709 | Dim IID_IDirectMusicGraph8 As GUID: IID_IDirectMusicGraph8=IID_IDirectMusicGraph
|
---|
710 | Dim IID_IDirectMusicBand8 As GUID: IID_IDirectMusicBand8=IID_IDirectMusicBand
|
---|
711 | Dim IID_IDirectMusicObject8 As GUID: IID_IDirectMusicObject8=IID_IDirectMusicObject
|
---|
712 | Dim IID_IDirectMusicComposer8 As GUID: IID_IDirectMusicComposer8=IID_IDirectMusicComposer
|
---|
713 |
|
---|
714 |
|
---|
715 | #endif '_INC_DMUSIC
|
---|