Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2847 lines
113 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: dmi.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. //Have C code define these as longs so we dont have to cast to enum
  11. //
  12. #ifdef C_ONLY
  13. #define CONST_DSSCLFLAGS LONG
  14. #define CONST_DSSPEAKERFLAGS LONG
  15. #define CONST_DSBSTATUSFLAGS LONG
  16. #define CONST_DSBPLAYFLAGS LONG
  17. #define CONST_DSBLOCKFLAGS LONG
  18. #define CONST_DS3DAPPLYFLAGS LONG
  19. #define CONST_DS3DMODEFLAGS LONG
  20. #define CONST_DSCBSTATUSFLAGS LONG
  21. #define CONST_DSCBSTARTFLAGS LONG
  22. #define CONST_DSCBLOCKFLAGS LONG
  23. #define CONST_DSBCAPSFLAGS LONG
  24. #define CONST_DSCBCAPSFLAGS LONG
  25. #define CONST_DSCCAPSFLAGS LONG
  26. #define CONST_DSCAPSFLAGS LONG
  27. #define CONST_WAVEFORMATFLAGS LONG
  28. #define CONST_DMUS_PC_FLAGS LONG
  29. #define CONST_DMUS_PC_CLASS LONG
  30. #define CONST_DMUS_PORT_TYPE LONG
  31. #define CONST_DMUSIC_PATH LONG
  32. #define CONST_DMUSIC_STANDARD_AUDIO_PATH LONG
  33. #define CONST_DMUS_SEGF_FLAGS LONG
  34. #define CONST_DMUS_PCHANNEL LONG
  35. #define CONST_DMUS_AUDIO LONG
  36. #define CONST_DMUS_AUDIOPARAMS LONG
  37. #define CONST_DSFX_I3DL2_MATERIAL_PRESET LONG
  38. #define CONST_DSFX_I3DL2_ENVIRONMENT_PRESETS LONG
  39. #define CONST_DSFXGARGLE_RATEHZ LONG
  40. #define CONST_DSFXGARGLE_WAVE LONG
  41. #define CONST_DSFX_WAVE LONG
  42. #define CONST_DSFX_WETDRY LONG
  43. #define CONST_DSFX_DEPTH LONG
  44. #define CONST_DSFX_FEEDBACK LONG
  45. #define CONST_DSFX_FREQUENCY LONG
  46. #define CONST_DSFX_DELAY LONG
  47. #define CONST_DSFX_PHASE LONG
  48. #define CONST_DSFX_DELAY LONG
  49. #define CONST_DSFX_PANDELAY LONG
  50. #define CONST_DSFXDISTORTION_GAIN LONG
  51. #define CONST_DSFXDISTORTION_EDGE LONG
  52. #define CONST_DSFXDISTORTION_POSTEQCENTERFREQUENCY LONG
  53. #define CONST_DSFXDISTORTION_POSTEQBANDWIDTH LONG
  54. #define CONST_DSFXDISTORTION_PRELOWPASSCUTOFF LONG
  55. #define CONST_DSFX_LEFTRIGHTDELAY LONG
  56. #if 0
  57. #define CONST_I3DL2SOURCEFLAGS LONG
  58. #define CONST_I3DL2SOURCEDIRECT LONG
  59. #define CONST_I3DL2SOURCEDIRECTHF LONG
  60. #define CONST_I3DL2SOURCEROOM LONG
  61. #define CONST_I3DL2SOURCEROOMHF LONG
  62. #define CONST_I3DL2SOURCEROOMROLLOFFFACTOR LONG
  63. #define CONST_I3DL2SOURCEOBSTRUCTION LONG
  64. #define CONST_I3DL2SOURCEOBSTRUCTIONLFRATIO LONG
  65. #define CONST_I3DL2SOURCEOCCLUSION LONG
  66. #define CONST_I3DL2SOURCEOCCLUSIONLFRATIO LONG
  67. #endif
  68. #define CONST_DSFX_I3DL2_ENVIRONMENT_PRESETS LONG
  69. #define CONST_DSFX_I3DL2_MATERIAL_PRESET LONG
  70. #define CONST_DSFX_I3DL2REVERB_QUALITY LONG
  71. //We need this constant as an enum in C
  72. //#define CONST_DMUS_NOTIFICATION_TYPE LONG
  73. #endif
  74. //Defines common to all languages LONG
  75. #define MUSIC_TIME LONG
  76. #define REFERENCE_TIME LONG
  77. //Renames for VB legibility
  78. #ifdef VB_ONLY
  79. //
  80. // Direct Sound/Music Structure names
  81. //
  82. #define DSBCAPS_CDES DSBCAPS
  83. #define DSCAPS_CDESC DSCAPS
  84. #define WAVEFORMATEX_CDESC WAVEFORMATEX
  85. #define DSBUFFERDESC_CDESC DSBUFFERDESC
  86. #define DSCURSORS_CDESC DSCURSORS
  87. #define DS3DBUFFER_CDESC DS3DBUFFER
  88. #define DS3DLISTENER_CDESC DS3DLISTENER
  89. #define DSCBCAPS_CDESC DSCBCAPS
  90. #define DSCCAPS_CDESC DSCCAPS
  91. #define DSBCAPS_CDESC DSBCAPS
  92. #define DSCBUFFERDESC_CDESC DSCBUFFERDESC
  93. #define DSBPOSITIONNOTIFY_CDESC DSBPOSITIONNOTIFY
  94. #define DSCEFFECTDESC_CDESC DSCEFFECTDESC
  95. #define DSEFFECTDESC_CDESC DSEFFECTDESC
  96. #define DMUS_TIMESIGNATURE_CDESC DMUS_TIMESIGNATURE
  97. #define DMUS_NOTIFICATION_PMSG_CDESC DMUS_NOTIFICATION_PMSG
  98. #define DMUS_CURVE_PMSG_CDESC DMUS_CURVE_PMSG
  99. #define DMUS_NOTE_PMSG_CDESC DMUS_NOTE_PMSG
  100. #define DMUS_AUDIOPARAMS_CDESC DMUS_AUDIOPARAMS
  101. #define DSFXSEND_CDESC DSFXSEND
  102. #define DSFXCHORUS_CDESC DSFXCHORUS
  103. #define DSFXFLANGER_CDESC DSFXFLANGER
  104. #define DSFXECHO_CDESC DSFXECHO
  105. #define DSFXDISTORTION_CDESC DSFXDISTORTION
  106. #define DSFXCOMPRESSOR_CDESC DSFXCOMPRESSOR
  107. #define DSFXGARGLE_CDESC DSFXGARGLE
  108. #define DSFXI3DL2OBSTRUCTION_CDESC DSFXI3DL2OBSTRUCTION
  109. #define DSFXI3DL2OCCLUSION_CDESC DSFXI3DL2OCCLUSION
  110. #if 0
  111. #define DSFXI3DL2SOURCE_CDESC DSFXI3DL2SOURCE
  112. #endif
  113. #define DSFXI3DL2REVERB_CDESC DSFXI3DL2REVERB
  114. #define DSFXWAVESREVERB_CDESC DSFXWAVESREVERB
  115. #define DSFXPARAMEQ_CDESC DSFXPARAMEQ
  116. ///////////////////////////////////////////////////////////////////////////
  117. // Interfaces
  118. ///////////////////////////////////////////////////////////////////////////
  119. // Direct Sound Interfaces
  120. #define I_dxj_DirectSound DirectSound8
  121. #define I_dxj_DirectSoundBuffer DirectSoundSecondaryBuffer8
  122. #define I_dxj_DirectSoundPrimaryBuffer DirectSoundPrimaryBuffer8
  123. #define I_dxj_DirectSound3dListener DirectSound3DListener8
  124. #define I_dxj_DirectSound3dBuffer DirectSound3DBuffer8
  125. #define I_dxj_DirectSoundCapture DirectSoundCapture8
  126. #define I_dxj_DirectSoundCaptureBuffer DirectSoundCaptureBuffer8
  127. #define I_dxj_DSEnum DirectSoundEnum8
  128. // Direct Sound Effects Interfaces
  129. #define I_dxj_DirectSoundFXSend DirectSoundFXSend8
  130. #define I_dxj_DirectSoundFXGargle DirectSoundFXGargle8
  131. #define I_dxj_DirectSoundFXChorus DirectSoundFXChorus8
  132. #define I_dxj_DirectSoundFXFlanger DirectSoundFXFlanger8
  133. #define I_dxj_DirectSoundFXEcho DirectSoundFXEcho8
  134. #define I_dxj_DirectSoundFXDistortion DirectSoundFXDistortion8
  135. #define I_dxj_DirectSoundFXCompressor DirectSoundFXCompressor8
  136. #if 0
  137. #define I_dxj_DirectSoundFXI3DL2Source DirectSoundFXI3DL2Source8
  138. #endif
  139. #define I_dxj_DirectSoundFXI3DL2Reverb DirectSoundFXI3DL2Reverb8
  140. #define I_dxj_DirectSoundFXParamEQ DirectSoundFXParamEq8
  141. #define I_dxj_DirectSoundFXWavesReverb DirectSoundFXWavesReverb8
  142. // Direct Music Interfaces
  143. #define I_dxj_DirectMusicCollection DirectMusicCollection8
  144. #define I_dxj_DirectMusicPerformance DirectMusicPerformance8
  145. #define I_dxj_DirectMusicSegmentState DirectMusicSegmentState8
  146. #define I_dxj_DirectMusicChordMap DirectMusicChordMap8
  147. #define I_dxj_DirectMusicStyle DirectMusicStyle8
  148. #define I_dxj_DirectMusicBand DirectMusicBand8
  149. #define I_dxj_DirectMusicComposer DirectMusicComposer8
  150. #define I_dxj_DirectMusicSegment DirectMusicSegment8
  151. #define I_dxj_DirectMusicLoader DirectMusicLoader8
  152. #define I_dxj_DirectMusicAudioPath DirectMusicAudioPath8
  153. #define I_dxj_DirectMusicSong DirectMusicSong8
  154. // Renamed Function names for VB readibility
  155. #define clone Clone
  156. #define setStartPoint SetStartPoint
  157. #define getStartPoint GetStartPoint
  158. #define setLoopPoints SetLoopPoints
  159. #define getLoopPointStart GetLoopPointStart
  160. #define getLoopPointEnd GetLoopPointEnd
  161. #define getLength GetLength
  162. #define setLength SetLength
  163. #define getRepeats GetRepeats
  164. #define setRepeats SetRepeats
  165. #define download Download
  166. #define unload Unload
  167. #define setAutoDownloadEnable SetAutoDownloadEnable
  168. #define setTempoEnable SetTempoEnable
  169. #define setTimeSigEnable SetTimeSigEnable
  170. #define setStandardMidiFile SetStandardMidiFile
  171. #define connectToCollection ConnectToCollection
  172. #define createSoundBuffer CreateSoundBuffer
  173. #define createSoundBufferFromFile CreateSoundBufferFromFile
  174. #define createSoundBufferFromResource CreateSoundBufferFromResource
  175. #define getCaps GetCaps
  176. #define duplicateSoundBuffer DuplicateSoundBuffer
  177. #define setCooperativeLevel SetCooperativeLevel
  178. #define getSpeakerConfig GetSpeakerConfig
  179. #define setSpeakerConfig SetSpeakerConfig
  180. #define getDirectSound3dListener GetDirectSound3DListener
  181. #define getCurrentPosition GetCurrentPosition
  182. #define getFormat GetFormat
  183. #define getVolume GetVolume
  184. #define getPan GetPan
  185. #define getStatus GetStatus
  186. #define writeBuffer WriteBuffer
  187. #define readBuffer ReadBuffer
  188. #define play Play
  189. #define setFormat SetFormat
  190. #define setVolume SetVolume
  191. #define setPan SetPan
  192. #define stop Stop
  193. #define restore Restore
  194. #define createSoundBuffer CreateSoundBuffer
  195. #define createSoundBufferFromFile CreateSoundBufferFromFile
  196. #define getCaps GetCaps
  197. #define initialize Initialize
  198. #define getDirectSound3dBuffer GetDirectSound3DBuffer
  199. #define getCaps GetCaps
  200. #define getCurrentPosition GetCurrentPosition
  201. #define getFrequency GetFrequency
  202. #define setCurrentPosition SetCurrentPosition
  203. #define setFrequency SetFrequency
  204. #define setNotificationPositions SetNotificationPositions
  205. #define saveToFile SaveToFile
  206. #define getAllParameters GetAllParameters
  207. #define getDistanceFactor GetDistanceFactor
  208. #define getDopplerFactor GetDopplerFactor
  209. #define getOrientation GetOrientation
  210. #define getPosition GetPosition
  211. #define getRolloffFactor GetRolloffFactor
  212. #define getVelocity GetVelocity
  213. #define setAllParameters SetAllParameters
  214. #define setDistanceFactor SetDistanceFactor
  215. #define setDopplerFactor SetDopplerFactor
  216. #define setOrientation SetOrientation
  217. #define setPosition SetPosition
  218. #define setRolloffFactor SetRolloffFactor
  219. #define setVelocity SetVelocity
  220. #define commitDeferredSettings CommitDeferredSettings
  221. #define getDirectSoundBuffer GetDirectSoundBuffer
  222. #define getDirectSoundBuffer GetDirectSoundBuffer
  223. #define getAllParameters GetAllParameters
  224. #define getConeAngles GetConeAngles
  225. #define getConeOrientation GetConeOrientation
  226. #define getConeOutsideVolume GetConeOutsideVolume
  227. #define getMaxDistance GetMaxDistance
  228. #define getMinDistance GetMinDistance
  229. #define getMode GetMode
  230. #define getPosition GetPosition
  231. #define getVelocity GetVelocity
  232. #define setAllParameters SetAllParameters
  233. #define setConeAngles SetConeAngles
  234. #define setConeOrientation SetConeOrientation
  235. #define setConeOutsideVolume SetConeOutsideVolume
  236. #define setMaxDistance SetMaxDistance
  237. #define setMinDistance SetMinDistance
  238. #define setMode SetMode
  239. #define setPosition SetPosition
  240. #define setVelocity SetVelocity
  241. #define createCaptureBuffer CreateCaptureBuffer
  242. #define getFormat GetFormat
  243. #define getStatus GetStatus
  244. #define start Start
  245. #define stop Stop
  246. #define writeBuffer WriteBuffer
  247. #define readBuffer ReadBuffer
  248. #define setNotificationPositions SetNotificationPositions
  249. #define getGuid GetGuid
  250. #define getDescription GetDescription
  251. #define getName GetName
  252. #define getCount GetCount
  253. #define loadSegment LoadSegment
  254. #define loadStyle LoadStyle
  255. #define loadBand LoadBand
  256. #define loadCollection LoadCollection
  257. #define loadSegmentFromResource LoadSegmentFromResource
  258. #define loadStyleFromResource LoadStyleFromResource
  259. #define loadBandFromResource LoadBandFromResource
  260. #define loadCollectionFromResource LoadCollectionFromResource
  261. #define setSearchDirectory SetSearchDirectory
  262. #define loadChordMap LoadChordMap
  263. #define loadChordMapFromResource LoadChordMapFromResource
  264. #define clone Clone
  265. #define setStartPoint SetStartPoint
  266. #define getStartPoint GetStartPoint
  267. #define setLoopPoints SetLoopPoints
  268. #define getLoopPointStart GetLoopPointStart
  269. #define getLoopPointEnd GetLoopPointEnd
  270. #define getLength GetLength
  271. #define setLength SetLength
  272. #define getRepeats GetRepeats
  273. #define setRepeats SetRepeats
  274. #define download Download
  275. #define unload Unload
  276. #define setAutoDownloadEnable SetAutoDownloadEnable
  277. #define setTempoEnable SetTempoEnable
  278. #define setTimeSigEnable SetTimeSigEnable
  279. #define setStandardMidiFile SetStandardMidiFile
  280. #define connectToCollection ConnectToCollection
  281. #define autoTransition AutoTransition
  282. #define composeSegmentFromTemplate ComposeSegmentFromTemplate
  283. #define composeSegmentFromShape ComposeSegmentFromShape
  284. #define composeTransition ComposeTransition
  285. #define composeTemplateFromShape ComposeTemplateFromShape
  286. #define changeChordMap ChangeChordMap
  287. #define createSegment CreateSegment
  288. #define download Download
  289. #define unload Unload
  290. #define getBandName GetBandName
  291. #define getBandCount GetBandCount
  292. #define getBand GetBand
  293. #define getDefaultBand GetDefaultBand
  294. #define getMotifName GetMotifName
  295. #define getMotifCount GetMotifCount
  296. #define getMotif GetMotif
  297. #define getTimeSignature GetTimeSignature
  298. #define getTempo GetTempo
  299. #define getScale GetScale
  300. #define getRepeats GetRepeats
  301. #define getSeek GetSeek
  302. #define getStartPoint GetStartPoint
  303. #define getStartTime GetStartTime
  304. #define getSegment GetSegment
  305. #define closeDown CloseDown
  306. #define getSegmentState GetSegmentState
  307. #define invalidate Invalidate
  308. #define isPlaying IsPlaying
  309. #define addNotificationType AddNotificationType
  310. #define removeNotificationType RemoveNotificationType
  311. #define setNotificationHandle SetNotificationHandle
  312. #define getNotificationPMSG GetNotificationPMSG
  313. #define musicToClockTime MusicToClockTime
  314. #define clockToMusicTime ClockToMusicTime
  315. #define getMusicTime GetMusicTime
  316. #define getClockTime GetClockTime
  317. #define getPrepareTime GetPrepareTime
  318. #define getBumperLength GetBumperLength
  319. #define getLatencyTime GetLatencyTime
  320. #define getQueueTime GetQueueTime
  321. #define getResolvedTime GetResolvedTime
  322. #define setPrepareTime SetPrepareTime
  323. #define setBumperLength SetBumperLength
  324. #define adjustTime AdjustTime
  325. #define setMasterAutoDownload SetMasterAutoDownload
  326. #define getMasterAutoDownload GetMasterAutoDownload
  327. #define setMasterTempo SetMasterTempo
  328. #define getMasterTempo GetMasterTempo
  329. #define setMasterVolume SetMasterVolume
  330. #define getMasterVolume GetMasterVolume
  331. #define setMasterGrooveLevel SetMasterGrooveLevel
  332. #define getMasterGrooveLevel GetMasterGrooveLevel
  333. #define getStyle GetStyle
  334. #define getChordMap GetChordMap
  335. #define getCommand GetCommand
  336. #define getGrooveLevel GetGrooveLevel
  337. #define getTempo GetTempo
  338. #define getTimeSig GetTimeSig
  339. #define sendNotePMSG SendNotePMSG
  340. #define sendCurvePMSG SendCurvePMSG
  341. #define sendMIDIPMSG SendMIDIPMSG
  342. #define sendPatchPMSG SendPatchPMSG
  343. #define sendTempoPMSG SendTempoPMSG
  344. #define sendTransposePMSG SendTransposePMSG
  345. #define sendTimeSigPMSG SendTimeSigPMSG
  346. #define buffer Buffer
  347. #define duplicate Duplicate
  348. #endif
  349. ///////////////////////////////////////////////////////////////////////////
  350. //
  351. // Interface List
  352. //
  353. ///////////////////////////////////////////////////////////////////////////
  354. //
  355. // DirectSound
  356. //
  357. interface I_dxj_DirectSound;
  358. interface I_dxj_DirectSoundBuffer;
  359. interface I_dxj_DirectSoundPrimaryBuffer;
  360. interface I_dxj_DirectSound3dBuffer;
  361. interface I_dxj_DirectSound3dListener;
  362. interface I_dxj_DirectSoundCapture;
  363. interface I_dxj_DirectSoundCaptureBuffer;
  364. interface I_dxj_DirectSoundNotify;
  365. interface I_dxj_DSEnum;
  366. #if 0
  367. interface I_dxj_DirectSoundFXSend;
  368. #endif
  369. interface I_dxj_DirectSoundFXGargle;
  370. interface I_dxj_DirectSoundFXChorus;
  371. interface I_dxj_DirectSoundFXFlanger;
  372. interface I_dxj_DirectSoundFXEcho;
  373. interface I_dxj_DirectSoundFXDistortion;
  374. interface I_dxj_DirectSoundFXCompressor;
  375. #if 0
  376. interface I_dxj_DirectSoundFXI3DL2Source;
  377. #endif
  378. interface I_dxj_DirectSoundFXI3DL2Reverb;
  379. interface I_dxj_DirectSoundFXParamEQ;
  380. interface I_dxj_DirectSoundFXWavesReverb;
  381. //
  382. // Direct Music
  383. //
  384. interface I_dxj_DirectMusicLoader;
  385. interface I_dxj_DirectMusicSegment;
  386. interface I_dxj_DirectMusicPerformance;
  387. interface I_dxj_DirectMusicComposer;
  388. interface I_dxj_DirectMusicBand;
  389. interface I_dxj_DirectMusicStyle;
  390. interface I_dxj_DirectMusicChordMap;
  391. interface I_dxj_DirectMusicSegmentState;
  392. interface I_dxj_DirectMusicCollection;
  393. interface I_dxj_DirectMusicAudioPath;
  394. #if 0
  395. interface I_dxj_DirectMusicSong;
  396. #endif
  397. ///////////////////////////////////////////////////////////////////////////
  398. //
  399. // Direct Sound Constants
  400. //
  401. ///////////////////////////////////////////////////////////////////////////
  402. #ifdef VB_ONLY
  403. [helpcontext(81004)]
  404. typedef enum CONST_DSFX_WAVESREVERB_INGAIN
  405. {
  406. DSFX_WAVESREVERB_INGAIN_MIN = -96,
  407. DSFX_WAVESREVERB_INGAIN_MAX = 0
  408. } CONST_DSFX_WAVESREVERB_INGAIN;
  409. [helpcontext(81005)]
  410. typedef enum CONST_DSFX_WAVESREVERB_REVERBMIX
  411. {
  412. DSFX_WAVESREVERB_REVERBMIX_MIN = -96,
  413. DSFX_WAVESREVERB_REVERBMIX_MAX = 0
  414. } CONST_DSFX_WAVESREVERB_REVERBMIX;
  415. [helpcontext(81977)]
  416. typedef enum CONST_DSFX_I3DL2REVERB_ROOM
  417. {
  418. DSFX_I3DL2REVERB_ROOM_MIN = -10000,
  419. DSFX_I3DL2REVERB_ROOM_MAX = 0,
  420. DSFX_I3DL2REVERB_ROOM_DEFAULT = -10000
  421. } CONST_DSFX_I3DL2REVERB_ROOM;
  422. [helpcontext(81978)]
  423. typedef enum CONST_DSFX_I3DL2REVERB_ROOMHF
  424. {
  425. DSFX_I3DL2REVERB_ROOMHF_MIN = -10000,
  426. DSFX_I3DL2REVERB_ROOMHF_MAX = 0,
  427. DSFX_I3DL2REVERB_ROOMHF_DEFAULT = 0
  428. } CONST_DSFX_I3DL2REVERB_ROOMHF;
  429. [helpcontext(81979)]
  430. typedef enum CONST_DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR
  431. {
  432. DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN = 0,
  433. DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX = 1,
  434. DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT = 0
  435. } CONST_DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR;
  436. [helpcontext(81975)]
  437. typedef enum CONST_DSFX_I3DL2REVERB_REFLECTIONS
  438. {
  439. DSFX_I3DL2REVERB_REFLECTIONS_MIN = -10000,
  440. DSFX_I3DL2REVERB_REFLECTIONS_MAX = 1000,
  441. DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT = -10000
  442. } CONST_DSFX_I3DL2REVERB_REFLECTIONS;
  443. [helpcontext(81976)]
  444. typedef enum CONST_DSFX_I3DL2REVERB_REVERB
  445. {
  446. DSFX_I3DL2REVERB_REVERB_MIN = -10000,
  447. DSFX_I3DL2REVERB_REVERB_MAX = 2000,
  448. DSFX_I3DL2REVERB_REVERB_DEFAULT = -10000
  449. } CONST_DSFX_I3DL2REVERB_REVERB;
  450. [helpcontext(81972)]
  451. typedef enum CONST_DSFX_I3DL2REVERB_DIFFUSION
  452. {
  453. DSFX_I3DL2REVERB_DIFFUSION_MIN = 0,
  454. DSFX_I3DL2REVERB_DIFFUSION_MAX = 100,
  455. DSFX_I3DL2REVERB_DIFFUSION_DEFAULT = 100
  456. } CONST_DSFX_I3DL2REVERB_DIFFUSION;
  457. [helpcontext(81971)]
  458. typedef enum CONST_DSFX_I3DL2REVERB_DENSITY
  459. {
  460. DSFX_I3DL2REVERB_DENSITY_MIN = 0,
  461. DSFX_I3DL2REVERB_DENSITY_MAX = 100,
  462. DSFX_I3DL2REVERB_DENSITY_DEFAULT = 100
  463. } CONST_DSFX_I3DL2REVERB_DENSITY;
  464. [helpcontext(81973)]
  465. typedef enum CONST_DSFX_I3DL2REVERB_HFREFERENCE
  466. {
  467. DSFX_I3DL2REVERB_HFREFERENCE_MIN = 20,
  468. DSFX_I3DL2REVERB_HFREFERENCE_MAX = 20000,
  469. DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT = 5000
  470. } CONST_DSFX_I3DL2REVERB_HFREFERENCE;
  471. [helpcontext(81974)]
  472. typedef enum CONST_DSFX_I3DL2REVERB_QUALITY
  473. {
  474. DSFX_I3DL2REVERB_QUALITY_MIN = 0,
  475. DSFX_I3DL2REVERB_QUALITY_MAX = 3,
  476. DSFX_I3DL2REVERB_QUALITY_DEFAULT = 2
  477. } CONST_DSFX_I3DL2REVERB_QUALITY;
  478. [helpcontext(81989)]
  479. typedef enum CONST_DSFXCOMPRESSOR_GAIN
  480. {
  481. DSFXCOMPRESSOR_GAIN_MIN = -60,
  482. DSFXCOMPRESSOR_GAIN_MAX = 60
  483. } CONST_DSFXCOMPRESSOR_GAIN;
  484. [helpcontext(81985)]
  485. typedef enum CONST_DSFXCOMPRESSOR_ATTACK
  486. {
  487. DSFXCOMPRESSOR_ATTACK_MIN = 1,
  488. DSFXCOMPRESSOR_ATTACK_MAX = 500
  489. } CONST_DSFXCOMPRESSOR_ATTACK;
  490. [helpcontext(81992)]
  491. typedef enum CONST_DSFXCOMPRESSOR_RELEASE
  492. {
  493. DSFXCOMPRESSOR_RELEASE_MIN = 50,
  494. DSFXCOMPRESSOR_RELEASE_MAX = 3000
  495. } CONST_DSFXCOMPRESSOR_RELEASE;
  496. [helpcontext(81993)]
  497. typedef enum CONST_DSFXCOMPRESSOR_THRESHOLD
  498. {
  499. DSFXCOMPRESSOR_THRESHOLD_MIN = -60,
  500. DSFXCOMPRESSOR_THRESHOLD_MAX = 0
  501. } CONST_DSFXCOMPRESSOR_THRESHOLD;
  502. [helpcontext(81991)]
  503. typedef enum CONST_DSFXCOMPRESSOR_RATIO
  504. {
  505. DSFXCOMPRESSOR_RATIO_MIN = 1,
  506. DSFXCOMPRESSOR_RATIO_MAX = 100
  507. } CONST_DSFXCOMPRESSOR_RATIO;
  508. [helpcontext(81990)]
  509. typedef enum CONST_DSFXCOMPRESSOR_PREDELAY {
  510. DSFXCOMPRESSOR_PREDELAY_MIN = 0,
  511. DSFXCOMPRESSOR_PREDELAY_MAX = 4
  512. } CONST_DSFXCOMPRESSOR_PREDELAY;
  513. [helpcontext(81995)]
  514. typedef enum CONST_DSFXDISTORTION_GAIN
  515. {
  516. DSFXDISTORTION_GAIN_MIN = -60,
  517. DSFXDISTORTION_GAIN_MAX = 0
  518. } CONST_DSFXDISTORTION_GAIN;
  519. [helpcontext(81994)]
  520. typedef enum CONST_DSFXDISTORTION_EDGE
  521. {
  522. DSFXDISTORTION_EDGE_MIN = 0,
  523. DSFXDISTORTION_EDGE_MAX = 100
  524. } CONST_DSFXDISTORTION_EDGE;
  525. [helpcontext(81002)]
  526. typedef enum CONST_DSFXPARAMEQ_CENTER
  527. {
  528. DSFXPARAMEQ_CENTER_MIN = 80,
  529. DSFXPARAMEQ_CENTER_MAX = 16000
  530. } CONST_DSFXPARAMEQ_CENTER;
  531. [helpcontext(81001)]
  532. typedef enum CONST_DSFXPARAMEQ_BANDWIDTH
  533. {
  534. DSFXPARAMEQ_BANDWIDTH_MIN = 1,
  535. DSFXPARAMEQ_BANDWIDTH_MAX = 36
  536. } CONST_DSFXPARAMEQ_BANDWIDTH;
  537. [helpcontext(81003)]
  538. typedef enum CONST_DSFXPARAMEQ_GAIN
  539. {
  540. DSFXPARAMEQ_GAIN_MIN = -15,
  541. DSFXPARAMEQ_GAIN_MAX = 15
  542. } CONST_DSFXPARAMEQ_GAIN;
  543. [helpcontext(81997)]
  544. typedef enum CONST_DSFXDISTORTION_POSTEQCENTERFREQUENCY
  545. {
  546. DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN = 100,
  547. DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX = 8000
  548. } CONST_DSFXDISTORTION_POSTEQCENTERFREQUENCY;
  549. [helpcontext(81996)]
  550. typedef enum CONST_DSFXDISTORTION_POSTEQBANDWIDTH
  551. {
  552. DSFXDISTORTION_POSTEQBANDWIDTH_MIN = 100,
  553. DSFXDISTORTION_POSTEQBANDWIDTH_MAX = 8000
  554. } CONST_DSFXDISTORTION_POSTEQBANDWIDTH;
  555. [helpcontext(81998)]
  556. typedef enum CONST_DSFXDISTORTION_PRELOWPASSCUTOFF
  557. {
  558. DSFXDISTORTION_PRELOWPASSCUTOFF_MIN = 100,
  559. DSFXDISTORTION_PRELOWPASSCUTOFF_MAX = 8000
  560. } CONST_DSFXDISTORTION_PRELOWPASSCUTOFF;
  561. [helpcontext(81980)]
  562. typedef enum CONST_DSFX_LEFTRIGHTDELAY
  563. {
  564. DSFX_LEFTRIGHTDELAY_MIN = 1,
  565. DSFX_LEFTRIGHTDELAY_MAX = 2000
  566. } CONST_DSFX_LEFTRIGHTDELAY;
  567. [helpcontext(81981)]
  568. typedef enum CONST_DSFX_PANDELAY
  569. {
  570. DSFX_PANDELAY_MIN = 0,
  571. DSFX_PANDELAY_MAX = 1
  572. } CONST_DSFX_PANDELAY;
  573. [helpcontext(81916)]
  574. typedef enum CONST_DSFX_WAVE
  575. {
  576. DSFX_WAVE_TRIANGLE = 0,
  577. DSFX_WAVE_SIN = 1
  578. } CONST_DSFX_WAVE;
  579. [helpcontext(81984)]
  580. typedef enum CONST_DSFX_WETDRY
  581. {
  582. DSFX_WETDRYMIX_MIN = 0,
  583. DSFX_WETDRYMIX_MAX = 100
  584. } CONST_DSFX_WETDRY;
  585. [helpcontext(81965)]
  586. typedef enum CONST_DSFX_DEPTH
  587. {
  588. DSFX_DEPTH_MIN = 0,
  589. DSFX_DEPTH_MAX = 100
  590. } CONST_DSFX_DEPTH;
  591. [helpcontext(81966)]
  592. typedef enum CONST_DSFX_FEEDBACK
  593. {
  594. DSFX_FEEDBACK_MIN = -99,
  595. DSFX_FEEDBACK_MAX = 99
  596. } CONST_DSFX_FEEDBACK;
  597. [helpcontext(181966)]
  598. typedef enum CONST_DSFXECHO_FEEDBACK
  599. {
  600. DSFXECHO_FEEDBACK_MIN = 0,
  601. DSFXECHO_FEEDBACK_MAX = 100
  602. } CONST_DSFXECHO_FEEDBACK;
  603. [helpcontext(81968)]
  604. typedef enum CONST_DSFX_FREQUENCY
  605. {
  606. DSFX_FREQUENCY_MIN = 0,
  607. DSFX_FREQUENCY_MAX = 10
  608. }CONST_DSFX_FREQUENCY;
  609. [helpcontext(81964)]
  610. typedef enum CONST_DSFX_DELAY
  611. {
  612. DSFX_DELAY_MIN = 0,
  613. DSFX_DELAY_MAX = 20
  614. }CONST_DSFX_DELAY;
  615. [helpcontext(81947)]
  616. typedef enum CONST_DSFX_FLANGER_DELAY
  617. {
  618. DSFX_FLANGER_DELAY_MIN = 0,
  619. DSFX_FLANGER_DELAY_MAX =4
  620. } CONST_DSFX_FLANGER_DELAY;
  621. [helpcontext(81982)]
  622. typedef enum CONST_DSFX_PHASE
  623. {
  624. DSFX_PHASE_MIN = 0,
  625. DSFX_PHASE_MAX = 4,
  626. DSFX_PHASE_NEG_180 = 0,
  627. DSFX_PHASE_NEG_90 = 1,
  628. DSFX_PHASE_ZERO = 2,
  629. DSFX_PHASE_90 = 3,
  630. DSFX_PHASE_180 = 4
  631. }CONST_DSFX_PHASE;
  632. [helpcontext(81180)]
  633. typedef enum CONST_DSFXGARGLE_WAVE
  634. {
  635. DSFXGARGLE_WAVE_TRIANGLE = 0,
  636. DSFXGARGLE_WAVE_SQUARE = 1
  637. } CONST_DSFXGARGLE_WAVE;
  638. [helpcontext(81999)]
  639. typedef enum CONST_DSFXGARGLE_RATEHZ
  640. {
  641. DSFXGARGLE_RATEHZ_MIN = 1,
  642. DSFXGARGLE_RATEHZ_MAX = 1000
  643. } CONST_DSFXGARGLE_RATEHZ;
  644. #if 0
  645. [helpcontext(81013)]
  646. typedef enum CONST_I3DL2SOURCEFLAGS {
  647. DSFX_I3DL2SOURCE_OCC_LPF,
  648. DSFX_I3DL2SOURCE_OCC_VOLUME
  649. } CONST_I3DL2SOURCEFLAGS;
  650. [helpcontext(81011)]
  651. typedef enum CONST_I3DL2SOURCEDIRECT {
  652. DSFX_I3DL2SOURCE_MINDIRECT = -10000,
  653. DSFX_I3DL2SOURCE_MAXDIRECT = 1000,
  654. DSFX_I3DL2SOURCE_DEFAULTDIRECT = 0
  655. } CONST_I3DL2SOURCEDIRECT;
  656. [helpcontext(81012)]
  657. typedef enum CONST_I3DL2SOURCEDIRECTHF {
  658. DSFX_I3DL2SOURCE_MINDIRECTHF = -10000,
  659. DSFX_I3DL2SOURCE_MAXDIRECTHF = 0,
  660. DSFX_I3DL2SOURCE_DEFAULTDIRECTHF = 0
  661. } CONST_I3DL2SOURCEDIRECTHF;
  662. [helpcontext(81018)]
  663. typedef enum CONST_I3DL2SOURCEROOM {
  664. DSFX_I3DL2SOURCE_MINROOM = -10000,
  665. DSFX_I3DL2SOURCE_MAXROOM = 1000,
  666. DSFX_I3DL2SOURCE_DEFAULTROOM = 0
  667. } CONST_I3DL2SOURCEROOM;
  668. [helpcontext(81019)]
  669. typedef enum CONST_I3DL2SOURCEROOMHF {
  670. DSFX_I3DL2SOURCE_MINROOMHF = -10000,
  671. DSFX_I3DL2SOURCE_MAXROOMHF = 0,
  672. DSFX_I3DL2SOURCE_DEFAULTROOMHF = 0
  673. } CONST_I3DL2SOURCEROOMHF;
  674. [helpcontext(81020)]
  675. typedef enum CONST_I3DL2SOURCEROOMROLLOFFFACTOR {
  676. DSFX_I3DL2SOURCE_MINROOMROLLOFFFACTOR = 0,
  677. DSFX_I3DL2SOURCE_MAXROOMROLLOFFFACTOR = 10,
  678. DSFX_I3DL2SOURCE_DEFAULTROOMROLLOFFFACTOR = 0,
  679. } CONST_I3DL2SOURCEROOMROLLOFFFACTOR;
  680. [helpcontext(81014)]
  681. typedef enum CONST_I3DL2SOURCEOBSTRUCTION {
  682. DSFX_I3DL2SOURCE_MINOBSTRUCTION = -10000,
  683. DSFX_I3DL2SOURCE_MAXOBSTRUCTION = 0,
  684. DSFX_I3DL2SOURCE_DEFAULTOBSTRUCTION = 0
  685. } CONST_I3DL2SOURCEOBSTRUCTION;
  686. [helpcontext(81015)]
  687. typedef enum CONST_I3DL2SOURCEOBSTRUCTIONLFRATIO {
  688. DSFX_I3DL2SOURCE_MINOBSTRUCTIONLFRATIO = 0,
  689. DSFX_I3DL2SOURCE_MAXOBSTRUCTIONLFRATIO = 1,
  690. DSFX_I3DL2SOURCE_DEFAULTOBSTRUCTIONLFRATIO = 0
  691. } CONST_I3DL2SOURCEOBSTRUCTIONLFRATIO;
  692. [helpcontext(81016)]
  693. typedef enum CONST_I3DL2SOURCEOCCLUSION {
  694. DSFX_I3DL2SOURCE_MINOCCLUSION = -10000,
  695. DSFX_I3DL2SOURCE_MAXOCCLUSION = 0,
  696. DSFX_I3DL2SOURCE_DEFAULTOCCLUSION = 0
  697. } CONST_I3DL2SOURCEOCCLUSION;
  698. [helpcontext(81017)]
  699. typedef enum CONST_I3DL2SOURCEOCCLUSIONLFRATIO {
  700. DSFX_I3DL2SOURCE_MINOCCLUSIONLFRATIO = 0,
  701. DSFX_I3DL2SOURCE_MAXOCCLUSIONLFRATIO = 1,
  702. // DSFX_I3DL2SOURCE_DEFAULTOCCLUSIONLFRATIO = 0.25f
  703. } CONST_I3DL2SOURCEOCCLUSIONLFRATIO;
  704. [helpcontext(81970)]
  705. typedef enum CONST_DSFX_I3DL2_MATERIAL_PRESET
  706. {
  707. DSFX_I3DL2_MATERIAL_PRESET_SINGLEWINDOW,
  708. DSFX_I3DL2_MATERIAL_PRESET_DOUBLEWINDOW,
  709. DSFX_I3DL2_MATERIAL_PRESET_THINDOOR,
  710. DSFX_I3DL2_MATERIAL_PRESET_THICKDOOR,
  711. DSFX_I3DL2_MATERIAL_PRESET_WOODWALL,
  712. DSFX_I3DL2_MATERIAL_PRESET_BRICKWALL,
  713. DSFX_I3DL2_MATERIAL_PRESET_STONEWALL,
  714. DSFX_I3DL2_MATERIAL_PRESET_CURTAIN
  715. } CONST_DSFX_I3DL2_MATERIAL_PRESET;
  716. #endif
  717. [helpcontext(81969)]
  718. typedef enum CONST_DSFX_I3DL2_ENVIRONMENT_PRESETS
  719. {
  720. DSFX_I3DL2_ENVIRONMENT_PRESET_DEFAULT,
  721. DSFX_I3DL2_ENVIRONMENT_PRESET_GENERIC,
  722. DSFX_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL,
  723. DSFX_I3DL2_ENVIRONMENT_PRESET_ROOM,
  724. DSFX_I3DL2_ENVIRONMENT_PRESET_BATHROOM,
  725. DSFX_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM,
  726. DSFX_I3DL2_ENVIRONMENT_PRESET_STONEROOM,
  727. DSFX_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM,
  728. DSFX_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL,
  729. DSFX_I3DL2_ENVIRONMENT_PRESET_CAVE,
  730. DSFX_I3DL2_ENVIRONMENT_PRESET_ARENA,
  731. DSFX_I3DL2_ENVIRONMENT_PRESET_HANGAR,
  732. DSFX_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY,
  733. DSFX_I3DL2_ENVIRONMENT_PRESET_HALLWAY,
  734. DSFX_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR,
  735. DSFX_I3DL2_ENVIRONMENT_PRESET_ALLEY,
  736. DSFX_I3DL2_ENVIRONMENT_PRESET_FOREST,
  737. DSFX_I3DL2_ENVIRONMENT_PRESET_CITY,
  738. DSFX_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS,
  739. DSFX_I3DL2_ENVIRONMENT_PRESET_QUARRY,
  740. DSFX_I3DL2_ENVIRONMENT_PRESET_PLAIN,
  741. DSFX_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT,
  742. DSFX_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE,
  743. DSFX_I3DL2_ENVIRONMENT_PRESET_UNDERWATER,
  744. DSFX_I3DL2_ENVIRONMENT_PRESET_SMALLROOM,
  745. DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM,
  746. DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEROOM,
  747. DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL,
  748. DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEHALL,
  749. DSFX_I3DL2_ENVIRONMENT_PRESET_PLATE
  750. } CONST_DSFX_I3DL2_ENVIRONMENT_PRESETS;
  751. [helpcontext(81008)]
  752. typedef enum CONST_DSOUNDFX {
  753. DSFXR_PRESENT = 0x00000000,
  754. DSFX_LOCHARDWARE = 0x00000001,
  755. DSFX_LOCSOFTWARE = 0x00000002,
  756. DSFXR_LOCHARDWARE = 0x00000001,
  757. DSFXR_LOCSOFTWARE = 0x00000002,
  758. DSFXR_UNALLOCATED = 0x00000003,
  759. DSFXR_FAILED = 0x00000004,
  760. DSFXR_UNKNOWN = 0x00000005,
  761. #if 0
  762. DSFXR_SENDLOOP = 0x00000006,
  763. #endif
  764. } CONST_DSOUNDFX;
  765. [helpcontext(81021)]
  766. typedef enum CONST_WAVEFORMATFLAGS {
  767. WAVE_FORMAT_1M08 =0x00000001, /* 11.025 kHz, Mono, 8-bit */
  768. WAVE_FORMAT_1S08 =0x00000002, /* 11.025 kHz, Stereo, 8-bit */
  769. WAVE_FORMAT_1M16 =0x00000004, /* 11.025 kHz, Mono, 16-bit */
  770. WAVE_FORMAT_1S16 =0x00000008, /* 11.025 kHz, Stereo, 16-bit */
  771. WAVE_FORMAT_2M08 =0x00000010, /* 22.05 kHz, Mono, 8-bit */
  772. WAVE_FORMAT_2S08 =0x00000020, /* 22.05 kHz, Stereo, 8-bit */
  773. WAVE_FORMAT_2M16 =0x00000040, /* 22.05 kHz, Mono, 16-bit */
  774. WAVE_FORMAT_2S16 =0x00000080, /* 22.05 kHz, Stereo, 16-bit */
  775. WAVE_FORMAT_4M08 =0x00000100, /* 44.1 kHz, Mono, 8-bit */
  776. WAVE_FORMAT_4S08 =0x00000200, /* 44.1 kHz, Stereo, 8-bit */
  777. WAVE_FORMAT_4M16 =0x00000400, /* 44.1 kHz, Mono, 16-bit */
  778. WAVE_FORMAT_4S16 = 0x00000800 /* 44.1 kHz, Stereo, 16-bit */
  779. } CONST_WAVEFORMATFLAGS;
  780. [helpcontext(81009)]
  781. typedef enum CONST_DSSCLFLAGS {
  782. DSSCL_NORMAL =0x00000001,
  783. DSSCL_PRIORITY =0x00000002,
  784. DSSCL_WRITEPRIMARY =0x00000004
  785. } CONST_DSSCLFLAGS;
  786. [helpcontext(81010)]
  787. typedef enum CONST_DSSPEAKERFLAGS {
  788. DSSPEAKER_HEADPHONE =0x00000001,
  789. DSSPEAKER_MONO =0x00000002,
  790. DSSPEAKER_QUAD =0x00000003,
  791. DSSPEAKER_STEREO =0x00000004,
  792. DSSPEAKER_SURROUND =0x00000005,
  793. DSSPEAKER_GEOMETRY_MIN =0x00000005, // 5 degrees
  794. DSSPEAKER_GEOMETRY_NARROW =0x0000000A, // 10 degrees
  795. DSSPEAKER_GEOMETRY_WIDE =0x00000014, // 20 degrees
  796. DSSPEAKER_GEOMETRY_MAX =0x000000B4 // 180 degrees
  797. } CONST_DSSPEAKERFLAGS;
  798. [helpcontext(81956)]
  799. typedef enum CONST_DSBPLAYFLAGS{
  800. DSBPLAY_DEFAULT =0x00000000,
  801. DSBPLAY_LOOPING =0x00000001,
  802. DSBPLAY_LOCHARDWARE =0x00000002,
  803. DSBPLAY_LOCSOFTWARE =0x00000004,
  804. DSBPLAY_TERMINATEBY_TIME =0x00000008,
  805. DSBPLAY_TERMINATEBY_DISTANCE =0x000000010,
  806. DSBPLAY_TERMINATEBY_PRIORITY =0x000000020,
  807. } CONST_DSBPLAYFLAGS;
  808. [helpcontext(81955)]
  809. typedef enum CONST_DSBLOCKFLAGS {
  810. DSBLOCK_DEFAULT =0x00000000,
  811. DSBLOCK_FROMWRITECURSOR =0x00000001,
  812. DSBLOCK_ENTIREBUFFER =0x00000002
  813. } CONST_DSBLOCKFLAGS;
  814. [helpcontext(81960)]
  815. typedef enum CONST_DSCBLOCKFLAGS {
  816. DSCBLOCK_DEFAULT =0x00000000,
  817. DSCBLOCK_ENTIREBUFFER =0x00000001
  818. } CONST_DSCBLOCKFLAGS;
  819. [helpcontext(81957)]
  820. typedef enum CONST_DSBSTATUSFLAGS {
  821. DSBSTATUS_PLAYING =0x00000001,
  822. DSBSTATUS_BUFFERLOST =0x00000002,
  823. DSBSTATUS_LOOPING =0x00000004,
  824. DSBSTATUS_LOCHARDWARE =0x00000008,
  825. DSBSTATUS_LOCSOFTWARE =0x00000010,
  826. DSBSTATUS_TERMINATED =0x00000020
  827. } CONST_DSBSTATUSFLAGS;
  828. [helpcontext(81952)]
  829. typedef enum CONST_DS3DAPPLYFLAGS {
  830. DS3D_IMMEDIATE =0x00000000,
  831. DS3D_DEFERRED =0x00000001
  832. } CONST_DS3DAPPLYFLAGS;
  833. [helpcontext(81953)]
  834. typedef enum CONST_DS3DMODEFLAGS {
  835. DS3DMODE_NORMAL =0x00000000,
  836. DS3DMODE_HEADRELATIVE =0x00000001,
  837. DS3DMODE_DISABLE =0x00000002
  838. } CONST_DS3DMODEFLAGS;
  839. [helpcontext(81962)]
  840. typedef enum CONST_DSCBSTATUSFLAGS {
  841. DSCBSTATUS_CAPTURING =0x00000001,
  842. DSCBSTATUS_LOOPING =0x00000002
  843. } CONST_DSCBSTATUSFLAGS;
  844. [helpcontext(81961)]
  845. typedef enum CONST_DSCBSTARTFLAGS {
  846. DSCBSTART_DEFAULT =0x00000000,
  847. DSCBSTART_LOOPING =0x00000001
  848. } CONST_DSCBSTARTFLAGS;
  849. [helpcontext(81958)]
  850. typedef enum CONST_DSCAPSFLAGS {
  851. DSCAPS_PRIMARYMONO =0x00000001,
  852. DSCAPS_PRIMARYSTEREO =0x00000002,
  853. DSCAPS_PRIMARY8BIT =0x00000004,
  854. DSCAPS_PRIMARY16BIT =0x00000008,
  855. DSCAPS_CONTINUOUSRATE =0x00000010,
  856. DSCAPS_EMULDRIVER =0x00000020,
  857. DSCAPS_CERTIFIED =0x00000040,
  858. DSCAPS_SECONDARYMONO =0x00000100,
  859. DSCAPS_SECONDARYSTEREO =0x00000200,
  860. DSCAPS_SECONDARY8BIT =0x00000400,
  861. DSCAPS_SECONDARY16BIT =0x00000800
  862. } CONST_DSCAPSFLAGS;
  863. [helpcontext(81954)]
  864. typedef enum CONST_DSBCAPSFLAGS {
  865. DSBCAPS_PRIMARYBUFFER =0x00000001,
  866. DSBCAPS_STATIC =0x00000002,
  867. DSBCAPS_LOCHARDWARE =0x00000004,
  868. DSBCAPS_LOCSOFTWARE =0x00000008,
  869. DSBCAPS_CTRL3D =0x00000010,
  870. DSBCAPS_CTRLFREQUENCY =0x00000020,
  871. DSBCAPS_CTRLPAN =0x00000040,
  872. DSBCAPS_CTRLVOLUME =0x00000080,
  873. DSBCAPS_CTRLPOSITIONNOTIFY =0x00000100,
  874. DSBCAPS_CTRLFX =0x00000200,
  875. DSBCAPS_CTRLCHANNELVOLUME =0x00000400,
  876. #if 0
  877. DSBCAPS_MIXIN =0x00002000,
  878. #endif
  879. DSBCAPS_STICKYFOCUS =0x00004000,
  880. DSBCAPS_GLOBALFOCUS =0x00008000,
  881. DSBCAPS_GETCURRENTPOSITION2 =0x00010000,
  882. DSBCAPS_MUTE3DATMAXDISTANCE =0x00020000,
  883. DSBCAPS_LOCDEFER =0x00040000
  884. } CONST_DSBCAPSFLAGS;
  885. [helpcontext(81959)]
  886. typedef enum CONST_DSCBCAPSFLAGS {
  887. DSCBCAPS_DEFAULT =0x00000000,
  888. DSCBCAPS_WAVEMAPPED =0x80000000
  889. } CONST_DSCBCAPSFLAGS;
  890. [helpcontext(81963)]
  891. typedef enum CONST_DSCCAPSFLAGS {
  892. DSCCAPS_DEFAULT =0x00000000,
  893. DSCCAPS_EMULDRIVER =0x00000020
  894. } CONST_DSCCAPSFLAGS;
  895. [helpcontext(81891)]
  896. typedef enum CONST_DSOUND {
  897. //KSPROPERTY_SUPPORT_GET =0x00000001,
  898. //KSPROPERTY_SUPPORT_SET =0x00000002,
  899. DS3D_MINDISTANCEFACTOR =0,
  900. DS3D_MAXDISTANCEFACTOR =10,
  901. DS3D_DEFAULTDISTANCEFACTOR =1,
  902. DS3D_MINROLLOFFFACTOR =0,
  903. DS3D_MAXROLLOFFFACTOR =10,
  904. DS3D_DEFAULTROLLOFFFACTOR =1,
  905. DS3D_MINDOPPLERFACTOR =0,
  906. DS3D_MAXDOPPLERFACTOR =10,
  907. DS3D_DEFAULTDOPPLERFACTOR =1,
  908. DS3D_DEFAULTMINDISTANCE =1,
  909. DS3D_DEFAULTMAXDISTANCE =1000000000,
  910. DS3D_MINCONEANGLE =0,
  911. DS3D_MAXCONEANGLE =360,
  912. DS3D_DEFAULTCONEANGLE =360,
  913. DS3D_DEFAULTCONEOUTSIDEVOLUME = 0,
  914. DSBFREQUENCY_MIN =100,
  915. DSBFREQUENCY_MAX =100000,
  916. DSBFREQUENCY_ORIGINAL =0,
  917. DSBPAN_LEFT =-10000,
  918. DSBPAN_CENTER =0,
  919. DSBPAN_RIGHT =10000,
  920. DSBVOLUME_MIN =-10000,
  921. DSBVOLUME_MAX =0,
  922. DSBSIZE_MIN =4,
  923. DSBSIZE_MAX =0x0FFFFFFF,
  924. DSBPN_OFFSETSTOP =0xFFFFFFFF,
  925. WAVE_FORMAT_PCM =1
  926. } CONST_DSOUND;
  927. //we let the dmusic constants be global
  928. [helpcontext(81767)]
  929. typedef enum CONST_DMUS_AUDIO {
  930. /* dwFeatures flags. These indicate which features are required for the audio environment. */
  931. DMUS_AUDIOF_3D = 0x1, /* Require 3D buffers. */
  932. DMUS_AUDIOF_ENVIRON = 0x2, /* Require environmental modeling. */
  933. DMUS_AUDIOF_EAX = 0x4, /* Require use of EAX effects. */
  934. DMUS_AUDIOF_DMOS = 0x8, /* Require use of additional DMOs (listed). */
  935. DMUS_AUDIOF_STREAMING = 0x10, /* Require support for streaming waves. */
  936. DMUS_AUDIOF_BUFFERS = 0x20, /* Require support for multiple buffers (all above cases need this.) */
  937. DMUS_AUDIOF_ALL = 0x3F /* Requires everything. */
  938. } CONST_DMUS_AUDIO;
  939. [helpcontext(81766)]
  940. typedef enum CONST_DMUS_AUDIOPARAMS {
  941. DMUS_AUDIOPARAMS_FEATURES = 0x00000001,
  942. DMUS_AUDIOPARAMS_VOICES = 0x00000002,
  943. DMUS_AUDIOPARAMS_SAMPLERATE = 0x00000004,
  944. DMUS_AUDIOPARAMS_DEFAULTSYNTH = 0x00000008
  945. } CONST_DMUS_AUDIOPARAMS;
  946. [helpcontext(81776)]
  947. typedef enum CONST_DMUS_PCHANNEL {
  948. DMUS_PCHANNEL_ALL = 0xFFFFFFFB,
  949. DMUS_PCHANNEL_BROADCAST_PERFORMANCE = 0xFFFFFFFF, /* PMsg is sent on all PChannels of the performance. */
  950. DMUS_PCHANNEL_BROADCAST_AUDIOPATH = 0xFFFFFFFE, /* PMsg is sent on all PChannels of the audio path. */
  951. DMUS_PCHANNEL_BROADCAST_SEGMENT = 0xFFFFFFFD, /* PMsg is sent on all PChannels of the segment. */
  952. DMUS_PCHANNEL_BROADCAST_GROUPS = 0xFFFFFFFC, /* A duplicate PMsg is for each Channels Groups in the performance. */
  953. } CONST_DMUS_PCHANNEL;
  954. [helpcontext(81783)]
  955. typedef enum CONST_DMUSIC_STANDARD_AUDIO_PATH {
  956. DMUS_APATH_SHARED_STEREOPLUSREVERB = 1, /* A standard music set up with stereo outs and reverb. */
  957. DMUS_APATH_DYNAMIC_3D = 6, /* An audio path with one dynamic bus from the synth feeding to a dynamic 3d buffer. Does not send to env reverb. */
  958. DMUS_APATH_DYNAMIC_MONO = 7, /* An audio path with one dynamic bus from the synth feeding to a dynamic mono buffer. */
  959. DMUS_APATH_DYNAMIC_STEREO = 8 /* An audio path with two dynamic buses from the synth feeding to a dynamic stereo buffer. */
  960. } CONST_DMUSIC_STANDARD_AUDIO_PATH;
  961. [helpcontext(81782)]
  962. typedef enum CONST_DMUSIC_PATH {
  963. DMUS_PATH_SEGMENT = 0x1000, /* Get the segment itself (from a segment state.) */
  964. DMUS_PATH_SEGMENT_TRACK = 0x1100, /* Look in Track List of Segment. */
  965. DMUS_PATH_SEGMENT_GRAPH = 0x1200, /* Get the segment's tool graph. */
  966. DMUS_PATH_SEGMENT_TOOL = 0x1300, /* Look in Tool Graph of Segment. */
  967. DMUS_PATH_AUDIOPATH = 0x2000, /* Get the audiopath itself (from a segment state.) */
  968. DMUS_PATH_AUDIOPATH_GRAPH = 0x2200, /* Get the audiopath's tool graph. */
  969. DMUS_PATH_AUDIOPATH_TOOL = 0x2300, /* Look in Tool Graph of Audio Path. */
  970. DMUS_PATH_PERFORMANCE = 0x3000, /* Access the performance. */
  971. DMUS_PATH_PERFORMANCE_GRAPH = 0x3200, /* Get the performance's tool graph. */
  972. DMUS_PATH_PERFORMANCE_TOOL = 0x3300, /* Look in Tool Graph of Performance. */
  973. DMUS_PATH_PORT = 0x4000, /* Access the synth. */
  974. DMUS_PATH_BUFFER = 0x6000, /* Look in DirectSoundBuffer. */
  975. DMUS_PATH_BUFFER_DMO = 0x6100, /* Access a DMO in the buffer. */
  976. DMUS_PATH_MIXIN_BUFFER = 0x7000, /* Look in effects DirectSoundBuffer. */
  977. DMUS_PATH_MIXIN_BUFFER_DMO = 0x7100, /* Access a DMO in the effects buffer. */
  978. DMUS_PATH_PRIMARY_BUFFER = 0x8000, /* Access the primary buffer. */
  979. } CONST_DMUSIC_PATH;
  980. [helpcontext(81582)]
  981. typedef enum CONST_DMUS
  982. {
  983. DMUS_MAXSUBCHORD=8,
  984. DMUS_TEMPO_MAX =1000,
  985. DMUS_TEMPO_MIN = 1
  986. // DMUSB_LOADED =0, not needed according to a-perterd
  987. // DMUSB_DEFAULT =2,
  988. } CONST_DMUS;
  989. [helpcontext(81771)]
  990. typedef enum CONST_DMUS_CURVES
  991. {
  992. DMUS_CURVES_LINEAR = 0,
  993. DMUS_CURVES_INSTANT = 1,
  994. DMUS_CURVES_EXP = 2,
  995. DMUS_CURVES_LOG = 3,
  996. DMUS_CURVES_SINE = 4
  997. } CONST_DMUS_CURVES;
  998. [helpcontext(81772)]
  999. typedef enum CONST_DMUS_CURVET
  1000. {
  1001. DMUS_CURVET_PBCURVE = 0x03,
  1002. DMUS_CURVET_CCCURVE = 0x04,
  1003. DMUS_CURVET_MATCURVE = 0x05,
  1004. DMUS_CURVET_PATCURVE = 0x06,
  1005. DMUS_CURVET_RPNCURVE = 0x07, /* RPN curve with curve type in wParamType. */
  1006. DMUS_CURVET_NRPNCURVE = 0x08 /* NRPN curve with curve type in wParamType. */
  1007. } CONST_DMUS_CURVET;
  1008. /* The following correspond to GUID_NOTIFICATION_SEGMENT */
  1009. [helpcontext(81774)]
  1010. typedef enum CONST_DMUS_NOTIFICATION_SUBTYPE
  1011. {
  1012. DMUS_NOTIFICATION_MUSICSTARTED =0,
  1013. DMUS_NOTIFICATION_MUSICSTOPPED =1,
  1014. DMUS_NOTIFICATION_MEASUREBEAT =0,
  1015. DMUS_NOTIFICATION_CHORD =0,
  1016. DMUS_NOTIFICATION_GROOVE =0,
  1017. DMUS_NOTIFICATION_EMBELLISHMENT =1,
  1018. DMUS_NOTIFICATION_SEGSTART =0,
  1019. DMUS_NOTIFICATION_SEGEND =1,
  1020. DMUS_NOTIFICATION_SEGALMOSTEND =2,
  1021. DMUS_NOTIFICATION_SEGLOOP =3,
  1022. DMUS_NOTIFICATION_SEGABORT =4,
  1023. DMUS_NOTIFICATION_MUSICALMOSTEND=2,
  1024. DMUS_NOTIFICATION_RECOMPOSE =0
  1025. } CONST_DMUS_NOTIFICATION_SUBTYPE;
  1026. [helpcontext(81768)]
  1027. typedef enum CONST_DMUS_COMMANDT_TYPES
  1028. {
  1029. DMUS_COMMANDT_GROOVE = 0,
  1030. DMUS_COMMANDT_FILL = 1,
  1031. DMUS_COMMANDT_INTRO = 2,
  1032. DMUS_COMMANDT_BREAK = 3,
  1033. DMUS_COMMANDT_END = 4,
  1034. DMUS_COMMANDT_ENDANDINTRO = 5
  1035. } CONST_DMUS_COMMANDT_TYPES;
  1036. [helpcontext(81780)]
  1037. typedef enum CONST_DMUS_SHAPET_TYPES
  1038. {
  1039. DMUS_SHAPET_FALLING = 0,
  1040. DMUS_SHAPET_LEVEL = 1,
  1041. DMUS_SHAPET_LOOPABLE = 2,
  1042. DMUS_SHAPET_LOUD = 3,
  1043. DMUS_SHAPET_QUIET = 4,
  1044. DMUS_SHAPET_PEAKING = 5,
  1045. DMUS_SHAPET_RANDOM = 6,
  1046. DMUS_SHAPET_RISING = 7,
  1047. DMUS_SHAPET_SONG = 8
  1048. } CONST_DMUS_SHAPET_TYPES;
  1049. [helpcontext(81769)]
  1050. typedef enum CONST_DMUS_COMPOSEF_FLAGS
  1051. {
  1052. DMUS_COMPOSEF_NONE = 0,
  1053. DMUS_COMPOSEF_ALIGN = 0x1,
  1054. DMUS_COMPOSEF_OVERLAP = 0x2,
  1055. DMUS_COMPOSEF_IMMEDIATE = 0x4,
  1056. DMUS_COMPOSEF_GRID = 0x8,
  1057. DMUS_COMPOSEF_BEAT = 0x10,
  1058. DMUS_COMPOSEF_MEASURE = 0x20,
  1059. DMUS_COMPOSEF_AFTERPREPARETIME = 0x40,
  1060. DMUS_COMPOSEF_MODULATE = 0x1000,
  1061. DMUS_COMPOSEF_LONG = 0x2000,
  1062. DMUS_COMPOSEF_VALID_START_BEAT = 0x80, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any beat. */
  1063. DMUS_COMPOSEF_VALID_START_GRID = 0x100, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any grid. */
  1064. DMUS_COMPOSEF_VALID_START_TICK = 0x200, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur any time. */
  1065. DMUS_COMPOSEF_SEGMENTEND = 0x400, /* Play the transition at the end of the current segment. */
  1066. DMUS_COMPOSEF_MARKER = 0x800, /* Play the transition at the next marker in the current segment. */
  1067. DMUS_COMPOSEF_ENTIRE_TRANSITION = 0x4000, /* play the entire transition pattern */
  1068. DMUS_COMPOSEF_1BAR_TRANSITION = 0x8000, /* play one bar of the transition pattern */
  1069. DMUS_COMPOSEF_ENTIRE_ADDITION = 0x10000, /* play the additional pattern in its entirety */
  1070. DMUS_COMPOSEF_1BAR_ADDITION = 0x20000, /* play one bar of the additional pattern */
  1071. DMUS_COMPOSEF_VALID_START_MEASURE = 0x40000, /* In conjunction with DMUS_COMPOSEF_ALIGN, allows the switch to occur on any bar. */
  1072. DMUS_COMPOSEF_DEFAULT = 0x80000, /* Use segment's default boundary */
  1073. DMUS_COMPOSEF_NOINVALIDATE = 0x100000, /* Play without invalidating the currently playing segment(s) */
  1074. DMUS_COMPOSEF_USE_AUDIOPATH = 0x200000 /* Uses the audio paths that are embedded in the segments */
  1075. } CONST_DMUS_COMPOSEF_FLAGS;
  1076. [helpcontext(81778)]
  1077. typedef enum CONST_DMUS_PMSGF_FLAGS
  1078. {
  1079. DMUS_PMSGF_REFTIME = 1, /* if rtTime is valid */
  1080. DMUS_PMSGF_MUSICTIME = 2, /* if mtTime is valid */
  1081. DMUS_PMSGF_TOOL_IMMEDIATE = 4, /* if PMSG should be processed immediately */
  1082. DMUS_PMSGF_TOOL_QUEUE = 8, /* if PMSG should be processed a little early, at Queue time */
  1083. DMUS_PMSGF_TOOL_ATTIME = 16, /* if PMSG should be processed at the time stamp */
  1084. DMUS_PMSGF_TOOL_FLUSH = 32, /* if PMSG is being flushed */
  1085. DMUS_PMSGF_LOCKTOREFTIME = 0x40, /* if rtTime can not be overriden by a tempo change. */
  1086. DMUS_PMSGF_DX8 = 0x80 /* if the message has DX8 or later extensions. */
  1087. /* The values of DMUS_TIME_RESOLVE_FLAGS may also be used inside the */
  1088. /* DMUS_PMSG's dwFlags member. */
  1089. } CONST_DMUS_PMSGF_FLAGS;
  1090. #if 0
  1091. // NOT NEEDED
  1092. [helpcontext(88782)]
  1093. typedef enum enumDMUS_PMSGT_TYPES
  1094. {
  1095. DMUS_PMSGT_MIDI = 0, /* MIDI SHORT message */
  1096. DMUS_PMSGT_NOTE = 1, /* Interactive Music Note */
  1097. DMUS_PMSGT_SYSEX = 2, /* MIDI LONG message (system exclusive message) */
  1098. DMUS_PMSGT_NOTIFICATION = 3, /* Notification message */
  1099. DMUS_PMSGT_TEMPO = 4, /* Tempo message */
  1100. DMUS_PMSGT_CURVE = 5, /* Control change / pitch bend, etc. curve */
  1101. DMUS_PMSGT_TIMESIG = 6, /* Time signature */
  1102. DMUS_PMSGT_PATCH = 7, /* Patch changes */
  1103. DMUS_PMSGT_TRANSPOSE = 8, /* Transposition messages */
  1104. DMUS_PMSGT_CHANNEL_PRIORITY = 9, /* Channel priority */
  1105. DMUS_PMSGT_STOP = 10, /* Stop message */
  1106. DMUS_PMSGT_DIRTY = 11, /* Tells Tools that cache GetParam() info to refresh */
  1107. DMUS_PMSGT_WAVE = 12, /* Carries control information for playing a wave. */
  1108. DMUS_PMSGT_USER = 255 /* User message */
  1109. } CONST_DMUS_PMSGT_TYPES;
  1110. #endif
  1111. [helpcontext(81779)]
  1112. typedef enum CONST_DMUS_SEGF_FLAGS
  1113. {
  1114. DMUS_SEGF_REFTIME = 64, /* time parameter is in reference time */
  1115. DMUS_SEGF_SECONDARY = 128, /* secondary segment */
  1116. DMUS_SEGF_QUEUE = 256, /* queue at the end of the primary segment queue (primary only) */
  1117. DMUS_SEGF_CONTROL = 512, /* play as a control track (secondary segments only) */
  1118. DMUS_SEGF_AFTERPREPARETIME = 0x400, /* play after the prepare time (See IDirectMusicPerformance::GetPrepareTime) */
  1119. DMUS_SEGF_GRID = 0x800, /* play on grid boundary */
  1120. DMUS_SEGF_BEAT = 0x1000, /* play on beat boundary */
  1121. DMUS_SEGF_MEASURE = 0x2000, /* play on measure boundary */
  1122. DMUS_SEGF_DEFAULT = 0x4000, /* use segment's default boundary */
  1123. DMUS_SEGF_NOINVALIDATE = 0x8000, /* play without invalidating the currently playing segment(s) */
  1124. DMUS_SEGF_ALIGN = 0x10000, /* Align segment with requested boundary, but switch at first valid point */
  1125. DMUS_SEGF_VALID_START_BEAT = 0x20000, /* In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any beat. */
  1126. DMUS_SEGF_VALID_START_GRID = 0x40000, /* In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any grid. */
  1127. DMUS_SEGF_VALID_START_TICK = 0x80000, /* In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur any time. */
  1128. DMUS_SEGF_AUTOTRANSITION = 0x100000, /* Compose and play a transition segment, using either the transition template or transition embedded in song. */
  1129. DMUS_SEGF_AFTERQUEUETIME = 0x200000, /* Make sure to play after the queue time. This is default for primary segments */
  1130. DMUS_SEGF_AFTERLATENCYTIME = 0x400000, /* Make sure to play after the latency time. This is true for all segments, so this is a nop */
  1131. DMUS_SEGF_SEGMENTEND = 0x800000, /* Play at the next end of segment. */
  1132. DMUS_SEGF_MARKER = 0x1000000, /* Play at next marker in the primary segment. If there are no markers, default to any other resolution requests. */
  1133. DMUS_SEGF_TIMESIG_ALWAYS = 0x2000000, /* Even if there is no primary segment, align start time with current time signature. */
  1134. DMUS_SEGF_USE_AUDIOPATH = 0x4000000, /* Uses the audio path that is embedded in the segment or song. */
  1135. DMUS_SEGF_VALID_START_MEASURE = 0x8000000 /* In conjunction with DMUS_SEGF_ALIGN, allows the switch to occur on any bar. */
  1136. } CONST_DMUS_SEGF_FLAGS;
  1137. [helpcontext(81773)]
  1138. typedef enum CONST_DMUS_NOTEF_FLAGS
  1139. {
  1140. DMUS_NOTEF_NOTEON = 1, /* Set if this is a MIDI Note On. Otherwise, it is MIDI Note Off */
  1141. } CONST_DMUS_NOTEF_FLAGS;
  1142. [helpcontext(81777)]
  1143. typedef enum CONST_DMUS_PLAYMODE_FLAGS
  1144. {
  1145. DMUS_PLAYMODE_KEY_ROOT = 1, /* Transpose on top of the key root. */
  1146. DMUS_PLAYMODE_CHORD_ROOT = 2, /* Transpose on top of the chord root. */
  1147. DMUS_PLAYMODE_SCALE_INTERVALS = 4, /* Use scale intervals from scale pattern. */
  1148. DMUS_PLAYMODE_CHORD_INTERVALS = 8, /* Use chord intervals from chord pattern. */
  1149. DMUS_PLAYMODE_NONE = 16, /* No mode. Indicates the parent part's mode should be used. */
  1150. //derived flags
  1151. DMUS_PLAYMODE_FIXED =0,
  1152. DMUS_PLAYMODE_FIXEDTOKEY =1,
  1153. DMUS_PLAYMODE_FIXEDTOCHORD =2,
  1154. DMUS_PLAYMODE_PEDALPOINT =5,
  1155. DMUS_PLAYMODE_MELODIC =6,
  1156. DMUS_PLAYMODE_NORMALCHORD =10,
  1157. DMUS_PLAYMODE_ALWAYSPLAY =14 ,
  1158. //DMUS_PLAYMODE_PURPLEIZED =14,
  1159. //DMUS_PLAYMODE_SCALE_ROOT =1,
  1160. //DMUS_PLAYMODE_FIXEDTOSCALE =1,
  1161. } CONST_DMUS_PLAYMODE_FLAGS;
  1162. [helpcontext(81770)]
  1163. typedef enum CONST_DMUS_CURVE_FLAGS
  1164. {
  1165. DMUS_CURVE_RESET = 1, /* Set if the curve needs to be reset. */
  1166. DMUS_CURVE_START_FROM_CURRENT = 2/* Ignore Start, start the curve at the current value.
  1167. This only works for volume, expression, and pitchbend. */
  1168. } CONST_DMUS_CURVE_FLAGS;
  1169. [helpcontext(81007)]
  1170. typedef enum CONST_DSOUNDERR {
  1171. DS_OK = 0,
  1172. DSERR_ALLOCATED = -2005401590,
  1173. DSERR_CONTROLUNAVAIL = -2005401570,
  1174. DSERR_INVALIDPARAM = -2147024809,
  1175. DSERR_INVALIDCALL = -2005401550,
  1176. DSERR_GENERIC = -2147467259,
  1177. DSERR_PRIOLEVELNEEDED = -2005401530,
  1178. DSERR_OUTOFMEMORY = 7, // -2147024882,
  1179. DSERR_BADFORMAT = -2005401500,
  1180. DSERR_UNSUPPORTED = -2147467263,
  1181. DSERR_NODRIVER = -2005401480,
  1182. DSERR_ALREADYINITIALIZED = -2005401470,
  1183. //DSERR_NOAGGREGATION = -2147467262,
  1184. DSERR_BUFFERLOST = -2005401450,
  1185. DSERR_OTHERAPPHASPRIO = -2005401440,
  1186. DSERR_UNINITIALIZED = -2005401430,
  1187. DSERR_NOINTERFACE = 430, //-2147467262
  1188. DSERR_BUFFERTOOSMALL = 0x887800B4,
  1189. DSERR_DS8_REQUIRED = 0x887800BE,
  1190. #if 0
  1191. DSERR_SENDLOOP = 0x887810C8,
  1192. DSERR_BADSENDBUFFERGUID = 0x887810D2,
  1193. #endif
  1194. DSERR_OBJECTNOTFOUND = 0x88781161,
  1195. } CONST_DSOUNDERR;
  1196. [helpcontext(81781)]
  1197. typedef enum CONST_DMUSERR {
  1198. //DMUS_S_PARTIALLOAD =0x08781091,
  1199. //DMUS_S_REQUEUE =0x08781200,
  1200. //DMUS_S_FREE= 0x08781201,
  1201. //DMUS_S_END =0x08781202,
  1202. //DMUS_S_STRING_TRUNCATED =0x08781210,
  1203. //DMUS_S_LAST_TOOL =0x08781211,
  1204. //DMUS_S_OVER_CHORD =0x08781212,
  1205. //DMUS_S_UP_OCTAVE =0x08781213,
  1206. //DMUS_S_DOWN_OCTAVE =0x08781214,
  1207. DMUS_E_DRIVER_FAILED =0x88781101,
  1208. DMUS_E_PORTS_OPEN =0x88781102,
  1209. DMUS_E_DEVICE_IN_USE =0x88781103,
  1210. DMUS_E_INSUFFICIENTBUFFER =0x88781104,
  1211. DMUS_E_BUFFERNOTSET =0x88781105,
  1212. DMUS_E_BUFFERNOTAVAILABLE =0x88781106,
  1213. DMUS_E_NOTADLSCOL =0x88781108,
  1214. DMUS_E_INVALIDOFFSET =0x88781109,
  1215. DMUS_E_ALREADY_LOADED =0x88781111,
  1216. DMUS_E_INVALIDPOS =0x88781113,
  1217. DMUS_E_INVALIDPATCH =0x88781114,
  1218. DMUS_E_CANNOTSEEK =0x88781115,
  1219. DMUS_E_CANNOTWRITE =0x88781116,
  1220. DMUS_E_CHUNKNOTFOUND =0x88781117,
  1221. DMUS_E_INVALID_DOWNLOADID =0x88781119,
  1222. DMUS_E_NOT_DOWNLOADED_TO_PORT =0x88781120,
  1223. DMUS_E_ALREADY_DOWNLOADED =0x88781121,
  1224. DMUS_E_UNKNOWN_PROPERTY =0x88781122,
  1225. DMUS_E_SET_UNSUPPORTED =0x88781123,
  1226. DMUS_E_GET_UNSUPPORTED =0x88781124,
  1227. DMUS_E_NOTMONO =0x88781125,
  1228. DMUS_E_BADARTICULATION =0x88781126,
  1229. DMUS_E_BADINSTRUMENT =0x88781127,
  1230. DMUS_E_BADWAVELINK =0x88781128,
  1231. DMUS_E_NOARTICULATION =0x88781129,
  1232. DMUS_E_NOTPCM =0x8878112A,
  1233. DMUS_E_BADWAVE =0x8878112B,
  1234. DMUS_E_BADOFFSETTABLE =0x8878112C,
  1235. DMUS_E_UNKNOWNDOWNLOAD =0x8878112D,
  1236. DMUS_E_NOSYNTHSINK =0x8878112E,
  1237. DMUS_E_ALREADYOPEN =0x8878112F,
  1238. DMUS_E_ALREADYCLOSED =0x88781130,
  1239. DMUS_E_SYNTHNOTCONFIGURED =0x88781131,
  1240. DMUS_E_SYNTHACTIVE =0x88781132,
  1241. DMUS_E_CANNOTREAD =0x88781133,
  1242. DMUS_E_DMUSIC_RELEASED =0x88781134,
  1243. DMUS_E_BUFFER_EMPTY =0x88781135,
  1244. DMUS_E_BUFFER_FULL =0x88781136,
  1245. DMUS_E_PORT_NOT_CAPTURE =0x88781137,
  1246. DMUS_E_PORT_NOT_RENDER =0x88781138,
  1247. DMUS_E_DSOUND_NOT_SET =0x88781139,
  1248. DMUS_E_ALREADY_ACTIVATED =0x8878113A,
  1249. DMUS_E_INVALIDBUFFER =0x8878113B,
  1250. DMUS_E_WAVEFORMATNOTSUPPORTED =0x8878113C,
  1251. DMUS_E_SYNTHINACTIVE =0x8878113D,
  1252. DMUS_E_DSOUND_ALREADY_SET =0x8878113E,
  1253. DMUS_E_INVALID_EVENT =0x8878113F,
  1254. DMUS_E_UNSUPPORTED_STREAM =0x88781150,
  1255. DMUS_E_ALREADY_INITED =0x88781151,
  1256. DMUS_E_INVALID_BAND =0x88781152,
  1257. DMUS_E_TRACK_HDR_NOT_FIRST_CK =0x88781155,
  1258. DMUS_E_TOOL_HDR_NOT_FIRST_CK =0x88781156,
  1259. DMUS_E_INVALID_TRACK_HDR =0x88781157,
  1260. DMUS_E_INVALID_TOOL_HDR =0x88781158,
  1261. DMUS_E_ALL_TOOLS_FAILED =0x88781159,
  1262. DMUS_E_ALL_TRACKS_FAILED =0x88781160,
  1263. DMUS_E_NOT_FOUND =0x88781161,
  1264. DMUS_E_NOT_INIT =0x88781162,
  1265. DMUS_E_TYPE_DISABLED =0x88781163,
  1266. DMUS_E_TYPE_UNSUPPORTED =0x88781164,
  1267. DMUS_E_TIME_PAST =0x88781165,
  1268. DMUS_E_TRACK_NOT_FOUND =0x88781166,
  1269. DMUS_E_NO_MASTER_CLOCK =0x88781170,
  1270. DMUS_E_LOADER_NOCLASSID =0x88781180,
  1271. DMUS_E_LOADER_BADPATH =0x88781181,
  1272. DMUS_E_LOADER_FAILEDOPEN =0x88781182,
  1273. DMUS_E_LOADER_FORMATNOTSUPPORTED=0x88781183,
  1274. DMUS_E_LOADER_FAILEDCREATE =0x88781184,
  1275. DMUS_E_LOADER_OBJECTNOTFOUND =0x88781185,
  1276. DMUS_E_LOADER_NOFILENAME =0x88781186,
  1277. DMUS_E_INVALIDFILE =0x88781200,
  1278. DMUS_E_ALREADY_EXISTS =0x88781201,
  1279. DMUS_E_OUT_OF_RANGE =0x88781202,
  1280. DMUS_E_SEGMENT_INIT_FAILED =0x88781203,
  1281. DMUS_E_ALREADY_SENT =0x88781204,
  1282. DMUS_E_CANNOT_FREE =0x88781205,
  1283. DMUS_E_CANNOT_OPEN_PORT =0x88781206,
  1284. DMUS_E_CANNOT_CONVERT =0x88781207,
  1285. DMUS_E_DESCEND_CHUNK_FAIL =0x88781210,
  1286. DMUS_E_NOT_LOADED = 0x88781211,
  1287. DMUS_E_INVALID_SEGMENTTRIGGERTRACK = 0x88781220,
  1288. DMUS_E_INVALID_LYRICSTRACK = 0x88781221,
  1289. DMUS_E_INVALID_PARAMCONTROLTRACK= 0x88781222,
  1290. DMUS_E_AUDIOPATHS_NOT_VALID = 0x88781226,
  1291. DMUS_E_AUDIOPATHS_IN_USE = 0x88781227,
  1292. DMUS_E_NO_AUDIOPATH_CONFIG = 0x88781228,
  1293. DMUS_E_AUDIOPATH_INACTIVE = 0x88781229,
  1294. DMUS_E_AUDIOPATH_NOBUFFER = 0x8878122A,
  1295. DMUS_E_AUDIOPATH_NOPORT = 0x8878122B,
  1296. DMUS_E_NO_AUDIOPATH = 0x8878122C,
  1297. DMUS_E_FAIL = 0x80070057,
  1298. DMUS_E_INVALIDARG =5,
  1299. DMUS_E_NOINTERFACE =430,
  1300. DMUS_E_OUTOFMEMORY =7,
  1301. DMUS_E_NOTIMPL =445
  1302. } CONST_DMUSERR;
  1303. #endif
  1304. //This is a new enumeration that needs to be available for
  1305. //both C and VB code
  1306. [helpcontext(81775)]
  1307. typedef enum CONST_DMUS_NOTIFICATION_TYPE
  1308. {
  1309. DMUS_NOTIFY_ON_RECOMPOSE =0,
  1310. DMUS_NOTIFY_ON_CHORD =1,
  1311. DMUS_NOTIFY_ON_COMMAND =2,
  1312. DMUS_NOTIFY_ON_MEASUREANDBEAT =3,
  1313. DMUS_NOTIFY_ON_PERFORMANCE =4,
  1314. DMUS_NOTIFY_ON_SEGMENT =5
  1315. } CONST_DMUS_NOTIFICATION_TYPE;
  1316. ///////////////////////////////////////////////////////////////////////////
  1317. //
  1318. // Direct Sound structs
  1319. //
  1320. ///////////////////////////////////////////////////////////////////////////
  1321. [helpcontext(81937)]
  1322. typedef struct DSEFFECTDESC_CDESC
  1323. {
  1324. [hidden] LONG lSize;
  1325. LONG lFlags;
  1326. BSTR guidDSFXClass;
  1327. #if 0
  1328. I_dxj_DirectSoundBuffer *SendBuffer;
  1329. #endif
  1330. [hidden] LONG lReserved;
  1331. [hidden] LONG lReserved2;
  1332. } DSEFFECTDESC_CDESC;
  1333. [helpcontext(81837)]
  1334. typedef struct DSBCAPS_CDESC
  1335. {
  1336. [hidden] LONG lSize;
  1337. CONST_DSBCAPSFLAGS lFlags;
  1338. LONG lBufferBytes;
  1339. LONG lUnlockTransferRate;
  1340. LONG lPlayCpuOverhead;
  1341. } DSBCAPS_CDESC;
  1342. [helpcontext(81840)]
  1343. typedef struct DSCAPS_CDESC {
  1344. [hidden] LONG lSize;
  1345. CONST_DSCAPSFLAGS lFlags;
  1346. LONG lMinSecondarySampleRate;
  1347. LONG lMaxSecondarySampleRate;
  1348. LONG lPrimaryBuffers;
  1349. LONG lMaxHwMixingAllBuffers;
  1350. LONG lMaxHwMixingStaticBuffers;
  1351. LONG lMaxHwMixingStreamingBuffers;
  1352. LONG lFreeHwMixingAllBuffers;
  1353. LONG lFreeHwMixingStaticBuffers;
  1354. LONG lFreeHwMixingStreamingBuffers;
  1355. LONG lMaxHw3DAllBuffers;
  1356. LONG lMaxHw3DStaticBuffers;
  1357. LONG lMaxHw3DStreamingBuffers;
  1358. LONG lFreeHw3DAllBuffers;
  1359. LONG lFreeHw3DStaticBuffers;
  1360. LONG lFreeHw3DStreamingBuffers;
  1361. LONG lTotalHwMemBytes;
  1362. LONG lFreeHwMemBytes;
  1363. LONG lMaxContigFreeHwMemBytes;
  1364. LONG lUnlockTransferRateHwBuffers;
  1365. LONG lPlayCpuOverheadSwBuffers;
  1366. LONG lReserved1;
  1367. LONG lReserved2;
  1368. } DSCAPS_CDESC;
  1369. [helpcontext(81951)]
  1370. typedef struct WAVEFORMATEX_CDESC
  1371. {
  1372. SHORT nFormatTag; /* format type */
  1373. SHORT nChannels; /* number of channels (i.e. mono, stereo...) */
  1374. LONG lSamplesPerSec; /* sample rate */
  1375. LONG lAvgBytesPerSec; /* for buffer estimation */
  1376. SHORT nBlockAlign; /* block size of data */
  1377. SHORT nBitsPerSample; /* number of bits per sample of mono data */
  1378. SHORT nSize; /* nbytes of the extra information */
  1379. LONG lExtra; // was byte* seen as an array - extra information (after cbSize)
  1380. } WAVEFORMATEX_CDESC;
  1381. [helpcontext(81931)]
  1382. typedef struct DSBUFFERDESC_CDESC //docdoc: requires WaveFormatex
  1383. {
  1384. [hidden] LONG lSize;
  1385. CONST_DSBCAPSFLAGS lFlags;
  1386. LONG lBufferBytes;
  1387. [hidden] LONG lReserved;
  1388. WAVEFORMATEX_CDESC fxFormat; // WaveFormatex *lpwfxFormat;
  1389. BSTR guid3DAlgorithm;
  1390. } DSBUFFERDESC_CDESC;
  1391. [helpcontext(81936)]
  1392. typedef struct DSCURSORS_CDESC
  1393. {
  1394. LONG lPlay; // Play cursor
  1395. LONG lWrite; // Write Cursor
  1396. } DSCURSORS_CDESC;
  1397. //
  1398. // 3D Sound
  1399. //
  1400. [helpcontext(81927)]
  1401. typedef struct DS3DBUFFER_CDESC
  1402. {
  1403. [hidden]LONG lSize;
  1404. D3DVECTOR_CDESC vPosition;
  1405. D3DVECTOR_CDESC vVelocity;
  1406. LONG lInsideConeAngle;
  1407. LONG lOutsideConeAngle;
  1408. D3DVECTOR_CDESC vConeOrientation;
  1409. LONG lConeOutsideVolume;
  1410. FLOAT minDistance;
  1411. FLOAT maxDistance;
  1412. CONST_DS3DMODEFLAGS lMode;
  1413. }DS3DBUFFER_CDESC;
  1414. [helpcontext(81928)]
  1415. typedef struct DS3DLISTENER_CDESC
  1416. {
  1417. [hidden] LONG lSize;
  1418. D3DVECTOR_CDESC vPosition;
  1419. D3DVECTOR_CDESC vVelocity;
  1420. D3DVECTOR_CDESC vOrientFront;
  1421. D3DVECTOR_CDESC vOrientTop;
  1422. FLOAT distanceFactor;
  1423. FLOAT rolloffFactor;
  1424. FLOAT dopplerFactor;
  1425. } DS3DLISTENER_CDESC;
  1426. [helpcontext(81841)]
  1427. typedef struct DSCBCAPS_CDESC
  1428. {
  1429. [hidden] LONG lSize;
  1430. CONST_DSCBCAPSFLAGS lFlags;
  1431. LONG lBufferBytes;
  1432. LONG lReserved;
  1433. } DSCBCAPS_CDESC;
  1434. [helpcontext(81843)]
  1435. typedef struct DSCCAPS_CDESC
  1436. {
  1437. [hidden] LONG lSize;
  1438. CONST_DSCCAPSFLAGS lFlags;
  1439. CONST_WAVEFORMATFLAGS lFormats;
  1440. LONG lChannels;
  1441. } DSCCAPS_CDESC;
  1442. [helpcontext(81934)]
  1443. typedef struct DSCBUFFERDESC_CDESC
  1444. {
  1445. [hidden]LONG lSize;
  1446. CONST_DSCBCAPSFLAGS lFlags;
  1447. LONG lBufferBytes;
  1448. [hidden] LONG lReserved;
  1449. WAVEFORMATEX_CDESC fxFormat;
  1450. BSTR guid3DAlgorithm;
  1451. } DSCBUFFERDESC_CDESC;
  1452. [helpcontext(81930)]
  1453. typedef struct DSBPOSITIONNOTIFY_CDESC
  1454. {
  1455. LONG lOffset;
  1456. LONG hEventNotify;
  1457. } DSBPOSITIONNOTIFY_CDESC;
  1458. //
  1459. // Direct Sound Effects Structures
  1460. //
  1461. [helpcontext(81857)]
  1462. typedef struct DSFXPARAMEQ_CDESC
  1463. {
  1464. FLOAT fCenter;
  1465. FLOAT fBandwidth;
  1466. FLOAT fGain;
  1467. } DSFXPARAMEQ_CDESC;
  1468. [helpcontext(81210)]
  1469. typedef struct DSFXWAVESREVERB_CDESC
  1470. {
  1471. FLOAT fInGain; // [-96.0,0.0] default: 0.0 dB
  1472. FLOAT fReverbMix; // [-96.0,0.0] default: -10.0 db
  1473. FLOAT fReverbTime; // [0.001,3000.0] default: 1000.0 ms
  1474. FLOAT fHighFreqRTRatio; // [0.001,0.999] default: 0.001
  1475. } DSFXWAVESREVERB_CDESC;
  1476. #if 0
  1477. [helpcontext(81950)]
  1478. typedef struct DSFXSEND_CDESC
  1479. {
  1480. LONG lSendLevel;
  1481. } DSFXSEND_CDESC;
  1482. #endif
  1483. [helpcontext(81856)]
  1484. typedef struct DSFXGARGLE_CDESC
  1485. {
  1486. CONST_DSFXGARGLE_RATEHZ lRateHz;
  1487. CONST_DSFXGARGLE_WAVE lWaveShape;
  1488. } DSFXGARGLE_CDESC;
  1489. [helpcontext(81943)]
  1490. typedef struct DSFXCHORUS_CDESC
  1491. {
  1492. FLOAT fWetDryMix;
  1493. FLOAT fDepth;
  1494. FLOAT fFeedback;
  1495. FLOAT fFrequency;
  1496. CONST_DSFX_WAVE lWaveform;
  1497. FLOAT fDelay;
  1498. CONST_DSFX_PHASE lPhase;
  1499. } DSFXCHORUS_CDESC;
  1500. [helpcontext(81147)]
  1501. typedef struct DSFXFLANGER_CDESC
  1502. {
  1503. FLOAT fWetDryMix;
  1504. FLOAT fDepth;
  1505. FLOAT fFeedback;
  1506. FLOAT fFrequency;
  1507. CONST_DSFX_WAVE lWaveform;
  1508. FLOAT fDelay;
  1509. CONST_DSFX_PHASE lPhase;
  1510. } DSFXFLANGER_CDESC;
  1511. [helpcontext(81946)]
  1512. typedef struct DSFXECHO_CDESC
  1513. {
  1514. FLOAT fWetDryMix;
  1515. FLOAT fFeedback;
  1516. FLOAT fLeftDelay;
  1517. FLOAT fRightDelay;
  1518. CONST_DSFX_PANDELAY lPanDelay;
  1519. } DSFXECHO_CDESC;
  1520. [helpcontext(81853)]
  1521. typedef struct DSFXDISTORTION_CDESC
  1522. {
  1523. FLOAT fGain;
  1524. FLOAT fEdge;
  1525. FLOAT fPostEQCenterFrequency;
  1526. FLOAT fPostEQBandwidth;
  1527. FLOAT fPreLowpassCutoff;
  1528. } DSFXDISTORTION_CDESC;
  1529. [helpcontext(81852)]
  1530. typedef struct DSFXCOMPRESSOR_CDESC
  1531. {
  1532. FLOAT fGain;
  1533. FLOAT fAttack;
  1534. FLOAT fRelease;
  1535. FLOAT fThreshold;
  1536. FLOAT fRatio;
  1537. FLOAT fPredelay;
  1538. } DSFXCOMPRESSOR_CDESC;
  1539. #if 0
  1540. [helpcontext(81872)]
  1541. typedef struct DSFXI3DL2OBSTRUCTION_CDESC
  1542. {
  1543. CONST_I3DL2SOURCEOBSTRUCTION lHFLevel;
  1544. FLOAT fRatio;
  1545. } DSFXI3DL2OBSTRUCTION_CDESC;
  1546. [helpcontext(81873)]
  1547. typedef struct DSFXI3DL2OCCLUSION_CDESC
  1548. {
  1549. CONST_I3DL2SOURCEOCCLUSION lHFLevel;
  1550. FLOAT fRatio;
  1551. } DSFXI3DL2OCCLUSION_CDESC;
  1552. [helpcontext(81875)]
  1553. typedef struct DSFXI3DL2SOURCE_CDESC
  1554. {
  1555. CONST_I3DL2SOURCEDIRECT lDirect; // [-10000, 1000] default: 0 mB
  1556. CONST_I3DL2SOURCEDIRECTHF lDirectHF; // [-10000, 0] default: 0 mB
  1557. CONST_I3DL2SOURCEROOM lRoom; // [-10000, 1000] default: 0 mB
  1558. CONST_I3DL2SOURCEROOMHF lRoomHF; // [-10000, 0] default: 0 mB
  1559. FLOAT fRoomRolloffFactor; // [0.0, 10.0] default: 0.0
  1560. DSFXI3DL2OBSTRUCTION_CDESC Obstruction;
  1561. DSFXI3DL2OCCLUSION_CDESC Occlusion;
  1562. CONST_I3DL2SOURCEFLAGS lFlags; // default: DSFX_I3DL2SOURCE_OCC_LPF
  1563. } DSFXI3DL2SOURCE_CDESC;
  1564. #endif
  1565. [helpcontext(81849)]
  1566. typedef struct DSFXI3DL2REVERB_CDESC
  1567. {
  1568. LONG lRoom; // [-10000, 0] default: -10000 mB
  1569. LONG lRoomHF; // [-10000, 0] default: 0 mB
  1570. FLOAT fRoomRolloffFactor; // [0.0, 10.0] default: 0.0
  1571. FLOAT fDecayTime; // [0.1, 20.0] default: 1.0 s
  1572. FLOAT fDecayHFRatio; // [0.1, 2.0] default: 0.5
  1573. LONG lReflections; // [-10000, 1000] default: -10000 mB
  1574. FLOAT fReflectionsDelay; // [0.0, 0.3] default: 0.02 s
  1575. LONG lReverb; // [-10000, 2000] default: -10000 mB
  1576. FLOAT fReverbDelay; // [0.0, 0.1] default: 0.04 s
  1577. FLOAT fDiffusion; // [0.0, 100.0] default: 100.0 %
  1578. FLOAT fDensity; // [0.0, 100.0] default: 100.0 %
  1579. FLOAT fHFReference; // [20.0, 20000.0] default: 5000.0 Hz
  1580. } DSFXI3DL2REVERB_CDESC;
  1581. //
  1582. // DirectMusic Structures
  1583. //
  1584. [helpcontext(81666)]
  1585. typedef struct DMUS_AUDIOPARAMS_CDESC
  1586. {
  1587. [hidden] LONG dwSize; /* Size of this structure. */
  1588. VARIANT_BOOL fInitNow; /* If true, the sink and synth are created immediately and results returned in this structure. */
  1589. CONST_DMUS_AUDIOPARAMS lValidData; /* Flags indicating which fields below are valid. */
  1590. CONST_DMUS_AUDIO lFeatures; /* Required DMUS_AUDIOF features. */
  1591. LONG lVoices; /* Required number of voices. */
  1592. LONG lSampleRate; /* Sample rate of synths and sink. */
  1593. BSTR clsidDefaultSynth; /* Class ID of default synthesizer. */
  1594. } DMUS_AUDIOPARAMS_CDESC;
  1595. [helpcontext(81764)]
  1596. typedef struct DMUS_TIMESIGNATURE_CDESC {
  1597. LONG mtTime;
  1598. Byte beatsPerMeasure;
  1599. Byte beat;
  1600. SHORT gridsPerBeat;
  1601. } DMUS_TIMESIGNATURE_CDESC;
  1602. #define MUSIC_TIME LONG
  1603. [helpcontext(81763)]
  1604. typedef struct DMUS_NOTIFICATION_PMSG_CDESC
  1605. {
  1606. [hidden] LONG lFlags;
  1607. LONG ctTime;
  1608. LONG mtTime;
  1609. LONG lNotificationType;
  1610. LONG lNotificationOption;
  1611. LONG lField1;
  1612. LONG lField2;
  1613. IUnknown *User;
  1614. } DMUS_NOTIFICATION_PMSG_CDESC;
  1615. [helpcontext(81761)]
  1616. typedef struct DMUS_CURVE_PMSG_CDESC {
  1617. MUSIC_TIME mtDuration;
  1618. MUSIC_TIME mtOriginalStart;
  1619. MUSIC_TIME mtResetDuration;
  1620. SHORT startValue;
  1621. SHORT endValue;
  1622. SHORT resetValue;
  1623. SHORT measure;
  1624. SHORT offset;
  1625. Byte beat;
  1626. Byte grid;
  1627. Byte type;
  1628. Byte curveShape;
  1629. Byte ccData;
  1630. Byte flags;
  1631. SHORT ParamType; /* RPN or NRPN parameter number. */
  1632. SHORT MergeIndex; /* Allows multiple parameters to be merged (pitchbend, volume, and expression.)*/
  1633. } DMUS_CURVE_PMSG_CDESC;
  1634. [helpcontext(81762)]
  1635. typedef struct DMUS_NOTE_PMSG_CDESC {
  1636. MUSIC_TIME mtDuration;
  1637. SHORT musicValue;
  1638. SHORT measure;
  1639. SHORT offset;
  1640. Byte beat;
  1641. Byte grid;
  1642. Byte velocity;
  1643. Byte flags;
  1644. Byte timeRange;
  1645. Byte durRange;
  1646. Byte velRange;
  1647. Byte playModeFlags;
  1648. Byte subChordLevel;
  1649. Byte midiValue;
  1650. SHORT transpose; //becomes byte
  1651. } DMUS_NOTE_PMSG_CDESC;
  1652. ///////////////////////////////////////////////////////////////////////////
  1653. //
  1654. // Direct Sound Interfaces
  1655. //
  1656. ///////////////////////////////////////////////////////////////////////////
  1657. [
  1658. object,
  1659. uuid(9F76FB00-8E92-11d1-8808-00C04FC2C603),
  1660. helpstring("DirectSound Interface"),
  1661. pointer_default(unique),
  1662. local,
  1663. helpcontext(312400)
  1664. ]
  1665. interface I_dxj_DirectSound : IUnknown
  1666. {
  1667. import "oaidl.idl";
  1668. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1669. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1670. //
  1671. //*** IDirectSound methods ***
  1672. //
  1673. [helpcontext(81823)] HRESULT createSoundBuffer([in] DSBUFFERDESC_CDESC *bufferDesc,
  1674. [out, retval] I_dxj_DirectSoundBuffer **soundBuffer);
  1675. [helpcontext(81824)] HRESULT createSoundBufferFromFile([in] BSTR fileName, [in,out] DSBUFFERDESC_CDESC *bufferDesc,
  1676. [out, retval] I_dxj_DirectSoundBuffer **soundBuffer);
  1677. [helpcontext(81825)] HRESULT createSoundBufferFromResource([in] BSTR dll, [in] BSTR resourceName, [in,out] DSBUFFERDESC_CDESC *bufferDesc,
  1678. [out, retval] I_dxj_DirectSoundBuffer **soundBuffer);
  1679. [helpcontext(81827)] HRESULT getCaps([in,out] DSCAPS_CDESC *caps);
  1680. [helpcontext(81826)] HRESULT duplicateSoundBuffer([in] I_dxj_DirectSoundBuffer *original,
  1681. [out, retval] I_dxj_DirectSoundBuffer **duplicate);
  1682. #ifdef _WIN64
  1683. [helpcontext(81829)] HRESULT setCooperativeLevel([in] HWND hwnd, [in] CONST_DSSCLFLAGS level);
  1684. #else
  1685. [helpcontext(81829)] HRESULT setCooperativeLevel([in] LONG hwnd, [in] CONST_DSSCLFLAGS level);
  1686. #endif
  1687. [helpcontext(81828)] HRESULT getSpeakerConfig([out,retval] CONST_DSSPEAKERFLAGS *speakerConfig);
  1688. [helpcontext(81830)] HRESULT setSpeakerConfig([in] CONST_DSSPEAKERFLAGS speakerConfig);
  1689. [helpcontext(81822)] HRESULT CreatePrimarySoundBuffer([in] DSBUFFERDESC_CDESC *bufferDesc,
  1690. [out, retval] I_dxj_DirectSoundPrimaryBuffer **soundBuffer);
  1691. };
  1692. [
  1693. object,
  1694. uuid(4E6F040E-03FB-4ba1-897C-2265700D5368),
  1695. helpstring("DirectSoundPrimaryBuffer Interface"),
  1696. pointer_default(unique),
  1697. local,
  1698. helpcontext(312600)
  1699. ]
  1700. interface I_dxj_DirectSoundPrimaryBuffer : IUnknown
  1701. {
  1702. import "oaidl.idl";
  1703. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1704. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1705. //
  1706. /*** IDirectSoundBuffer methods ***/
  1707. //
  1708. [helpcontext(96791)] HRESULT getDirectSound3dListener([out, retval] I_dxj_DirectSound3dListener **lpdsl);
  1709. [helpcontext(81889)] HRESULT getCaps([in,out] DSBCAPS_CDESC *caps);
  1710. [helpcontext(81890)] HRESULT getCurrentPosition([out] DSCURSORS_CDESC *cursors);
  1711. [helpcontext(81892)] HRESULT getFormat([in,out] WAVEFORMATEX_CDESC *format);
  1712. [helpcontext(81895)] HRESULT getVolume([out,retval] LONG *volume);
  1713. [helpcontext(81893)] HRESULT getPan([out,retval] LONG *pan);
  1714. [helpcontext(81894)] HRESULT getStatus([out,retval] CONST_DSBSTATUSFLAGS *status);
  1715. [hidden] HRESULT initialize([in] I_dxj_DirectSound *directSound,
  1716. [in,out] DSBUFFERDESC_CDESC *bufferDesc, [in,out] byte *wbuf);
  1717. [helpcontext(81903)] HRESULT writeBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSBLOCKFLAGS flags);
  1718. [helpcontext(81897)] HRESULT readBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSBLOCKFLAGS flags);
  1719. [helpcontext(81896)] HRESULT play([in] CONST_DSBPLAYFLAGS flags);
  1720. [helpcontext(81899)] HRESULT setFormat([in] WAVEFORMATEX_CDESC *format);
  1721. [helpcontext(81901)] HRESULT setVolume([in] LONG volume);
  1722. [helpcontext(81900)] HRESULT setPan([in] LONG pan);
  1723. [helpcontext(81902)] HRESULT stop();
  1724. [helpcontext(81898)] HRESULT restore();
  1725. };
  1726. ///////////////////////////////////////////////////////////////////////////
  1727. [
  1728. object,
  1729. uuid(9F76FB01-8E92-11d1-8808-00C04FC2C603),
  1730. helpstring("DirectSoundBuffer Interface"),
  1731. pointer_default(unique),
  1732. local,
  1733. helpcontext(98600)
  1734. ]
  1735. interface I_dxj_DirectSoundBuffer : IUnknown
  1736. {
  1737. import "oaidl.idl";
  1738. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1739. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1740. //
  1741. /*** IDirectSoundBuffer methods ***/
  1742. //
  1743. [helpcontext(81908)] HRESULT getDirectSound3dBuffer([out, retval] I_dxj_DirectSound3dBuffer **lpdsb);
  1744. [helpcontext(81906)] HRESULT getCaps([in,out] DSBCAPS_CDESC *caps);
  1745. [helpcontext(81907)] HRESULT getCurrentPosition([out] DSCURSORS_CDESC *cursors);
  1746. [helpcontext(81909)] HRESULT getFormat([in,out] WAVEFORMATEX_CDESC *format);
  1747. [helpcontext(81914)] HRESULT getVolume([out,retval] LONG *volume);
  1748. [helpcontext(81912)] HRESULT getPan([out,retval] LONG *pan);
  1749. [helpcontext(81910)] HRESULT getFrequency([out,retval] LONG *frequency);
  1750. [helpcontext(81913)] HRESULT getStatus([out,retval] CONST_DSBSTATUSFLAGS *status);
  1751. [hidden] HRESULT initialize([in] I_dxj_DirectSound *directSound,
  1752. [in,out] DSBUFFERDESC_CDESC *bufferDesc, [in,out] byte *wbuf);
  1753. [helpcontext(81926)] HRESULT writeBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSBLOCKFLAGS flags);
  1754. [helpcontext(81116)] HRESULT readBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSBLOCKFLAGS flags);
  1755. [helpcontext(81915)] HRESULT play([in] CONST_DSBPLAYFLAGS flags);
  1756. [helpcontext(81919)] HRESULT setCurrentPosition([in] LONG newPosition);
  1757. [helpcontext(81924)] HRESULT setVolume([in] LONG volume);
  1758. [helpcontext(81923)] HRESULT setPan([in] LONG pan);
  1759. [helpcontext(81920)] HRESULT setFrequency([in] LONG frequency);
  1760. [helpcontext(81925)] HRESULT stop();
  1761. [helpcontext(81917)] HRESULT restore();
  1762. [helpcontext(81922)] HRESULT setNotificationPositions(LONG nElements, SAFEARRAY(DSBPOSITIONNOTIFY_CDESC) *psa);
  1763. [helpcontext(81918)] HRESULT saveToFile([in] BSTR filename);
  1764. [helpcontext(81921)] HRESULT SetFX([in] LONG lEffectsCount, SAFEARRAY(DSEFFECTDESC_CDESC) *Buffers, SAFEARRAY(LONG) *lResultIDs);
  1765. [helpcontext(81905)] HRESULT AcquireResources([in] LONG lFlags, [in,out] SAFEARRAY(LONG) *lEffectsResults);
  1766. [helpcontext(81911)] HRESULT GetObjectinPath([in] BSTR guidFX, [in] LONG lIndex, [in] BSTR iidInterface, [out,retval] IUnknown **ret);
  1767. };
  1768. ///////////////////////////////////////////////////////////////////////////
  1769. // I_dxj_DirectSound3dListener
  1770. [
  1771. object,
  1772. uuid(9F76FB02-8E92-11d1-8808-00C04FC2C603),
  1773. helpstring("DirectSound3dListener Interface"),
  1774. pointer_default(unique),
  1775. local,
  1776. helpcontext(312800)
  1777. ]
  1778. interface I_dxj_DirectSound3dListener : IUnknown
  1779. {
  1780. import "oaidl.idl";
  1781. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1782. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1783. //
  1784. /*** IDirectSound3D methods ***/
  1785. //
  1786. [helpcontext(81806)] HRESULT getAllParameters( [in,out] DS3DLISTENER_CDESC *listener );
  1787. [helpcontext(81808)] HRESULT getDistanceFactor( [out,retval] FLOAT *distanceFactor );
  1788. [helpcontext(81809)] HRESULT getDopplerFactor( [out,retval] FLOAT *dopplerFactor );
  1789. [helpcontext(81810)] HRESULT getOrientation( [in,out] D3DVECTOR_CDESC *orientFront, [in,out] D3DVECTOR_CDESC *orientTop );
  1790. [helpcontext(81811)] HRESULT getPosition( [out] D3DVECTOR_CDESC *position );
  1791. [helpcontext(81812)] HRESULT getRolloffFactor( [out,retval] FLOAT* rolloffFactor );
  1792. [helpcontext(81813)] HRESULT getVelocity( [out,retval] D3DVECTOR_CDESC *velocity );
  1793. [helpcontext(81814)] HRESULT setAllParameters( [in] DS3DLISTENER_CDESC *listener, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1794. [helpcontext(81815)] HRESULT setDistanceFactor( [in] FLOAT distanceFactor, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1795. [helpcontext(81816)] HRESULT setDopplerFactor( [in] FLOAT dopplerFactor, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1796. [helpcontext(81817)] HRESULT setOrientation( [in] FLOAT xFront, [in] FLOAT yFront, [in] FLOAT zFront,
  1797. [in] FLOAT xTop, [in] FLOAT yTop, [in] FLOAT zTop,
  1798. [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1799. [helpcontext(81818)] HRESULT setPosition( [in] FLOAT x , [in] FLOAT y, [in] FLOAT z, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1800. [helpcontext(81819)] HRESULT setRolloffFactor( [in] FLOAT rolloffFactor, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1801. [helpcontext(81820)] HRESULT setVelocity( [in] FLOAT x, [in] FLOAT y, [in] FLOAT z, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1802. [helpcontext(81805)] HRESULT commitDeferredSettings();
  1803. [helpcontext(81807)] HRESULT getDirectSoundBuffer([out,retval] I_dxj_DirectSoundPrimaryBuffer **retVal);
  1804. };
  1805. ///////////////////////////////////////////////////////////////////////////
  1806. // IDirectSound3DBuffer
  1807. [
  1808. object,
  1809. uuid(9F76FB03-8E92-11d1-8808-00C04FC2C603),
  1810. helpstring("DirectSound3DBuffer Interface"),
  1811. pointer_default(unique),
  1812. local,
  1813. helpcontext(313000)
  1814. ]
  1815. interface I_dxj_DirectSound3dBuffer : IUnknown
  1816. {
  1817. import "oaidl.idl";
  1818. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1819. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1820. //
  1821. /*** IDirectSoundBuffer3D methods ***/
  1822. //
  1823. [helpcontext(81789)] HRESULT getDirectSoundBuffer([out,retval] I_dxj_DirectSoundBuffer **retVal);
  1824. [helpcontext(81785)] HRESULT getAllParameters( [in,out] DS3DBUFFER_CDESC *buffer );
  1825. [helpcontext(81786)] HRESULT getConeAngles( [in,out] LONG *inCone, [in,out] LONG *outCone );
  1826. [helpcontext(81787)] HRESULT getConeOrientation( [in,out] D3DVECTOR_CDESC* orientation );
  1827. [helpcontext(81788)] HRESULT getConeOutsideVolume( [out,retval] LONG * coneOutsideVolume );
  1828. [helpcontext(81790)] HRESULT getMaxDistance( [out,retval] FLOAT* maxDistance );
  1829. [helpcontext(81791)] HRESULT getMinDistance( [out,retval] FLOAT* minDistance );
  1830. [helpcontext(81792)] HRESULT getMode( [out,retval] CONST_DS3DMODEFLAGS *mode );
  1831. [helpcontext(81793)] HRESULT getPosition( [in,out] D3DVECTOR_CDESC* position );
  1832. [helpcontext(81794)] HRESULT getVelocity( [in,out] D3DVECTOR_CDESC* velocity );
  1833. [helpcontext(81795)] HRESULT setAllParameters( [in] DS3DBUFFER_CDESC *buffer,[in] CONST_DS3DAPPLYFLAGS applyFlag);
  1834. [helpcontext(81796)] HRESULT setConeAngles( [in] LONG inCone, [in] LONG outCone, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1835. [helpcontext(81797)] HRESULT setConeOrientation( [in] FLOAT x , [in] FLOAT y, [in] FLOAT z, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1836. [helpcontext(81798)] HRESULT setConeOutsideVolume( [in] LONG coneOutsideVolume,[in] CONST_DS3DAPPLYFLAGS applyFlag);
  1837. [helpcontext(81799)] HRESULT setMaxDistance( [in] FLOAT maxDistance,[in] CONST_DS3DAPPLYFLAGS applyFlag);
  1838. [helpcontext(81800)] HRESULT setMinDistance( [in] FLOAT minDistance,[in] CONST_DS3DAPPLYFLAGS applyFlag);
  1839. [helpcontext(81801)] HRESULT setMode( [in] CONST_DS3DMODEFLAGS mode,[in] CONST_DS3DAPPLYFLAGS applyFlag);
  1840. [helpcontext(81802)] HRESULT setPosition( [in] FLOAT x , [in] FLOAT y, [in] FLOAT z, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1841. [helpcontext(81803)] HRESULT setVelocity( [in] FLOAT x , [in] FLOAT y, [in] FLOAT z, [in] CONST_DS3DAPPLYFLAGS applyFlag);
  1842. };
  1843. [
  1844. object,
  1845. uuid(9F76FB04-8E92-11d1-8808-00C04FC2C603),
  1846. helpstring("DirectSoundCapture Interface"),
  1847. pointer_default(unique),
  1848. local,
  1849. helpcontext(313200)
  1850. ]
  1851. interface I_dxj_DirectSoundCapture : IUnknown
  1852. {
  1853. import "oaidl.idl";
  1854. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1855. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1856. [helpcontext(81832)] HRESULT createCaptureBuffer([in]DSCBUFFERDESC_CDESC *bufferDesc,[out,retval] I_dxj_DirectSoundCaptureBuffer **ret);
  1857. [helpcontext(81833)] HRESULT getCaps([in,out]DSCCAPS_CDESC *caps);
  1858. };
  1859. [
  1860. object,
  1861. uuid(9F76FB05-8E92-11d1-8808-00C04FC2C603),
  1862. helpstring("DirectSoundCaptureBuffer Interface"),
  1863. pointer_default(unique),
  1864. helpcontext(313400)
  1865. ]
  1866. interface I_dxj_DirectSoundCaptureBuffer : IUnknown
  1867. {
  1868. import "oaidl.idl";
  1869. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1870. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1871. [helpcontext(81835)] HRESULT getCaps([in,out]DSCBCAPS_CDESC *caps);
  1872. [helpcontext(81836)] HRESULT getCurrentPosition([in,out] DSCURSORS_CDESC *cursors);
  1873. [helpcontext(81537)] HRESULT getFormat([in,out] WAVEFORMATEX_CDESC *waveformat);
  1874. [helpcontext(81838)] HRESULT getStatus([out,retval] CONST_DSCBSTATUSFLAGS * status);
  1875. [hidden] HRESULT initialize([in]I_dxj_DirectSoundCaptureBuffer *captureBuffer,[in]DSCBUFFERDESC_CDESC *bufferDesc);
  1876. [helpcontext(81541)] HRESULT start([in] CONST_DSCBSTARTFLAGS flags);
  1877. [helpcontext(81842)] HRESULT stop();
  1878. [helpcontext(81543)] HRESULT writeBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSCBLOCKFLAGS flags);
  1879. [helpcontext(81839)] HRESULT readBuffer([in] LONG start, [in] LONG size, [in] void *buffer, [in] CONST_DSCBLOCKFLAGS flags);
  1880. [helpcontext(81540)] HRESULT setNotificationPositions(LONG nElements, SAFEARRAY(DSBPOSITIONNOTIFY_CDESC) *psa);
  1881. };
  1882. [
  1883. object,
  1884. uuid(9F76FB07-8E92-11d1-8808-00C04FC2C603),
  1885. helpstring("DSEnum Interface"),
  1886. pointer_default(unique),
  1887. local,
  1888. helpcontext(313600)
  1889. ]
  1890. interface I_dxj_DSEnum : IUnknown
  1891. {
  1892. import "oaidl.idl";
  1893. [helpcontext(81847)] HRESULT getGuid([in] LONG index,[out,retval] BSTR *guid);
  1894. [helpcontext(81846)] HRESULT getDescription([in] LONG index,[out,retval] BSTR *guid);
  1895. [helpcontext(81848)] HRESULT getName([in] LONG index,[out,retval] BSTR *guid);
  1896. [helpcontext(81845)] HRESULT getCount([out,retval]LONG *count);
  1897. };
  1898. ///////////////////////////////////////////////////////////////////////////
  1899. //
  1900. // Direct Sound Effects Interfaces
  1901. //
  1902. ///////////////////////////////////////////////////////////////////////////
  1903. [
  1904. object,
  1905. uuid(A4D4D800-94BE-4c33-9A0E-EBA0696A63A9),
  1906. helpstring("DirectSoundFXWavesReverb Interface"),
  1907. pointer_default(unique),
  1908. local,
  1909. helpcontext(81211)
  1910. ]
  1911. interface I_dxj_DirectSoundFXWavesReverb : IUnknown
  1912. {
  1913. import "oaidl.idl";
  1914. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1915. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1916. [helpcontext(81887)] HRESULT SetAllParameters([in,out] DSFXWAVESREVERB_CDESC *params);
  1917. [helpcontext(81886)] HRESULT GetAllParameters([out,retval] DSFXWAVESREVERB_CDESC *params);
  1918. };
  1919. [
  1920. object,
  1921. uuid(CD83B9C1-B4E9-416b-97F5-0642DC952301),
  1922. helpstring("DirectSoundFXParamEQ Interface"),
  1923. pointer_default(unique),
  1924. local,
  1925. helpcontext(81212)
  1926. ]
  1927. interface I_dxj_DirectSoundFXParamEQ : IUnknown
  1928. {
  1929. import "oaidl.idl";
  1930. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1931. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1932. [helpcontext(81881)] HRESULT SetAllParameters([in,out] DSFXPARAMEQ_CDESC *params);
  1933. [helpcontext(81880)] HRESULT GetAllParameters([out,retval] DSFXPARAMEQ_CDESC *params);
  1934. };
  1935. [
  1936. object,
  1937. uuid(542C5D87-47FC-457b-859A-1A45BBF71A63),
  1938. helpstring("DirectSoundFXI3DL2Reverb Interface"),
  1939. pointer_default(unique),
  1940. local,
  1941. helpcontext(81213)
  1942. ]
  1943. interface I_dxj_DirectSoundFXI3DL2Reverb : IUnknown
  1944. {
  1945. import "oaidl.idl";
  1946. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1947. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1948. [helpcontext(81870)] HRESULT SetAllParameters([in,out] DSFXI3DL2REVERB_CDESC *params);
  1949. [helpcontext(81868)] HRESULT GetAllParameters([out,retval] DSFXI3DL2REVERB_CDESC *params);
  1950. [helpcontext(81871)] HRESULT SetPreset([in] CONST_DSFX_I3DL2_ENVIRONMENT_PRESETS lPreset);
  1951. [helpcontext(81869)] HRESULT GetPreset([out,retval] LONG *ret);
  1952. [helpcontext(89150)] HRESULT SetQuality([in] CONST_DSFX_I3DL2REVERB_QUALITY lQuality);
  1953. [helpcontext(89151)] HRESULT GetQuality([out,retval] LONG *ret);
  1954. };
  1955. #if 0
  1956. [
  1957. object,
  1958. uuid(F24E6886-C3CC-4a57-A1E4-860314BDF8D6),
  1959. helpstring("DirectSoundFXI3DL2Source Interface"),
  1960. pointer_default(unique),
  1961. local,
  1962. helpcontext(81214)
  1963. ]
  1964. interface I_dxj_DirectSoundFXI3DL2Source : IUnknown
  1965. {
  1966. import "oaidl.idl";
  1967. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1968. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1969. [helpcontext(81876)] HRESULT SetAllParameters([in, out] DSFXI3DL2SOURCE_CDESC *params);
  1970. [helpcontext(81573)] HRESULT GetAllParameters([out,retval] DSFXI3DL2SOURCE_CDESC *params);
  1971. [helpcontext(81877)] HRESULT SetObstructionPreset([in] CONST_DSFX_I3DL2_MATERIAL_PRESET lObstruction);
  1972. [helpcontext(81874)] HRESULT GetObstructionPreset([out,retval] LONG *ret);
  1973. [helpcontext(81878)] HRESULT SetOcclusionPreset([in] CONST_DSFX_I3DL2_MATERIAL_PRESET lOcclusion);
  1974. [helpcontext(81575)] HRESULT GetOcclusionPreset([out,retval] LONG *ret);
  1975. };
  1976. #endif
  1977. [
  1978. object,
  1979. uuid(F902315C-D34A-4133-BD65-4069230811DD),
  1980. helpstring("DirectSoundFXCompressor Interface"),
  1981. pointer_default(unique),
  1982. local,
  1983. helpcontext(81215)
  1984. ]
  1985. interface I_dxj_DirectSoundFXCompressor : IUnknown
  1986. {
  1987. import "oaidl.idl";
  1988. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  1989. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  1990. [helpcontext(81854)] HRESULT SetAllParameters([in,out] DSFXCOMPRESSOR_CDESC *params);
  1991. [helpcontext(81553)] HRESULT GetAllParameters([out,retval] DSFXCOMPRESSOR_CDESC *params);
  1992. };
  1993. [
  1994. object,
  1995. uuid(3CE4D8D6-B301-49b4-9C63-9A989CA40388),
  1996. helpstring("DirectSoundFXDistortion Interface"),
  1997. pointer_default(unique),
  1998. local,
  1999. helpcontext(81216)
  2000. ]
  2001. interface I_dxj_DirectSoundFXDistortion : IUnknown
  2002. {
  2003. import "oaidl.idl";
  2004. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2005. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2006. [helpcontext(81557)] HRESULT SetAllParameters([in,out] DSFXDISTORTION_CDESC *params);
  2007. [helpcontext(81556)] HRESULT GetAllParameters([out,retval] DSFXDISTORTION_CDESC *params);
  2008. };
  2009. [
  2010. object,
  2011. uuid(E852583A-526F-4875-842B-8DB091A20FBC),
  2012. helpstring("DirectSoundFXEcho Interface"),
  2013. pointer_default(unique),
  2014. local,
  2015. helpcontext(81217)
  2016. ]
  2017. interface I_dxj_DirectSoundFXEcho : IUnknown
  2018. {
  2019. import "oaidl.idl";
  2020. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2021. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2022. [helpcontext(81860)] HRESULT SetAllParameters([in,out] DSFXECHO_CDESC *params);
  2023. [helpcontext(81859)] HRESULT GetAllParameters([out,retval] DSFXECHO_CDESC *params);
  2024. };
  2025. [
  2026. object,
  2027. uuid(9F9C7BB0-F4EA-472b-89A8-36FAADBCE26E),
  2028. helpstring("DirectSoundFXFlanger Interface"),
  2029. pointer_default(unique),
  2030. local,
  2031. helpcontext(81218)
  2032. ]
  2033. interface I_dxj_DirectSoundFXFlanger : IUnknown
  2034. {
  2035. import "oaidl.idl";
  2036. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2037. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2038. [helpcontext(81863)] HRESULT SetAllParameters([in,out] DSFXFLANGER_CDESC *params);
  2039. [helpcontext(81862)] HRESULT GetAllParameters([out,retval] DSFXFLANGER_CDESC *params);
  2040. };
  2041. [
  2042. object,
  2043. uuid(E53AC43D-651F-400d-B01F-E8A14512C6D6),
  2044. helpstring("DirectSoundFXChorus Interface"),
  2045. pointer_default(unique),
  2046. local,
  2047. helpcontext(81219)
  2048. ]
  2049. interface I_dxj_DirectSoundFXChorus : IUnknown
  2050. {
  2051. import "oaidl.idl";
  2052. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2053. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2054. [helpcontext(81851)] HRESULT SetAllParameters([in,out] DSFXCHORUS_CDESC *params);
  2055. [helpcontext(81850)] HRESULT GetAllParameters([out,retval] DSFXCHORUS_CDESC *params);
  2056. };
  2057. [
  2058. object,
  2059. uuid(B9B28963-4ADC-44f0-873F-9955244C9BD0),
  2060. helpstring("DirectSoundFXGargle Interface"),
  2061. pointer_default(unique),
  2062. local,
  2063. helpcontext(81220)
  2064. ]
  2065. interface I_dxj_DirectSoundFXGargle : IUnknown
  2066. {
  2067. import "oaidl.idl";
  2068. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2069. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2070. [helpcontext(81866)] HRESULT SetAllParameters([in,out] DSFXGARGLE_CDESC *params);
  2071. [helpcontext(81865)] HRESULT GetAllParameters([out,retval] DSFXGARGLE_CDESC *params);
  2072. };
  2073. #if 0
  2074. [
  2075. object,
  2076. uuid(E307FA2B-1305-403b-A769-2EF053BEAA3E),
  2077. helpstring("DirectSoundFXSend Interface"),
  2078. pointer_default(unique),
  2079. local,
  2080. helpcontext(81221)
  2081. ]
  2082. interface I_dxj_DirectSoundFXSend : IUnknown
  2083. {
  2084. import "oaidl.idl";
  2085. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2086. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2087. [helpcontext(81884)] HRESULT SetAllParameters([in,out] DSFXSEND_CDESC *params);
  2088. [helpcontext(81883)] HRESULT GetAllParameters([out,retval] DSFXSEND_CDESC *params);
  2089. };
  2090. #endif
  2091. ///////////////////////////////////////////////////////////////////////////
  2092. //
  2093. // DirectMusic
  2094. //
  2095. ///////////////////////////////////////////////////////////////////////////
  2096. [
  2097. object,
  2098. uuid(A4A8597A-BA7A-4648-B321-1701598844D8),
  2099. helpstring("DirectMusicAudioPath Interface"),
  2100. pointer_default(unique),
  2101. local,
  2102. helpcontext(81022)
  2103. ]
  2104. interface I_dxj_DirectMusicAudioPath : IUnknown
  2105. {
  2106. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2107. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2108. [helpcontext(81639)] HRESULT GetObjectInPath([in] LONG lPChannel, [in] CONST_DMUSIC_PATH lStage, [in] LONG lBuffer, [in] BSTR guidObject, [in] LONG lIndex, [in] BSTR iidInterface, [out,retval] IUnknown **ppObject);
  2109. [helpcontext(81638)] HRESULT Activate([in] VARIANT_BOOL fActive);
  2110. [helpcontext(81640)] HRESULT SetVolume([in] LONG lVolume, [in] LONG lDuration);
  2111. };
  2112. [
  2113. object,
  2114. uuid(FAFA35A0-8B72-11d2-90B2-00C04FC2C603),
  2115. helpstring("DirectMusicLoader Interface"),
  2116. pointer_default(unique),
  2117. local,
  2118. helpcontext(316800)
  2119. ]
  2120. interface I_dxj_DirectMusicLoader : IUnknown
  2121. {
  2122. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2123. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2124. // in place of GetObject we can have a function for each type -
  2125. // load from Resource
  2126. [helpcontext(81661)] HRESULT loadSegment([in]BSTR filename, [out,retval] I_dxj_DirectMusicSegment **ret);
  2127. [helpcontext(81664)] HRESULT loadStyle([in]BSTR filename, [out,retval] I_dxj_DirectMusicStyle **ret);
  2128. [helpcontext(81655)] HRESULT loadBand([in]BSTR filename, [out,retval] I_dxj_DirectMusicBand **ret);
  2129. [helpcontext(81659)] HRESULT loadCollection([in]BSTR filename, [out,retval] I_dxj_DirectMusicCollection **ret);
  2130. [helpcontext(81662)] HRESULT loadSegmentFromResource([in]BSTR moduleName,[in]BSTR resourceName, [out,retval] I_dxj_DirectMusicSegment **ret);
  2131. [helpcontext(81665)] HRESULT loadStyleFromResource([in]BSTR moduleName,[in]BSTR resourceName, [out,retval] I_dxj_DirectMusicStyle **ret);
  2132. [helpcontext(81656)] HRESULT loadBandFromResource([in]BSTR moduleName,[in] BSTR resourceName, [out,retval] I_dxj_DirectMusicBand **ret);
  2133. [helpcontext(81660)] HRESULT loadCollectionFromResource([in]BSTR moduleName,[in]BSTR resourceName, [out,retval] I_dxj_DirectMusicCollection **ret);
  2134. [helpcontext(81566)] HRESULT setSearchDirectory([in] BSTR dir);
  2135. [helpcontext(81657)] HRESULT loadChordMap([in]BSTR filename, [out,retval] I_dxj_DirectMusicChordMap **ret);
  2136. [helpcontext(81658)] HRESULT loadChordMapFromResource([in]BSTR moduleName,[in]BSTR resourceName, [out,retval] I_dxj_DirectMusicChordMap **ret);
  2137. #if 0
  2138. [helpcontext(81663)] HRESULT LoadSong([in]BSTR filename, [out,retval] I_dxj_DirectMusicSong **ret);
  2139. #endif
  2140. };
  2141. [
  2142. object,
  2143. uuid(FAFA35A1-8B72-11d2-90B2-00C04FC2C603),
  2144. helpstring("DirectMusicSegment Interface"),
  2145. pointer_default(unique),
  2146. local,
  2147. helpcontext(317000)
  2148. ]
  2149. interface I_dxj_DirectMusicSegment : IUnknown
  2150. {
  2151. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2152. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2153. /* I_dxj_DirectMusicSegment */
  2154. [helpcontext(81718)] HRESULT clone ([in] MUSIC_TIME mtStart, [in] MUSIC_TIME mtEnd, [out,retval] I_dxj_DirectMusicSegment** ppSegment);
  2155. [helpcontext(81734)] HRESULT setStartPoint ([in] MUSIC_TIME mtStart) ;
  2156. [helpcontext(81727)] HRESULT getStartPoint ([out,retval] MUSIC_TIME* pmtStart);
  2157. [helpcontext(81731)] HRESULT setLoopPoints ([in] MUSIC_TIME mtStart, [in] MUSIC_TIME mtEnd);
  2158. [helpcontext(81725)] HRESULT getLoopPointStart ([out,retval] MUSIC_TIME* pmtStart);
  2159. [helpcontext(81724)] HRESULT getLoopPointEnd ([out,retval] MUSIC_TIME* pmtEnd);
  2160. [helpcontext(81723)] HRESULT getLength ([out,retval] MUSIC_TIME* pmtLength);
  2161. [helpcontext(81730)] HRESULT setLength ([in] MUSIC_TIME mtLength);
  2162. [helpcontext(81726)] HRESULT getRepeats ([out,retval] LONG* lRepeats);
  2163. [helpcontext(81732)] HRESULT setRepeats ([in] LONG lRepeats) ;
  2164. //track params
  2165. [helpcontext(81720)] HRESULT download( [in] IUnknown *downloadpath);
  2166. [helpcontext(81737)] HRESULT unload( [in] IUnknown *downloadpath);
  2167. [helpcontext(81729)] HRESULT setAutoDownloadEnable ( [in] VARIANT_BOOL b);
  2168. [helpcontext(81735)] HRESULT setTempoEnable ( [in] VARIANT_BOOL b);
  2169. [helpcontext(81736)] HRESULT setTimeSigEnable ( [in] VARIANT_BOOL b);
  2170. [helpcontext(81733)] HRESULT setStandardMidiFile( );
  2171. [helpcontext(81719)] HRESULT connectToCollection ( [in] I_dxj_DirectMusicCollection *c);
  2172. [helpcontext(81721)] HRESULT GetAudioPathConfig([out,retval] IUnknown **ret);
  2173. [helpcontext(81728)] HRESULT getStyle([in] LONG lTrack,[out,retval] I_dxj_DirectMusicStyle **ret);
  2174. [helpcontext(81722)] HRESULT getChordMap([in] LONG lTrack, [in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] I_dxj_DirectMusicChordMap **ret);
  2175. [helpcontext(88722)] HRESULT GetName([out,retval] BSTR *ret);
  2176. };
  2177. [
  2178. object,
  2179. uuid(FAFA35A2-8B72-11d2-90B2-00C04FC2C603),
  2180. helpstring("DirectMusicComposer Interface"),
  2181. pointer_default(unique),
  2182. local,
  2183. helpcontext(317200)
  2184. ]
  2185. interface I_dxj_DirectMusicComposer : IUnknown
  2186. {
  2187. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2188. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2189. [helpcontext(81648)] HRESULT autoTransition ([in] I_dxj_DirectMusicPerformance* performance,
  2190. [in] I_dxj_DirectMusicSegment* toSeg,
  2191. [in] LONG lCommand,
  2192. [in] LONG lFlags,
  2193. [in] I_dxj_DirectMusicChordMap *chordmap,
  2194. [out,retval] I_dxj_DirectMusicSegment** ppTransSeg);
  2195. [helpcontext(81651)] HRESULT composeSegmentFromTemplate ([in] I_dxj_DirectMusicStyle* style,
  2196. [in] I_dxj_DirectMusicSegment* templateSeg,
  2197. [in] SHORT activity,
  2198. [in] I_dxj_DirectMusicChordMap *chordmap,
  2199. [out,retval] I_dxj_DirectMusicSegment** SectionSeg);
  2200. [helpcontext(81650)] HRESULT composeSegmentFromShape ( [in] I_dxj_DirectMusicStyle* style,
  2201. [in] SHORT numberOfMeasures,
  2202. [in] SHORT shape,
  2203. [in] SHORT activity,
  2204. [in] VARIANT_BOOL bIntro,
  2205. [in] VARIANT_BOOL bEnd,
  2206. [in] I_dxj_DirectMusicChordMap *chordmap,
  2207. [out,retval] I_dxj_DirectMusicSegment** SectionSeg);
  2208. [helpcontext(81653)] HRESULT composeTransition ([in] I_dxj_DirectMusicSegment* fromSeg,
  2209. [in] I_dxj_DirectMusicSegment* toSeg,
  2210. [in] MUSIC_TIME mtTime,
  2211. [in] LONG lCommand,
  2212. [in] LONG lFlags,
  2213. [in] I_dxj_DirectMusicChordMap *chordmap,
  2214. [out,retval] I_dxj_DirectMusicSegment** SectionSeg);
  2215. [helpcontext(81652)] HRESULT composeTemplateFromShape ([in] SHORT numMeasures,
  2216. [in] SHORT shape,
  2217. [in] VARIANT_BOOL bIntro,
  2218. [in] VARIANT_BOOL bEnd,
  2219. [in] SHORT endLength,
  2220. [out,retval] I_dxj_DirectMusicSegment** TempSeg);
  2221. [helpcontext(81649)] HRESULT changeChordMap([in] I_dxj_DirectMusicSegment* segment,[in] VARIANT_BOOL trackScale, [in] I_dxj_DirectMusicChordMap* ChordMap);
  2222. };
  2223. [
  2224. object,
  2225. uuid(FAFA35A3-8B72-11d2-90B2-00C04FC2C603),
  2226. helpstring("DirectMusicBand Interface"),
  2227. pointer_default(unique),
  2228. local,
  2229. helpcontext(317400)
  2230. ]
  2231. interface I_dxj_DirectMusicBand : IUnknown
  2232. {
  2233. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2234. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2235. [helpcontext(81642)] HRESULT createSegment([out,retval] I_dxj_DirectMusicSegment **ret);
  2236. [helpcontext(81643)] HRESULT download([in] I_dxj_DirectMusicPerformance *downloadpath);
  2237. [helpcontext(81644)] HRESULT unload([in] I_dxj_DirectMusicPerformance *downloadpath);
  2238. };
  2239. [
  2240. object,
  2241. uuid(FAFA35A4-8B72-11d2-90B2-00C04FC2C603),
  2242. helpstring("DirectMusicStyle Interface"),
  2243. pointer_default(unique),
  2244. local,
  2245. helpcontext(317600)
  2246. ]
  2247. interface I_dxj_DirectMusicStyle : IUnknown
  2248. {
  2249. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2250. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2251. [helpcontext(81753)] HRESULT getBandName([in] LONG index,[out,retval] BSTR *name);
  2252. [helpcontext(81752)] HRESULT getBandCount([out,retval] LONG *count);
  2253. [helpcontext(81751)] HRESULT getBand([in] BSTR name,[out,retval] I_dxj_DirectMusicBand **ret);
  2254. [helpcontext(81754)] HRESULT getDefaultBand([out,retval] I_dxj_DirectMusicBand **ret);
  2255. [helpcontext(81757)] HRESULT getMotifName([in] LONG index,[out,retval] BSTR *name);
  2256. [helpcontext(81756)] HRESULT getMotifCount([out,retval] LONG *count);
  2257. [helpcontext(81755)] HRESULT getMotif([in] BSTR name,[out,retval] I_dxj_DirectMusicSegment **ret);
  2258. [helpcontext(81759)] HRESULT getTimeSignature( [in,out] DMUS_TIMESIGNATURE_CDESC* pTimeSig);
  2259. [helpcontext(81758)] HRESULT getTempo([out,retval] double *pTempo);
  2260. };
  2261. [
  2262. object,
  2263. uuid(FAFA35A5-8B72-11d2-90B2-00C04FC2C603),
  2264. helpstring("DirectMusicChordMap Interface"),
  2265. pointer_default(unique),
  2266. local,
  2267. helpcontext(317800)
  2268. ]
  2269. interface I_dxj_DirectMusicChordMap : IUnknown
  2270. {
  2271. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2272. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2273. [hidden] HRESULT getScale([out,retval] LONG *scale);
  2274. };
  2275. [
  2276. object,
  2277. uuid(FAFA35A6-8B72-11d2-90B2-00C04FC2C603),
  2278. helpstring("DirectMusicSegmentState Interface"),
  2279. pointer_default(unique),
  2280. local,
  2281. helpcontext(318000)
  2282. ]
  2283. interface I_dxj_DirectMusicSegmentState : IUnknown
  2284. {
  2285. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2286. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2287. [helpcontext(81739)] HRESULT getRepeats([out,retval] LONG *repeats);
  2288. [helpcontext(81740)] HRESULT getSeek([out,retval] MUSIC_TIME *seek);
  2289. [helpcontext(81742)] HRESULT getStartPoint([out,retval] MUSIC_TIME *seek);
  2290. [helpcontext(81743)] HRESULT getStartTime([out,retval] MUSIC_TIME *seek);
  2291. [helpcontext(81741)] HRESULT getSegment([out,retval] I_dxj_DirectMusicSegment **segment);
  2292. };
  2293. [
  2294. object,
  2295. uuid(FAFA35A7-8B72-11d2-90B2-00C04FC2C603),
  2296. helpstring("DirectMusicPerformance Interface"),
  2297. pointer_default(unique),
  2298. local,
  2299. helpcontext(318200)
  2300. ]
  2301. interface I_dxj_DirectMusicPerformance : IUnknown
  2302. {
  2303. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2304. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2305. [helpcontext(81671)] HRESULT closeDown ();
  2306. [helpcontext(81690)] HRESULT getSegmentState ([in] MUSIC_TIME mtTime, [out,retval] I_dxj_DirectMusicSegmentState **ret);
  2307. [helpcontext(81695)] HRESULT invalidate ([in] MUSIC_TIME mtTime, [in] LONG flags);
  2308. [helpcontext(81696)] HRESULT isPlaying ([in] I_dxj_DirectMusicSegment* segment, [in] I_dxj_DirectMusicSegmentState* segmentState,[out,retval] VARIANT_BOOL *b);
  2309. [helpcontext(81668)] HRESULT addNotificationType ([in] CONST_DMUS_NOTIFICATION_TYPE type);
  2310. [helpcontext(81699)] HRESULT removeNotificationType ([in] CONST_DMUS_NOTIFICATION_TYPE type);
  2311. #ifdef _WIN64
  2312. [helpcontext(81714)] HRESULT setNotificationHandle([in] HWND hnd);
  2313. #else
  2314. [helpcontext(81714)] HRESULT setNotificationHandle([in] LONG hnd);
  2315. #endif
  2316. [helpcontext(81686)] HRESULT getNotificationPMSG ([in,out] DMUS_NOTIFICATION_PMSG_CDESC *message,[out,retval] VARIANT_BOOL *success);
  2317. [helpcontext(81697)] HRESULT musicToClockTime ([in] MUSIC_TIME mtTime,[out,retval] REFERENCE_TIME *ctTime);
  2318. [helpcontext(81670)] HRESULT clockToMusicTime ([in] REFERENCE_TIME ctTime,[out,retval] MUSIC_TIME *mtTime);
  2319. [helpcontext(81685)] HRESULT getMusicTime ([out,retval] MUSIC_TIME* ret);
  2320. [helpcontext(81676)] HRESULT getClockTime ([out,retval] REFERENCE_TIME* ret);
  2321. [helpcontext(81687)] HRESULT getPrepareTime ([out,retval] LONG *lMilliSeconds);
  2322. [helpcontext(81674)] HRESULT getBumperLength ([out,retval] LONG *lMilliSeconds);
  2323. [helpcontext(81680)] HRESULT getLatencyTime ([out,retval] REFERENCE_TIME *ctTime);
  2324. [helpcontext(81688)] HRESULT getQueueTime ([out,retval] REFERENCE_TIME *ctTime);
  2325. [helpcontext(81689)] HRESULT getResolvedTime ([in] REFERENCE_TIME ctTime, [in] LONG flags, [out,retval] REFERENCE_TIME *ret);
  2326. [helpcontext(81715)] HRESULT setPrepareTime ([in] LONG lMilliSeconds);
  2327. [helpcontext(81708)] HRESULT setBumperLength ([in] LONG lMilliSeconds) ;
  2328. [helpcontext(81669)] HRESULT adjustTime ([in] LONG tAmount);
  2329. //global params
  2330. [helpcontext(81710)] HRESULT setMasterAutoDownload ([in] VARIANT_BOOL b);
  2331. [helpcontext(81681)] HRESULT getMasterAutoDownload ([out,retval] VARIANT_BOOL *b);
  2332. [helpcontext(81712)] HRESULT setMasterTempo ([in] FLOAT tempo);
  2333. [helpcontext(81683)] HRESULT getMasterTempo ([out,retval] FLOAT *tempo);
  2334. [helpcontext(81713)] HRESULT setMasterVolume ([in] LONG vol);
  2335. [helpcontext(81684)] HRESULT getMasterVolume ([out,retval] LONG *v);
  2336. [helpcontext(81711)] HRESULT setMasterGrooveLevel ([in] SHORT level);
  2337. [helpcontext(81682)] HRESULT getMasterGrooveLevel ([out,retval] SHORT *level);
  2338. [helpcontext(81700)] HRESULT Reset([in] LONG resetflags );
  2339. [helpcontext(81691)] HRESULT getStyle([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] I_dxj_DirectMusicStyle **ret);
  2340. [helpcontext(81675)] HRESULT getChordMap([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] I_dxj_DirectMusicChordMap **ret);
  2341. [helpcontext(81677)] HRESULT getCommand([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] Byte *command) ;
  2342. [helpcontext(81679)] HRESULT getGrooveLevel([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] Byte *level) ;
  2343. [helpcontext(81692)] HRESULT getTempo([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[out,retval] double *tempo) ;
  2344. [helpcontext(81693)] HRESULT getTimeSig([in] MUSIC_TIME mtTime,[in,out] MUSIC_TIME *mtUntil,[in,out] DMUS_TIMESIGNATURE_CDESC *timeSig) ;
  2345. [helpcontext(81703)] HRESULT sendNotePMSG([in] MUSIC_TIME lTime,
  2346. [in] LONG flags,
  2347. [in] LONG channel,
  2348. [in] DMUS_NOTE_PMSG_CDESC *msg);
  2349. [helpcontext(81701)] HRESULT sendCurvePMSG([in] MUSIC_TIME lTime,
  2350. [in] LONG flags,
  2351. [in] LONG channel,
  2352. [in] DMUS_CURVE_PMSG_CDESC *msg);
  2353. [helpcontext(81702)] HRESULT sendMIDIPMSG([in] MUSIC_TIME lTime,
  2354. [in] LONG flags,
  2355. [in] LONG channel,
  2356. [in] Byte status,
  2357. [in] Byte byte1,
  2358. [in] Byte byte2);
  2359. [helpcontext(81704)] HRESULT sendPatchPMSG([in] MUSIC_TIME lTime,
  2360. [in] LONG flags,
  2361. [in] LONG channel,
  2362. [in] Byte instrument,
  2363. [in] Byte byte1,
  2364. [in] Byte byte2);
  2365. [helpcontext(81705)] HRESULT sendTempoPMSG([in] MUSIC_TIME lTime,
  2366. [in] LONG flags,
  2367. // [in] LONG channel,
  2368. [in] double tempo);
  2369. [helpcontext(81707)] HRESULT sendTransposePMSG([in] MUSIC_TIME lTime,
  2370. [in] LONG flags,
  2371. [in] LONG channel,
  2372. [in] SHORT transpose);
  2373. [helpcontext(81706)] HRESULT sendTimeSigPMSG([in] MUSIC_TIME lTime,
  2374. [in] LONG flags,
  2375. [in] DMUS_TIMESIGNATURE_CDESC *timesig);
  2376. // New for DX8
  2377. #ifdef _WIN64
  2378. [helpcontext(81694)] HRESULT InitAudio([in] HWND hWnd, /* HWND for DSound. */
  2379. [in] CONST_DMUS_AUDIO lFlags,
  2380. [in,out] DMUS_AUDIOPARAMS_CDESC *AudioParams,
  2381. [in,out,optional] I_dxj_DirectSound **DirectSound, /* Optional DSound pointer. */
  2382. [in,optional] CONST_DMUSIC_STANDARD_AUDIO_PATH lDefaultPathType, /* Requested default audio path type, also optional. */
  2383. [in,optional] LONG lPChannelCount /* Number of PChannels, if default audio path to be created. */
  2384. );
  2385. #else
  2386. [helpcontext(81694)] HRESULT InitAudio([in] LONG hWnd, /* HWND for DSound. */
  2387. [in] CONST_DMUS_AUDIO lFlags,
  2388. [in,out] DMUS_AUDIOPARAMS_CDESC *AudioParams,
  2389. [in,out,optional] I_dxj_DirectSound **DirectSound, /* Optional DSound pointer. */
  2390. [in,optional] CONST_DMUSIC_STANDARD_AUDIO_PATH lDefaultPathType, /* Requested default audio path type, also optional. */
  2391. [in,optional] LONG lPChannelCount /* Number of PChannels, if default audio path to be created. */
  2392. );
  2393. #endif
  2394. [helpcontext(81698)] HRESULT PlaySegmentEx([in] IUnknown *Source, /* Segment to play. Alternately, could be an IDirectMusicSong. */
  2395. [in] CONST_DMUS_SEGF_FLAGS lFlags, /* DMUS_SEGF_ flags. */
  2396. [in] LONG StartTime, /* Time to start playback. */
  2397. [in,optional] IUnknown *From, /* Optional segmentstate or audiopath to replace. */
  2398. [in,optional] IUnknown *AudioPath, /* Optional audioPath to play on. */
  2399. #if 0
  2400. [in,optional] BSTR SegmentName, /* If song, which segment in the song. */
  2401. [in,optional] IUnknown *Transition, /* Optional template segment to compose transition with. */
  2402. #endif
  2403. [out,retval] I_dxj_DirectMusicSegmentState **ppSegmentState); /* Returned Segment State. */
  2404. [helpcontext(81716)] HRESULT StopEx([in] IUnknown *ObjectToStop, /* Segstate, AudioPath, Segment, or Song. */
  2405. [in] LONG lStopTime,
  2406. [in] CONST_DMUS_SEGF_FLAGS lFlags);
  2407. [helpcontext(81672)] HRESULT CreateAudioPath([in] IUnknown *SourceConfig, [in] VARIANT_BOOL fActive,
  2408. [out,retval] I_dxj_DirectMusicAudioPath **ppNewPath);
  2409. [helpcontext(81673)] HRESULT CreateStandardAudioPath([in] CONST_DMUSIC_STANDARD_AUDIO_PATH lType, [in] LONG lPChannelCount, [in] VARIANT_BOOL fActive,
  2410. [out,retval] I_dxj_DirectMusicAudioPath **ppNewPath);
  2411. [helpcontext(81709)] HRESULT SetDefaultAudioPath([in,out] I_dxj_DirectMusicAudioPath *AudioPath);
  2412. [helpcontext(81678)] HRESULT GetDefaultAudioPath([out,retval] I_dxj_DirectMusicAudioPath **ppAudioPath);
  2413. };
  2414. [
  2415. object,
  2416. uuid(FAFA35A8-8B72-11d2-90B2-00C04FC2C603),
  2417. helpstring("DirectMusicCollection Interface"),
  2418. pointer_default(unique),
  2419. local,
  2420. helpcontext(318400)
  2421. ]
  2422. interface I_dxj_DirectMusicCollection : IUnknown
  2423. {
  2424. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2425. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2426. };
  2427. #if 0
  2428. [
  2429. object,
  2430. uuid(7D140634-A5B2-46cc-A8C0-F51BC475BF5D),
  2431. helpstring("DirectMusicSong Interface"),
  2432. pointer_default(unique),
  2433. local,
  2434. helpcontext(81023)
  2435. ]
  2436. interface I_dxj_DirectMusicSong : IUnknown
  2437. {
  2438. [hidden] HRESULT InternalSetObject([in] IUnknown *lpdd);
  2439. [hidden] HRESULT InternalGetObject([out, retval] IUnknown **lpdd);
  2440. [helpcontext(81745)] HRESULT Compose();
  2441. [helpcontext(81748)] HRESULT GetSegment([in] BSTR Name, [out,retval] I_dxj_DirectMusicSegment **ret);
  2442. [helpcontext(81747)] HRESULT GetAudioPathConfig([out,retval] IUnknown **ret);
  2443. [helpcontext(81746)] HRESULT Download([in] IUnknown *downloadpath);
  2444. [helpcontext(81749)] HRESULT Unload([in] IUnknown *downloadpath);
  2445. [helpcontext(81348)] HRESULT EnumSegment([in] LONG lSegmentID, [out,retval] I_dxj_DirectMusicSegment **ret);
  2446. };
  2447. #endif
  2448. //
  2449. // AUDIO String Constants
  2450. //
  2451. [
  2452. dllname("dx8vb.dll")
  2453. ]
  2454. module AUDIOCONSTANTS
  2455. {
  2456. // GUID for FX components
  2457. #if 0
  2458. const BSTR DSFX_SEND = L"GUID_DSFX_SEND";
  2459. #endif
  2460. const BSTR DSFX_STANDARD_GARGLE = L"GUID_DSFX_STANDARD_GARGLE";
  2461. const BSTR DSFX_STANDARD_CHORUS = L"GUID_DSFX_STANDARD_CHORUS";
  2462. const BSTR DSFX_STANDARD_FLANGER = L"GUID_DSFX_STANDARD_FLANGER";
  2463. const BSTR DSFX_STANDARD_ECHO = L"GUID_DSFX_STANDARD_ECHO";
  2464. const BSTR DSFX_STANDARD_DISTORTION = L"GUID_DSFX_STANDARD_DISTORTION";
  2465. const BSTR DSFX_STANDARD_COMPRESSOR = L"GUID_DSFX_STANDARD_COMPRESSOR";
  2466. #if 0
  2467. const BSTR DSFX_STANDARD_I3DL2SOURCE = L"GUID_DSFX_STANDARD_I3DL2SOURCE";
  2468. #endif
  2469. const BSTR DSFX_STANDARD_I3DL2REVERB = L"GUID_DSFX_STANDARD_I3DL2REVERB";
  2470. const BSTR DSFX_STANDARD_PARAMEQ = L"GUID_DSFX_STANDARD_PARAMEQ";
  2471. const BSTR DSFX_STANDARD_WAVES_REVERB = L"GUID_DSFX_WAVES_REVERB";
  2472. // IID for FX Interfaces
  2473. #if 0
  2474. const BSTR IID_DirectSoundFXSend = L"IID_DirectSoundFXSend";
  2475. #endif
  2476. const BSTR IID_DirectSoundFXChorus = L"IID_DirectSoundFXChorus";
  2477. const BSTR IID_DirectSoundFXCompressor = L"IID_DirectSoundFXCompressor";
  2478. const BSTR IID_DirectSoundFXDistortion = L"IID_DirectSoundFXDistortion";
  2479. const BSTR IID_DirectSoundFXEcho = L"IID_DirectSoundFXEcho";
  2480. const BSTR IID_DirectSoundFXFlanger = L"IID_DirectSoundFXFlanger";
  2481. const BSTR IID_DirectSoundFXGargle = L"IID_DirectSoundFXGargle";
  2482. const BSTR IID_DirectSoundFXI3DL2REVERB = L"IID_DirectSoundFXI3DL2REVERB";
  2483. #if 0
  2484. const BSTR IID_DirectSoundFXI3DL2SOURCE = L"IID_DirectSoundFXI3DL2SOURCE";
  2485. #endif
  2486. const BSTR IID_DirectSoundFXParamEq = L"IID_DirectSoundFXParamEq";
  2487. const BSTR IID_DirectSoundFXWavesReverb = L"IID_DirectSoundFXWavesReverb";
  2488. // IID for Interfaces
  2489. const BSTR IID_DirectSoundSecondaryBuffer = L"IID_IDirectSoundBuffer8";
  2490. const BSTR IID_DirectSoundPrimaryBuffer = L"IID_IDirectSoundBuffer";
  2491. const BSTR IID_DirectSound3DBuffer = L"IID_IDirectSound3DBuffer";
  2492. const BSTR IID_DirectSound3DListener = L"IID_IDirectSound3DListener";
  2493. const BSTR GUID_ALL = L"GUID_ALL_OBJECTS";
  2494. // IID For 3D Algorithms
  2495. const BSTR GUID_DS3DALG_DEFAULT = L"DS3DALG_DEFAULT";
  2496. const BSTR GUID_DS3DALG_NO_VIRTUALIZATION = L"DS3DALG_NO_VIRTUALIZATION";
  2497. const BSTR GUID_DS3DALG_HRTF_FULL = L"DS3DALG_HRTF_FULL";
  2498. const BSTR GUID_DS3DALG_HRTF_LIGHT = L"DS3DALG_HRTF_LIGHT";
  2499. };