source: branch/egtra-gdiplus/directx9/dmusic.sbp@ 353

Last change on this file since 353 was 1, checked in by (none), 18 years ago
File size: 41.1 KB
Line 
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
14TypeDef REFERENCE_TIME = Int64
15TypeDef MUSIC_TIME = Long
16
17
18' For DMUS_PMSG dwFlags
19Const 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
28End Enum
29
30Const 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
47End Enum
48
49Const DMUS_PCHANNEL_BROADCAST_PERFORMANCE = &HFFFFFFFF 'PMsg is sent on all PChannels of the performance.
50Const DMUS_PCHANNEL_BROADCAST_AUDIOPATH = &HFFFFFFFE 'PMsg is sent on all PChannels of the audio path.
51Const DMUS_PCHANNEL_BROADCAST_SEGMENT = &HFFFFFFFD 'PMsg is sent on all PChannels of the segment.
52Const DMUS_PCHANNEL_BROADCAST_GROUPS = &HFFFFFFFC 'A duplicate PMsg is for each Channels Groups in the performance.
53
54Const DMUS_PATH_SEGMENT = &H1000 'Get the segment itself (from a segment state.)
55Const DMUS_PATH_SEGMENT_TRACK = &H1100 'Look in Track List of Segment.
56Const DMUS_PATH_SEGMENT_GRAPH = &H1200 'Get the segment's tool graph.
57Const DMUS_PATH_SEGMENT_TOOL = &H1300 'Look in Tool Graph of Segment.
58Const DMUS_PATH_AUDIOPATH = &H2000 'Get the audiopath itself (from a segment state.)
59Const DMUS_PATH_AUDIOPATH_GRAPH = &H2200 'Get the audiopath's tool graph.
60Const DMUS_PATH_AUDIOPATH_TOOL = &H2300 'Look in Tool Graph of Audio Path.
61Const DMUS_PATH_PERFORMANCE = &H3000 'Access the performance.
62Const DMUS_PATH_PERFORMANCE_GRAPH = &H3200 'Get the performance's tool graph.
63Const DMUS_PATH_PERFORMANCE_TOOL = &H3300 'Look in Tool Graph of Performance.
64Const DMUS_PATH_PORT = &H4000 'Access the synth.
65Const DMUS_PATH_BUFFER = &H6000 'Look in DirectSoundBuffer.
66Const DMUS_PATH_BUFFER_DMO = &H6100 'Access a DMO in the buffer.
67Const DMUS_PATH_MIXIN_BUFFER = &H7000 'Look in a global mixin buffer.
68Const DMUS_PATH_MIXIN_BUFFER_DMO = &H7100 'Access a DMO in a global mixin buffer.
69Const DMUS_PATH_PRIMARY_BUFFER = &H8000 'Access the primary buffer.
70
71Const DMUS_PCHANNEL_ALL = &HFFFFFFFB
72
73Type 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
86End Type
87
88Const DMUS_APATH_SHARED_STEREOPLUSREVERB = 1
89Const DMUS_APATH_DYNAMIC_3D = 6
90Const DMUS_APATH_DYNAMIC_MONO = 7
91Const DMUS_APATH_DYNAMIC_STEREO = 8
92
93' For DMUS_AUDIOPARAMS dwFeatures
94Const DMUS_AUDIOF_3D = &H1
95Const DMUS_AUDIOF_ENVIRON = &H2
96Const DMUS_AUDIOF_EAX = &H4
97Const DMUS_AUDIOF_DMOS = &H8
98Const DMUS_AUDIOF_STREAMING = &H10
99Const DMUS_AUDIOF_BUFFERS = &H20
100Const DMUS_AUDIOF_ALL = &H3F
101
102' For DMUS_AUDIOPARAMS dwValidData
103Const DMUS_AUDIOPARAMS_FEATURES = &H00000001
104Const DMUS_AUDIOPARAMS_VOICES = &H00000002
105Const DMUS_AUDIOPARAMS_SAMPLERATE = &H00000004
106Const DMUS_AUDIOPARAMS_DEFAULTSYNTH = &H00000008
107
108Type 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
116End Type
117
118' DMUS_SEGF_FLAGS correspond to IDirectMusicPerformance::PlaySegment
119Const 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
143End Enum
144
145Const DMUS_SEG_REPEAT_INFINITE = &HFFFFFFFF 'For IDirectMusicSegment::SetRepeat
146Const DMUS_SEG_ALLTRACKS = &H80000000 'For IDirectMusicSegment::SetParam() and SetTrackConfig() - selects all tracks instead on nth index.
147Const DMUS_SEG_ANYTRACK = &H80000000 'For IDirectMusicSegment::GetParam() - checks each track until it finds one that returns data (not DMUS_E_NOT_FOUND.)
148
149Const 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
158End Enum
159
160' The following flags are sent inside the DMUS_CHORD_KEY.dwFlags parameter
161Const Enum DMUS_CHORDKEYF_FLAGS
162 DMUS_CHORDKEYF_SILENT = 1 'is the chord silent?
163End Enum
164
165Const DMUS_MAXSUBCHORD = 8
166Type 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
173End Type
174Type 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
183End Type
184
185Type 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
203End Type
204
205Const DMUS_MAX_NAME = 64
206Const DMUS_MAX_CATEGORY = 64
207Const DMUS_MAX_FILENAME = MAX_PATH
208
209Type DMUS_VERSION
210 dwVersionMS As DWord
211 dwVersionLS As DWord
212End Type
213
214Type DMUS_TIMESIGNATURE
215 mtTime As MUSIC_TIME
216 bBeatsPerMeasure As Byte
217 bBeat As Byte
218 wGridsPerBeat As Word
219End Type
220
221' For DMUS_OBJECTDESC dwValidData
222Const DMUS_OBJ_OBJECT = 1 << 0 'Object GUID is valid.
223Const DMUS_OBJ_CLASS = 1 << 1 'Class GUID is valid.
224Const DMUS_OBJ_NAME = 1 << 2 'Name is valid.
225Const DMUS_OBJ_CATEGORY = 1 << 3 'Category is valid.
226Const DMUS_OBJ_FILENAME = 1 << 4 'File path is valid.
227Const DMUS_OBJ_FULLPATH = 1 << 5 'Path is full path.
228Const DMUS_OBJ_URL = 1 << 6 'Path is URL.
229Const DMUS_OBJ_VERSION = 1 << 7 'Version is valid.
230Const DMUS_OBJ_DATE = 1 << 8 'Date is valid.
231Const DMUS_OBJ_LOADED = 1 << 9 'Object is currently loaded in memory.
232Const DMUS_OBJ_MEMORY = 1 << 10 'Object is pointed to by pbMemData.
233Const DMUS_OBJ_STREAM = 1 << 11 'Object is stored in pStream.
234
235Type 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
248End Type
249
250Type 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
259End Type
260
261' Track configuration flags, used with IDirectMusicSegment8::SetTrackConfig()
262Const DMUS_TRACKCONFIG_OVERRIDE_ALL = 1 'This track should get parameters from this segment before controlling and primary tracks.
263Const DMUS_TRACKCONFIG_OVERRIDE_PRIMARY = 2 'This track should get parameters from this segment before the primary segment tracks.
264Const DMUS_TRACKCONFIG_FALLBACK = 4 'This track should get parameters from this segment if the primary and controlling segments don't succeed.
265Const DMUS_TRACKCONFIG_CONTROL_ENABLED = 8 'GetParam() enabled for this track.
266Const DMUS_TRACKCONFIG_PLAY_ENABLED = &H10 'Play() enabled for this track.
267Const DMUS_TRACKCONFIG_NOTIFICATION_ENABLED = &H20 'Notifications enabled for this track.
268Const DMUS_TRACKCONFIG_PLAY_CLOCKTIME = &H40 'This track plays in clock time, not music time.
269Const DMUS_TRACKCONFIG_PLAY_COMPOSE = &H80 'This track should regenerate data each time it starts playing.
270Const DMUS_TRACKCONFIG_LOOP_COMPOSE = &H100 'This track should regenerate data each time it repeats.
271Const DMUS_TRACKCONFIG_COMPOSING = &H200 'This track is used to compose other tracks.
272Const DMUS_TRACKCONFIG_CONTROL_PLAY = &H10000 'This track, when played in a controlling segment, overrides playback of primary segment tracks.
273Const 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
275Const DMUS_TRACKCONFIG_TRANS1_FROMSEGSTART = &H400 'Get track info from start of From segment
276Const DMUS_TRACKCONFIG_TRANS1_FROMSEGCURRENT = &H800 'Get track info from current place in From segment
277Const DMUS_TRACKCONFIG_TRANS1_TOSEGSTART = &H1000 'Get track info from start of To segment
278Const DMUS_TRACKCONFIG_DEFAULT = DMUS_TRACKCONFIG_CONTROL_ENABLED or DMUS_TRACKCONFIG_PLAY_ENABLED or DMUS_TRACKCONFIG_NOTIFICATION_ENABLED
279
280
281'-----------------
282' Interfaces
283'-----------------
284
285Class IDirectMusicBand
286 Inherits IUnknown
287Public
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
292End Class
293TypeDef IDirectMusicBand8 = IDirectMusicBand
294
295Class IDirectMusicObject
296 Inherits IUnknown
297Public
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
302End Class
303TypeDef IDirectMusicObject8 = IDirectMusicObject
304
305Class IDirectMusicLoader
306 Inherits IUnknown
307Public
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
318End Class
319
320Class IDirectMusicLoader8
321 Inherits IDirectMusicLoader
322Public
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
327End Class
328
329Class IDirectMusicGetLoader
330 Inherits IUnknown
331Public
332 'IDirectMusicGetLoader
333 Abstract Function GetLoader(ppLoader As **IDirectMusicLoader) As DWord
334End Class
335
336Class IDirectMusicSegment
337 Inherits IUnknown
338Public
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
363End Class
364
365Class IDirectMusicSegment8
366 Inherits IDirectMusicSegment
367Public
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
374End Class
375
376Class IDirectMusicSegmentState
377 Inherits IUnknown
378Public
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
385End Class
386
387Class IDirectMusicSegmentState8
388 Inherits IDirectMusicSegmentState
389Public
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
393End Class
394
395Class IDirectMusicAudioPath
396 Inherits IUnknown
397Public
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
403End Class
404TypeDef IDirectMusicAudioPath8 = IDirectMusicAudioPath
405
406Class IDirectMusicPerformance
407 Inherits IUnknown
408Public
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
451End Class
452
453Class IDirectMusicPerformance8
454 Inherits IDirectMusicPerformance
455Public
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
466End Class
467
468Class IDirectMusicGraph
469 Inherits IUnknown
470Public
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
476End Class
477
478Class IDirectMusicStyle
479 Inherits IUnknown
480Public
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
493End Class
494
495Class IDirectMusicStyle8
496 Inherits IDirectMusicStyle
497Public
498 'IDirectMusicStyle8
499 Abstract Function EnumPattern(dwIndex As DWord, dwPatternType As DWord, pwszName As *WCHAR) As DWord
500End Class
501
502Class IDirectMusicChordMap
503 Inherits IUnknown
504Public
505 'IDirectMusicChordMap
506 Abstract Function GetScale(pdwScale As DWordPtr) As DWord
507End Class
508TypeDef IDirectMusicChordMap8 = IDirectMusicChordMap
509
510Class IDirectMusicComposer
511 Inherits IUnknown
512Public
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
520End Class
521TypeDef IDirectMusicComposer8 = IDirectMusicComposer
522
523
524'-----------------
525' CLSID and IID
526'-----------------
527
528' CLSID's
529Dim CLSID_DirectMusicPerformance = [&Hd2ac2881, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
530Dim CLSID_DirectMusicSegment = [&Hd2ac2882, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
531Dim CLSID_DirectMusicSegmentState = [&Hd2ac2883, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
532Dim CLSID_DirectMusicGraph = [&Hd2ac2884, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
533Dim CLSID_DirectMusicStyle = [&Hd2ac288a, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
534Dim CLSID_DirectMusicChordMap = [&Hd2ac288f, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
535Dim CLSID_DirectMusicComposer = [&Hd2ac2890, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
536Dim CLSID_DirectMusicLoader = [&Hd2ac2892, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
537Dim CLSID_DirectMusicBand = [&H79ba9e00, &Hb6ee, &H11d1, [&H86, &Hbe, &H0, &Hc0, &H4f, &Hbf, &H8f, &Hef]] As GUID
538
539' New CLSID's for DX8
540Dim CLSID_DirectMusicPatternTrack = [&Hd2ac2897, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
541Dim CLSID_DirectMusicScript = [&H810b5013, &He88d, &H11d2, [&H8b, &Hc1, &H0, &H60, &H8, &H93, &Hb1, &Hb6]] As GUID ' {810B5013-E88D-11d2-8BC1-00600893B1B6}
542Dim CLSID_DirectMusicContainer = [&H9301e380, &H1f22, &H11d3, [&H82, &H26, &Hd2, &Hfa, &H76, &H25, &H5d, &H47]] As GUID
543Dim CLSID_DirectSoundWave = [&H8a667154, &Hf9cb, &H11d2, [&Had, &H8a, &H0, &H60, &Hb0, &H57, &H5a, &Hbc]] As GUID
544Dim 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.
547Dim GUID_DirectMusicAllTypes = [&Hd2ac2893, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
548
549' Notification guids
550Dim GUID_NOTIFICATION_SEGMENT = [&Hd2ac2899, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
551Dim GUID_NOTIFICATION_PERFORMANCE = [&H81f75bc5, &H4e5d, &H11d2, [&Hbc, &Hc7, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
552Dim GUID_NOTIFICATION_MEASUREANDBEAT = [&Hd2ac289a, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
553Dim GUID_NOTIFICATION_CHORD = [&Hd2ac289b, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
554Dim GUID_NOTIFICATION_COMMAND = [&Hd2ac289c, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
555Dim 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
559Dim 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
562Dim 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)
566Dim 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
569Dim 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
572Dim 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
575Dim 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
578Dim 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
581Dim 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
584Dim 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
587Dim 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
590Dim GUID_BandParam = [&H2bb1938, &Hcb8b, &H11d2, [&H8b, &Hb9, &H0, &H60, &H8, &H93, &Hb1, &Hb6]] As GUID
591Type DMUS_BAND_PARAM
592 mtTimePhysical As MUSIC_TIME
593 pBand As *IDirectMusicBand
594End Type
595
596' Obsolete -- doesn't distinguish physical and logical time. Use GUID_BandParam instead.
597Dim 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
600Dim 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
603Dim 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
609Dim GUID_Download = [&Hd2ac28a7, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
610
611' Unload bands/waves for the IDirectMusicSegment
612Dim GUID_Unload = [&Hd2ac28a8, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
613
614' Connect segment's bands to an IDirectMusicCollection
615Dim GUID_ConnectToDLSCollection = [&H1db1ae6b, &He92e, &H11d1, [&Ha8, &Hc5, &H0, &Hc0, &H4f, &Ha3, &H72, &H6e]] As GUID
616
617' Enable/disable autodownloading of bands/waves
618Dim GUID_Enable_Auto_Download = [&Hd2ac28a9, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
619Dim GUID_Disable_Auto_Download = [&Hd2ac28aa, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
620
621' Clear all bands
622Dim 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
625Dim 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
630Dim GUID_DisableTimeSig = [&H45fc707b, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
631Dim GUID_EnableTimeSig = [&H45fc707c, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
632Dim GUID_DisableTempo = [&H45fc707d, &H1db4, &H11d2, [&Hbc, &Hac, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
633Dim 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.
638Dim 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
641Dim GUID_Variations = [&H11f72cce, &H26e6, &H4ecd, [&Haf, &H2e, &Hd6, &H68, &He6, &H67, &H7, &Hd8]] As GUID
642Type DMUS_VARIATIONS_PARAM
643 dwPChannelsUsed As DWord
644 padwPChannels As DWordPtr
645 padwVariations As DWordPtr
646End Type
647
648' Download bands/waves for the IDirectMusicSegment, passed an IDirectMusicAudioPath instead of an IDirectMusicPerformance
649Dim 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
652Dim GUID_UnloadFromAudioPath = [&H9f2c0342, &Hc5c4, &H11d3, [&H9b, &Hd1, &H44, &H45, &H53, &H54, &H0, &H0]] As GUID
653
654
655' Global data guids
656Dim GUID_PerfMasterTempo = [&Hd2ac28b0, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
657Dim GUID_PerfMasterVolume = [&Hd2ac28b1, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
658Dim GUID_PerfMasterGrooveLevel = [&Hd2ac28b2, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
659Dim GUID_PerfAutoDownload = [&Hfb09565b, &H3631, &H11d2, [&Hbc, &Hb8, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
660
661' GUID for default GM/GS dls collection.
662Dim 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.
665Dim 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.
668Dim GUID_Buffer_Reverb = [&H186cc541, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
669Dim GUID_Buffer_EnvReverb = [&H186cc542, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
670Dim GUID_Buffer_Stereo = [&H186cc545, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
671Dim GUID_Buffer_3D_Dry = [&H186cc546, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
672Dim GUID_Buffer_Mono = [&H186cc547, &Hdb29, &H11d3, [&H9b, &Hd1, &H0, &H80, &Hc7, &H15, &Ha, &H74]] As GUID
673
674' IID's
675Dim IID_IDirectMusicLoader = [&H2ffaaca2, &H5dca, &H11d2, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
676Dim IID_IDirectMusicGetLoader = [&H68a04844, &Hd13d, &H11d1, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
677Dim IID_IDirectMusicObject = [&Hd2ac28b5, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
678Dim IID_IDirectMusicSegment = [&Hf96029a2, &H4282, &H11d2, [&H87, &H17, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
679Dim IID_IDirectMusicSegmentState = [&Ha3afdcc7, &Hd3ee, &H11d1, [&Hbc, &H8d, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
680Dim IID_IDirectMusicPerformance = [&H7d43d03, &H6523, &H11d2, [&H87, &H1d, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
681Dim IID_IDirectMusicGraph = [&H2befc277, &H5497, &H11d2, [&Hbc, &Hcb, &H0, &Ha0, &Hc9, &H22, &He6, &Heb]] As GUID
682Dim IID_IDirectMusicStyle = [&Hd2ac28bd, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
683Dim IID_IDirectMusicChordMap = [&Hd2ac28be, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
684Dim IID_IDirectMusicComposer = [&Hd2ac28bf, &Hb39b, &H11d1, [&H87, &H4, &H0, &H60, &H8, &H93, &Hb1, &Hbd]] As GUID
685Dim 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.
688Dim IID_IDirectMusicPerformance2 = [&H6fc2cae0, &Hbc78, &H11d2, [&Haf, &Ha6, &H0, &Haa, &H0, &H24, &Hd8, &Hb6]] As GUID
689Dim 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)
693Dim IID_IDirectMusicLoader8 = [&H19e7c08c, &Ha44, &H4e6a, [&Ha1, &H16, &H59, &H5a, &H7c, &Hd5, &Hde, &H8c]] As GUID
694Dim IID_IDirectMusicPerformance8 = [&H679c4137, &Hc62e, &H4147, [&Hb2, &Hb4, &H9d, &H56, &H9a, &Hcb, &H25, &H4c]] As GUID
695Dim IID_IDirectMusicSegment8 = [&Hc6784488, &H41a3, &H418f, [&Haa, &H15, &Hb3, &H50, &H93, &Hba, &H42, &Hd4]] As GUID
696Dim IID_IDirectMusicSegmentState8 = [&Ha50e4730, &Hae4, &H48a7, [&H98, &H39, &Hbc, &H4, &Hbf, &He0, &H77, &H72]] As GUID
697Dim IID_IDirectMusicStyle8 = [&Hfd24ad8a, &Ha260, &H453d, [&Hbf, &H50, &H6f, &H93, &H84, &Hf7, &H9, &H85]] As GUID
698' new interfaces (GUID + alias)
699Dim IID_IDirectMusicPatternTrack = [&H51c22e10, &Hb49f, &H46fc, [&Hbe, &Hc2, &He6, &H28, &H8f, &Hb9, &Hed, &He6]] As GUID
700Dim IID_IDirectMusicScript = [&H2252373a, &H5814, &H489b, [&H82, &H9, &H31, &Hfe, &Hde, &Hba, &Hf1, &H37]] As GUID ' {2252373A-5814-489b-8209-31FEDEBAF137}
701Dim IID_IDirectMusicScript8 As GUID: IID_IDirectMusicScript8=IID_IDirectMusicScript
702Dim IID_IDirectMusicContainer = [&H9301e386, &H1f22, &H11d3, [&H82, &H26, &Hd2, &Hfa, &H76, &H25, &H5d, &H47]] As GUID
703Dim IID_IDirectMusicContainer8 As GUID: IID_IDirectMusicContainer8=IID_IDirectMusicContainer
704Dim IID_IDirectMusicAudioPath = [&Hc87631f5, &H23be, &H4986, [&H88, &H36, &H5, &H83, &H2f, &Hcc, &H48, &Hf9]] As GUID
705Dim IID_IDirectMusicAudioPath8 As GUID: IID_IDirectMusicAudioPath8=IID_IDirectMusicAudioPath
706' unchanged interfaces (alias only)
707Dim IID_IDirectMusicGetLoader8 As GUID: IID_IDirectMusicGetLoader8=IID_IDirectMusicGetLoader
708Dim IID_IDirectMusicChordMap8 As GUID: IID_IDirectMusicChordMap8=IID_IDirectMusicChordMap
709Dim IID_IDirectMusicGraph8 As GUID: IID_IDirectMusicGraph8=IID_IDirectMusicGraph
710Dim IID_IDirectMusicBand8 As GUID: IID_IDirectMusicBand8=IID_IDirectMusicBand
711Dim IID_IDirectMusicObject8 As GUID: IID_IDirectMusicObject8=IID_IDirectMusicObject
712Dim IID_IDirectMusicComposer8 As GUID: IID_IDirectMusicComposer8=IID_IDirectMusicComposer
713
714
715#endif '_INC_DMUSIC
Note: See TracBrowser for help on using the repository browser.