23 #ifndef _XBOX // XACT COM support only exists on Windows 25 DEFINE_CLSID(XACTEngine, bcc782bc, 6492, 4c22, 8c, 35, f5, d7, 2f, e7, 3c, 6e);
26 DEFINE_CLSID(XACTAuditionEngine, 9ecdd80d, 0e81, 40d8, 89, 03, 2b, f7, b1, 31, ac, 43);
27 DEFINE_CLSID(XACTDebugEngine, 02860630, bf3b, 42a8, b1, 4e, 91, ed, a2, f5, 1e, a5);
28 DEFINE_IID(IXACT3Engine, b1ee676a, d9cd, 4d2a, 89, a8, fa, 53, eb, 9e, 48, 0b);
32 #ifndef GUID_DEFS_ONLY 51 typedef struct IXACT3SoundBank IXACT3SoundBank;
52 typedef struct IXACT3WaveBank IXACT3WaveBank;
53 typedef struct IXACT3Cue IXACT3Cue;
54 typedef struct IXACT3Wave IXACT3Wave;
55 typedef struct IXACT3Engine IXACT3Engine;
63 typedef WORD XACTINDEX;
64 typedef BYTE XACTNOTIFICATIONTYPE;
65 typedef FLOAT XACTVARIABLEVALUE;
66 typedef WORD XACTVARIABLEINDEX;
67 typedef WORD XACTCATEGORY;
68 typedef BYTE XACTCHANNEL;
69 typedef FLOAT XACTVOLUME;
70 typedef LONG XACTTIME;
71 typedef SHORT XACTPITCH;
72 typedef BYTE XACTLOOPCOUNT;
73 typedef BYTE XACTVARIATIONWEIGHT;
74 typedef BYTE XACTPRIORITY;
75 typedef BYTE XACTINSTANCELIMIT;
80 #ifndef WAVE_FORMAT_IEEE_FLOAT 81 #define WAVE_FORMAT_IEEE_FLOAT 0x0003 84 #ifndef WAVE_FORMAT_EXTENSIBLE 85 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE 88 #ifndef _WAVEFORMATEX_ 89 #define _WAVEFORMATEX_ 96 DWORD nAvgBytesPerSec;
107 #ifndef _WAVEFORMATEXTENSIBLE_ 108 #define _WAVEFORMATEXTENSIBLE_ 109 #pragma pack(push, 1) 116 WORD wValidBitsPerSample;
117 WORD wSamplesPerBlock;
130 static const XACTTIME XACTTIME_MIN = LONG_MIN;
131 static const XACTTIME XACTTIME_MAX = LONG_MAX;
132 static const XACTTIME XACTTIME_INFINITE = LONG_MAX;
133 static const XACTINSTANCELIMIT XACTINSTANCELIMIT_INFINITE = 0xff;
134 static const XACTINSTANCELIMIT XACTINSTANCELIMIT_MIN = 0x00;
135 static const XACTINSTANCELIMIT XACTINSTANCELIMIT_MAX = 0xfe;
136 static const XACTINDEX XACTINDEX_MIN = 0x0;
137 static const XACTINDEX XACTINDEX_MAX = 0xfffe;
138 static const XACTINDEX XACTINDEX_INVALID = 0xffff;
139 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MIN = 0x00;
140 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MAX = 0xff;
141 static const XACTVARIABLEVALUE XACTVARIABLEVALUE_MIN = -FLT_MAX;
142 static const XACTVARIABLEVALUE XACTVARIABLEVALUE_MAX = FLT_MAX;
143 static const XACTVARIABLEINDEX XACTVARIABLEINDEX_MIN = 0x0000;
144 static const XACTVARIABLEINDEX XACTVARIABLEINDEX_MAX = 0xfffe;
145 static const XACTVARIABLEINDEX XACTVARIABLEINDEX_INVALID = 0xffff;
146 static const XACTCATEGORY XACTCATEGORY_MIN = 0x0;
147 static const XACTCATEGORY XACTCATEGORY_MAX = 0xfffe;
148 static const XACTCATEGORY XACTCATEGORY_INVALID = 0xffff;
149 static const XACTCHANNEL XACTCHANNEL_MIN = 0;
150 static const XACTCHANNEL XACTCHANNEL_MAX = 0xFF;
151 static const XACTPITCH XACTPITCH_MIN = -1200;
152 static const XACTPITCH XACTPITCH_MAX = 1200;
153 static const XACTPITCH XACTPITCH_MIN_TOTAL = -2400;
154 static const XACTPITCH XACTPITCH_MAX_TOTAL = 2400;
155 static const XACTVOLUME XACTVOLUME_MIN = 0.0f;
156 static const XACTVOLUME XACTVOLUME_MAX = 16777216.0f;
157 static const XACTVARIABLEVALUE XACTPARAMETERVALUE_MIN = -FLT_MAX;
158 static const XACTVARIABLEVALUE XACTPARAMETERVALUE_MAX = FLT_MAX;
159 static const XACTLOOPCOUNT XACTLOOPCOUNT_MIN = 0x0;
160 static const XACTLOOPCOUNT XACTLOOPCOUNT_MAX = 0xfe;
161 static const XACTLOOPCOUNT XACTLOOPCOUNT_INFINITE = 0xff;
162 static const DWORD XACTWAVEALIGNMENT_MIN = 2048;
164 static const BYTE XACTMAXOUTPUTVOICECOUNT = 3;
171 #define XACT_CUE_NAME_LENGTH 0xFF 176 #define XACT_CONTENT_VERSION 46 181 static const DWORD XACT_FLAG_STOP_RELEASE = 0x00000000;
182 static const DWORD XACT_FLAG_STOP_IMMEDIATE = 0x00000001;
187 static const DWORD XACT_FLAG_MANAGEDATA = 0x00000001;
192 static const DWORD XACT_FLAG_BACKGROUND_MUSIC = 0x00000002;
193 static const DWORD XACT_FLAG_UNITS_MS = 0x00000004;
194 static const DWORD XACT_FLAG_UNITS_SAMPLES = 0x00000008;
199 static const DWORD XACT_STATE_CREATED = 0x00000001;
200 static const DWORD XACT_STATE_PREPARING = 0x00000002;
201 static const DWORD XACT_STATE_PREPARED = 0x00000004;
202 static const DWORD XACT_STATE_PLAYING = 0x00000008;
203 static const DWORD XACT_STATE_STOPPING = 0x00000010;
204 static const DWORD XACT_STATE_STOPPED = 0x00000020;
205 static const DWORD XACT_STATE_PAUSED = 0x00000040;
206 static const DWORD XACT_STATE_INUSE = 0x00000080;
207 static const DWORD XACT_STATE_PREPAREFAILED = 0x80000000;
213 #define XACT_FLAG_GLOBAL_SETTINGS_MANAGEDATA XACT_FLAG_MANAGEDATA 218 typedef BOOL (__stdcall * XACT_READFILE_CALLBACK)(__in HANDLE hFile, __out_bcount(nNumberOfBytesToRead) LPVOID lpBuffer, DWORD nNumberOfBytesToRead, __out LPDWORD lpNumberOfBytesRead, __inout LPOVERLAPPED lpOverlapped);
219 typedef BOOL (__stdcall * XACT_GETOVERLAPPEDRESULT_CALLBACK)(__in HANDLE hFile, __inout LPOVERLAPPED lpOverlapped, __out LPDWORD lpNumberOfBytesTransferred, BOOL bWait);
223 XACT_READFILE_CALLBACK readFileCallback;
224 XACT_GETOVERLAPPEDRESULT_CALLBACK getOverlappedResultCallback;
232 typedef void (__stdcall * XACT_NOTIFICATION_CALLBACK)(__in
const XACT_NOTIFICATION* pNotification);
234 #define XACT_RENDERER_ID_LENGTH 0xff // Maximum number of characters allowed in the renderer ID 235 #define XACT_RENDERER_NAME_LENGTH 0xff // Maximum number of characters allowed in the renderer display name. 242 WCHAR rendererID[XACT_RENDERER_ID_LENGTH];
243 WCHAR displayName[XACT_RENDERER_NAME_LENGTH];
251 #define XACT_ENGINE_LOOKAHEAD_DEFAULT 250 // Default look-ahead time of 250ms can be used during XACT engine initialization. 259 void* pGlobalSettingsBuffer;
260 DWORD globalSettingsBufferSize;
261 DWORD globalSettingsFlags;
262 DWORD globalSettingsAllocAttributes;
264 XACT_NOTIFICATION_CALLBACK fnNotificationCallback;
267 IXAudio2MasteringVoice* pMasteringVoice;
292 CHAR friendlyName[XACT_CUE_NAME_LENGTH];
294 XACTINDEX iaVariableIndex;
295 XACTINDEX numVariations;
296 XACTINSTANCELIMIT maxInstances;
297 XACTINSTANCELIMIT currentInstances;
305 XACTINDEX numVariations;
306 XACTCHANNEL numChannels;
307 XACTINDEX waveVariation;
308 XACTLOOPCOUNT loopCount;
316 XACTVARIATIONWEIGHT weight;
317 XACTVARIABLEVALUE iaVariableMin;
318 XACTVARIABLEVALUE iaVariableMax;
326 XACTCATEGORY category;
346 DWORD allocAttributes;
355 char friendlyName[WAVEBANK_ENTRYNAME_LENGTH];
357 DWORD durationInSamples;
368 BOOL backgroundMusic;
379 XACTCHANNEL InputChannel;
380 XACTCHANNEL OutputChannel;
388 XACTCHANNEL EntryCount;
396 XACTCHANNEL EntryIndex;
404 XACTCHANNEL EntryCount;
414 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEPREPARED = 1;
415 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEPLAY = 2;
416 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUESTOP = 3;
417 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEDESTROYED = 4;
418 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MARKER = 5;
419 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6;
420 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7;
421 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED = 8;
422 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED = 9;
423 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GUICONNECTED = 10;
424 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GUIDISCONNECTED = 11;
425 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEPREPARED = 12;
426 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEPLAY = 13;
427 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVESTOP = 14;
428 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVELOOPED = 15;
429 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEDESTROYED = 16;
430 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKPREPARED = 17;
431 static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = 18;
433 static const BYTE XACT_FLAG_NOTIFICATION_PERSIST = 0x01;
436 #pragma pack(push, 1) 441 XACTNOTIFICATIONTYPE type;
443 IXACT3SoundBank* pSoundBank;
444 IXACT3WaveBank* pWaveBank;
458 IXACT3SoundBank* pSoundBank;
468 IXACT3SoundBank* pSoundBank;
478 IXACT3SoundBank* pSoundBank;
486 IXACT3WaveBank* pWaveBank;
495 IXACT3SoundBank* pSoundBank;
497 XACTVARIABLEINDEX variableIndex;
498 XACTVARIABLEVALUE variableValue;
514 IXACT3WaveBank* pWaveBank;
517 IXACT3SoundBank* pSoundBank;
527 XACTNOTIFICATIONTYPE type;
550 #define XACT_FLAG_SOUNDBANK_STOP_IMMEDIATE XACT_FLAG_STOP_IMMEDIATE 551 #define XACT_SOUNDBANKSTATE_INUSE XACT_STATE_INUSE 553 STDAPI_(XACTINDEX) IXACT3SoundBank_GetCueIndex(__in IXACT3SoundBank* pSoundBank, __in PCSTR szFriendlyName);
554 STDAPI IXACT3SoundBank_GetNumCues(__in IXACT3SoundBank* pSoundBank, __out XACTINDEX* pnNumCues);
555 STDAPI IXACT3SoundBank_GetCueProperties(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, __out LPXACT_CUE_PROPERTIES pProperties);
556 STDAPI IXACT3SoundBank_Prepare(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_out IXACT3Cue** ppCue);
557 STDAPI IXACT3SoundBank_Play(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_opt_out IXACT3Cue** ppCue);
558 STDAPI IXACT3SoundBank_Stop(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags);
559 STDAPI IXACT3SoundBank_Destroy(__in IXACT3SoundBank* pSoundBank);
560 STDAPI IXACT3SoundBank_GetState(__in IXACT3SoundBank* pSoundBank, __out DWORD* pdwState);
563 #define INTERFACE IXACT3SoundBank 565 DECLARE_INTERFACE(IXACT3SoundBank)
567 STDMETHOD_(XACTINDEX, GetCueIndex)(THIS_ __in PCSTR szFriendlyName) PURE;
568 STDMETHOD(GetNumCues)(THIS_ __out XACTINDEX* pnNumCues) PURE;
569 STDMETHOD(GetCueProperties)(THIS_ XACTINDEX nCueIndex, __out LPXACT_CUE_PROPERTIES pProperties) PURE;
570 STDMETHOD(Prepare)(THIS_ XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_out IXACT3Cue** ppCue) PURE;
571 STDMETHOD(Play)(THIS_ XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_opt_out IXACT3Cue** ppCue) PURE;
572 STDMETHOD(Stop)(THIS_ XACTINDEX nCueIndex, DWORD dwFlags) PURE;
573 STDMETHOD(Destroy)(THIS) PURE;
574 STDMETHOD(GetState)(THIS_ __out DWORD* pdwState) PURE;
579 __inline HRESULT __stdcall IXACT3SoundBank_Destroy(__in IXACT3SoundBank* pSoundBank)
581 return pSoundBank->Destroy();
584 __inline XACTINDEX __stdcall IXACT3SoundBank_GetCueIndex(__in IXACT3SoundBank* pSoundBank, __in PCSTR szFriendlyName)
586 return pSoundBank->GetCueIndex(szFriendlyName);
589 __inline HRESULT __stdcall IXACT3SoundBank_GetNumCues(__in IXACT3SoundBank* pSoundBank, __out XACTINDEX* pnNumCues)
591 return pSoundBank->GetNumCues(pnNumCues);
594 __inline HRESULT __stdcall IXACT3SoundBank_GetCueProperties(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, __out LPXACT_CUE_PROPERTIES pProperties)
596 return pSoundBank->GetCueProperties(nCueIndex, pProperties);
599 __inline HRESULT __stdcall IXACT3SoundBank_Prepare(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_out IXACT3Cue** ppCue)
601 return pSoundBank->Prepare(nCueIndex, dwFlags, timeOffset, ppCue);
604 __inline HRESULT __stdcall IXACT3SoundBank_Play(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_opt_out IXACT3Cue** ppCue)
606 return pSoundBank->Play(nCueIndex, dwFlags, timeOffset, ppCue);
609 __inline HRESULT __stdcall IXACT3SoundBank_Stop(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags)
611 return pSoundBank->Stop(nCueIndex, dwFlags);
614 __inline HRESULT __stdcall IXACT3SoundBank_GetState(__in IXACT3SoundBank* pSoundBank, __out DWORD* pdwState)
616 return pSoundBank->GetState(pdwState);
621 __inline HRESULT __stdcall IXACT3SoundBank_Destroy(__in IXACT3SoundBank* pSoundBank)
623 return pSoundBank->lpVtbl->Destroy(pSoundBank);
626 __inline XACTINDEX __stdcall IXACT3SoundBank_GetCueIndex(__in IXACT3SoundBank* pSoundBank, __in PCSTR szFriendlyName)
628 return pSoundBank->lpVtbl->GetCueIndex(pSoundBank, szFriendlyName);
631 __inline HRESULT __stdcall IXACT3SoundBank_GetNumCues(__in IXACT3SoundBank* pSoundBank, __out XACTINDEX* pnNumCues)
633 return pSoundBank->lpVtbl->GetNumCues(pSoundBank, pnNumCues);
636 __inline HRESULT __stdcall IXACT3SoundBank_GetCueProperties(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, __out LPXACT_CUE_PROPERTIES pProperties)
638 return pSoundBank->lpVtbl->GetCueProperties(pSoundBank, nCueIndex, pProperties);
641 __inline HRESULT __stdcall IXACT3SoundBank_Prepare(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_out IXACT3Cue** ppCue)
643 return pSoundBank->lpVtbl->Prepare(pSoundBank, nCueIndex, dwFlags, timeOffset, ppCue);
646 __inline HRESULT __stdcall IXACT3SoundBank_Play(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags, XACTTIME timeOffset, __deref_opt_out IXACT3Cue** ppCue)
648 return pSoundBank->lpVtbl->Play(pSoundBank, nCueIndex, dwFlags, timeOffset, ppCue);
651 __inline HRESULT __stdcall IXACT3SoundBank_Stop(__in IXACT3SoundBank* pSoundBank, XACTINDEX nCueIndex, DWORD dwFlags)
653 return pSoundBank->lpVtbl->Stop(pSoundBank, nCueIndex, dwFlags);
656 __inline HRESULT __stdcall IXACT3SoundBank_GetState(__in IXACT3SoundBank* pSoundBank, __out DWORD* pdwState)
658 return pSoundBank->lpVtbl->GetState(pSoundBank, pdwState);
661 #endif // __cplusplus 666 #define XACT_WAVEBANKSTATE_INUSE XACT_STATE_INUSE // Currently in-use 667 #define XACT_WAVEBANKSTATE_PREPARED XACT_STATE_PREPARED // Prepared 668 #define XACT_WAVEBANKSTATE_PREPAREFAILED XACT_STATE_PREPAREFAILED // Prepare failed. 671 STDAPI IXACT3WaveBank_Destroy(__in IXACT3WaveBank* pWaveBank);
672 STDAPI IXACT3WaveBank_GetState(__in IXACT3WaveBank* pWaveBank, __out DWORD* pdwState);
673 STDAPI IXACT3WaveBank_GetNumWaves(__in IXACT3WaveBank* pWaveBank, __out XACTINDEX* pnNumWaves);
674 STDAPI_(XACTINDEX) IXACT3WaveBank_GetWaveIndex(__in IXACT3WaveBank* pWaveBank, __in PCSTR szFriendlyName);
675 STDAPI IXACT3WaveBank_GetWaveProperties(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, __out LPXACT_WAVE_PROPERTIES pWaveProperties);
676 STDAPI IXACT3WaveBank_Prepare(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave);
677 STDAPI IXACT3WaveBank_Play(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave);
678 STDAPI IXACT3WaveBank_Stop(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags);
681 #define INTERFACE IXACT3WaveBank 683 DECLARE_INTERFACE(IXACT3WaveBank)
685 STDMETHOD(Destroy)(THIS) PURE;
686 STDMETHOD(GetNumWaves)(THIS_ __out XACTINDEX* pnNumWaves) PURE;
687 STDMETHOD_(XACTINDEX, GetWaveIndex)(THIS_ __in PCSTR szFriendlyName) PURE;
688 STDMETHOD(GetWaveProperties)(THIS_ XACTINDEX nWaveIndex, __out LPXACT_WAVE_PROPERTIES pWaveProperties) PURE;
689 STDMETHOD(Prepare)(THIS_ XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave) PURE;
690 STDMETHOD(Play)(THIS_ XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave) PURE;
691 STDMETHOD(Stop)(THIS_ XACTINDEX nWaveIndex, DWORD dwFlags) PURE;
692 STDMETHOD(GetState)(THIS_ __out DWORD* pdwState) PURE;
697 __inline HRESULT __stdcall IXACT3WaveBank_Destroy(__in IXACT3WaveBank* pWaveBank)
699 return pWaveBank->Destroy();
702 __inline HRESULT __stdcall IXACT3WaveBank_GetNumWaves(__in IXACT3WaveBank* pWaveBank, __out XACTINDEX* pnNumWaves)
704 return pWaveBank->GetNumWaves(pnNumWaves);
707 __inline XACTINDEX __stdcall IXACT3WaveBank_GetWaveIndex(__in IXACT3WaveBank* pWaveBank, __in PCSTR szFriendlyName)
709 return pWaveBank->GetWaveIndex(szFriendlyName);
712 __inline HRESULT __stdcall IXACT3WaveBank_GetWaveProperties(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, __out LPXACT_WAVE_PROPERTIES pWaveProperties)
714 return pWaveBank->GetWaveProperties(nWaveIndex, pWaveProperties);
717 __inline HRESULT __stdcall IXACT3WaveBank_Prepare(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
719 return pWaveBank->Prepare(nWaveIndex, dwFlags, dwPlayOffset, nLoopCount, ppWave);
722 __inline HRESULT __stdcall IXACT3WaveBank_Play(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
724 return pWaveBank->Play(nWaveIndex, dwFlags, dwPlayOffset, nLoopCount, ppWave);
727 __inline HRESULT __stdcall IXACT3WaveBank_Stop(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags)
729 return pWaveBank->Stop(nWaveIndex, dwFlags);
732 __inline HRESULT __stdcall IXACT3WaveBank_GetState(__in IXACT3WaveBank* pWaveBank, __out DWORD* pdwState)
734 return pWaveBank->GetState(pdwState);
739 __inline HRESULT __stdcall IXACT3WaveBank_Destroy(__in IXACT3WaveBank* pWaveBank)
741 return pWaveBank->lpVtbl->Destroy(pWaveBank);
744 __inline HRESULT __stdcall IXACT3WaveBank_GetNumWaves(__in IXACT3WaveBank* pWaveBank, __out XACTINDEX* pnNumWaves)
746 return pWaveBank->lpVtbl->GetNumWaves(pWaveBank, pnNumWaves);
749 __inline XACTINDEX __stdcall IXACT3WaveBank_GetWaveIndex(__in IXACT3WaveBank* pWaveBank, __in PCSTR szFriendlyName)
751 return pWaveBank->lpVtbl->GetWaveIndex(pWaveBank, szFriendlyName);
754 __inline HRESULT __stdcall IXACT3WaveBank_GetWaveProperties(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, __out LPXACT_WAVE_PROPERTIES pWaveProperties)
756 return pWaveBank->lpVtbl->GetWaveProperties(pWaveBank, nWaveIndex, pWaveProperties);
759 __inline HRESULT __stdcall IXACT3WaveBank_Prepare(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
761 return pWaveBank->lpVtbl->Prepare(pWaveBank, nWaveIndex, dwFlags, dwPlayOffset, nLoopCount, ppWave);
764 __inline HRESULT __stdcall IXACT3WaveBank_Play(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
766 return pWaveBank->lpVtbl->Play(pWaveBank, nWaveIndex, dwFlags, dwPlayOffset, nLoopCount, ppWave);
769 __inline HRESULT __stdcall IXACT3WaveBank_Stop(__in IXACT3WaveBank* pWaveBank, XACTINDEX nWaveIndex, DWORD dwFlags)
771 return pWaveBank->lpVtbl->Stop(pWaveBank, nWaveIndex, dwFlags);
774 __inline HRESULT __stdcall IXACT3WaveBank_GetState(__in IXACT3WaveBank* pWaveBank, __out DWORD* pdwState)
776 return pWaveBank->lpVtbl->GetState(pWaveBank, pdwState);
778 #endif // __cplusplus 785 STDAPI IXACT3Wave_Destroy(__in IXACT3Wave* pWave);
786 STDAPI IXACT3Wave_Play(__in IXACT3Wave* pWave);
787 STDAPI IXACT3Wave_Stop(__in IXACT3Wave* pWave, DWORD dwFlags);
788 STDAPI IXACT3Wave_Pause(__in IXACT3Wave* pWave, BOOL fPause);
789 STDAPI IXACT3Wave_GetState(__in IXACT3Wave* pWave, __out DWORD* pdwState);
790 STDAPI IXACT3Wave_SetPitch(__in IXACT3Wave* pWave, XACTPITCH pitch);
791 STDAPI IXACT3Wave_SetVolume(__in IXACT3Wave* pWave, XACTVOLUME volume);
792 STDAPI IXACT3Wave_SetMatrixCoefficients(__in IXACT3Wave* pWave, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients);
793 STDAPI IXACT3Wave_GetProperties(__in IXACT3Wave* pWave, __out LPXACT_WAVE_INSTANCE_PROPERTIES pProperties);
796 #define INTERFACE IXACT3Wave 798 DECLARE_INTERFACE(IXACT3Wave)
800 STDMETHOD(Destroy)(THIS) PURE;
801 STDMETHOD(Play)(THIS) PURE;
802 STDMETHOD(Stop)(THIS_ DWORD dwFlags) PURE;
803 STDMETHOD(Pause)(THIS_ BOOL fPause) PURE;
804 STDMETHOD(GetState)(THIS_ __out DWORD* pdwState) PURE;
805 STDMETHOD(SetPitch)(THIS_ XACTPITCH pitch) PURE;
806 STDMETHOD(SetVolume)(THIS_ XACTVOLUME volume) PURE;
807 STDMETHOD(SetMatrixCoefficients)(THIS_ UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients) PURE;
808 STDMETHOD(GetProperties)(THIS_ __out LPXACT_WAVE_INSTANCE_PROPERTIES pProperties) PURE;
813 __inline HRESULT __stdcall IXACT3Wave_Destroy(__in IXACT3Wave* pWave)
815 return pWave->Destroy();
818 __inline HRESULT __stdcall IXACT3Wave_Play(__in IXACT3Wave* pWave)
820 return pWave->Play();
823 __inline HRESULT __stdcall IXACT3Wave_Stop(__in IXACT3Wave* pWave, DWORD dwFlags)
825 return pWave->Stop(dwFlags);
828 __inline HRESULT __stdcall IXACT3Wave_Pause(__in IXACT3Wave* pWave, BOOL fPause)
830 return pWave->Pause(fPause);
833 __inline HRESULT __stdcall IXACT3Wave_GetState(__in IXACT3Wave* pWave, __out DWORD* pdwState)
835 return pWave->GetState(pdwState);
838 __inline HRESULT __stdcall IXACT3Wave_SetPitch(__in IXACT3Wave* pWave, XACTPITCH pitch)
840 return pWave->SetPitch(pitch);
843 __inline HRESULT __stdcall IXACT3Wave_SetVolume(__in IXACT3Wave* pWave, XACTVOLUME volume)
845 return pWave->SetVolume(volume);
848 __inline HRESULT __stdcall IXACT3Wave_SetMatrixCoefficients(__in IXACT3Wave* pWave, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients)
850 return pWave->SetMatrixCoefficients(uSrcChannelCount, uDstChannelCount, pMatrixCoefficients);
853 __inline HRESULT __stdcall IXACT3Wave_GetProperties(__in IXACT3Wave* pWave, __out LPXACT_WAVE_INSTANCE_PROPERTIES pProperties)
855 return pWave->GetProperties(pProperties);
860 __inline HRESULT __stdcall IXACT3Wave_Destroy(__in IXACT3Wave* pWave)
862 return pWave->lpVtbl->Destroy(pWave);
865 __inline HRESULT __stdcall IXACT3Wave_Play(__in IXACT3Wave* pWave)
867 return pWave->lpVtbl->Play(pWave);
870 __inline HRESULT __stdcall IXACT3Wave_Stop(__in IXACT3Wave* pWave, DWORD dwFlags)
872 return pWave->lpVtbl->Stop(pWave, dwFlags);
875 __inline HRESULT __stdcall IXACT3Wave_Pause(__in IXACT3Wave* pWave, BOOL fPause)
877 return pWave->lpVtbl->Pause(pWave, fPause);
880 __inline HRESULT __stdcall IXACT3Wave_GetState(__in IXACT3Wave* pWave, __out DWORD* pdwState)
882 return pWave->lpVtbl->GetState(pWave, pdwState);
885 __inline HRESULT __stdcall IXACT3Wave_SetPitch(__in IXACT3Wave* pWave, XACTPITCH pitch)
887 return pWave->lpVtbl->SetPitch(pWave, pitch);
890 __inline HRESULT __stdcall IXACT3Wave_SetVolume(__in IXACT3Wave* pWave, XACTVOLUME volume)
892 return pWave->lpVtbl->SetVolume(pWave, volume);
895 __inline HRESULT __stdcall IXACT3Wave_SetMatrixCoefficients(__in IXACT3Wave* pWave, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients)
897 return pWave->lpVtbl->SetMatrixCoefficients(pWave, uSrcChannelCount, uDstChannelCount, pMatrixCoefficients);
900 __inline HRESULT __stdcall IXACT3Wave_GetProperties(__in IXACT3Wave* pWave, __out LPXACT_WAVE_INSTANCE_PROPERTIES pProperties)
902 return pWave->lpVtbl->GetProperties(pWave, pProperties);
904 #endif // __cplusplus 911 #define XACT_FLAG_CUE_STOP_RELEASE XACT_FLAG_STOP_RELEASE 912 #define XACT_FLAG_CUE_STOP_IMMEDIATE XACT_FLAG_STOP_IMMEDIATE 915 #define XACT_CUESTATE_CREATED XACT_STATE_CREATED // Created, but nothing else 916 #define XACT_CUESTATE_PREPARING XACT_STATE_PREPARING // In the middle of preparing 917 #define XACT_CUESTATE_PREPARED XACT_STATE_PREPARED // Prepared, but not yet played 918 #define XACT_CUESTATE_PLAYING XACT_STATE_PLAYING // Playing (though could be paused) 919 #define XACT_CUESTATE_STOPPING XACT_STATE_STOPPING // Stopping 920 #define XACT_CUESTATE_STOPPED XACT_STATE_STOPPED // Stopped 921 #define XACT_CUESTATE_PAUSED XACT_STATE_PAUSED // Paused (can be combined with other states) 923 STDAPI IXACT3Cue_Destroy(__in IXACT3Cue* pCue);
924 STDAPI IXACT3Cue_Play(__in IXACT3Cue* pCue);
925 STDAPI IXACT3Cue_Stop(__in IXACT3Cue* pCue, DWORD dwFlags);
926 STDAPI IXACT3Cue_GetState(__in IXACT3Cue* pCue, __out DWORD* pdwState);
927 STDAPI IXACT3Cue_SetMatrixCoefficients(__in IXACT3Cue*, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients);
928 STDAPI_(XACTVARIABLEINDEX) IXACT3Cue_GetVariableIndex(__in IXACT3Cue* pCue, __in PCSTR szFriendlyName);
929 STDAPI IXACT3Cue_SetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue);
930 STDAPI IXACT3Cue_GetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* nValue);
931 STDAPI IXACT3Cue_Pause(__in IXACT3Cue* pCue, BOOL fPause);
932 STDAPI IXACT3Cue_GetProperties(__in IXACT3Cue* pCue, __out LPXACT_CUE_INSTANCE_PROPERTIES* ppProperties);
933 STDAPI IXACT3Cue_SetOutputVoices(__in IXACT3Cue* pCue, __in_opt
const XAUDIO2_VOICE_SENDS* pSendList);
934 STDAPI IXACT3Cue_SetOutputVoiceMatrix(__in IXACT3Cue* pCue, __in_opt IXAudio2Voice* pDestinationVoice, UINT32 SourceChannels, UINT32 DestinationChannels, __in_ecount(SourceChannels * DestinationChannels)
const float* pLevelMatrix);
937 #define INTERFACE IXACT3Cue 939 DECLARE_INTERFACE(IXACT3Cue)
941 STDMETHOD(Play)(THIS) PURE;
942 STDMETHOD(Stop)(THIS_ DWORD dwFlags) PURE;
943 STDMETHOD(GetState)(THIS_ __out DWORD* pdwState) PURE;
944 STDMETHOD(Destroy)(THIS) PURE;
945 STDMETHOD(SetMatrixCoefficients)(THIS_ UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients) PURE;
946 STDMETHOD_(XACTVARIABLEINDEX, GetVariableIndex)(THIS_ __in PCSTR szFriendlyName) PURE;
947 STDMETHOD(SetVariable)(THIS_ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue) PURE;
948 STDMETHOD(GetVariable)(THIS_ XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* nValue) PURE;
949 STDMETHOD(Pause)(THIS_ BOOL fPause) PURE;
950 STDMETHOD(GetProperties)(THIS_ __out LPXACT_CUE_INSTANCE_PROPERTIES* ppProperties) PURE;
952 STDMETHOD(SetOutputVoiceMatrix)(THIS_ __in_opt IXAudio2Voice* pDestinationVoice, UINT32 SourceChannels, UINT32 DestinationChannels, __in_ecount(SourceChannels * DestinationChannels)
const float* pLevelMatrix) PURE;
957 __inline HRESULT __stdcall IXACT3Cue_Play(__in IXACT3Cue* pCue)
962 __inline HRESULT __stdcall IXACT3Cue_Stop(__in IXACT3Cue* pCue, DWORD dwFlags)
964 return pCue->Stop(dwFlags);
967 __inline HRESULT __stdcall IXACT3Cue_GetState(__in IXACT3Cue* pCue, __out DWORD* pdwState)
969 return pCue->GetState(pdwState);
972 __inline HRESULT __stdcall IXACT3Cue_Destroy(__in IXACT3Cue* pCue)
974 return pCue->Destroy();
977 __inline HRESULT __stdcall IXACT3Cue_SetMatrixCoefficients(__in IXACT3Cue* pCue, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients)
979 return pCue->SetMatrixCoefficients(uSrcChannelCount, uDstChannelCount, pMatrixCoefficients);
982 __inline XACTVARIABLEINDEX __stdcall IXACT3Cue_GetVariableIndex(__in IXACT3Cue* pCue, __in PCSTR szFriendlyName)
984 return pCue->GetVariableIndex(szFriendlyName);
987 __inline HRESULT __stdcall IXACT3Cue_SetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
989 return pCue->SetVariable(nIndex, nValue);
992 __inline HRESULT __stdcall IXACT3Cue_GetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* pnValue)
994 return pCue->GetVariable(nIndex, pnValue);
997 __inline HRESULT __stdcall IXACT3Cue_Pause(__in IXACT3Cue* pCue, BOOL fPause)
999 return pCue->Pause(fPause);
1002 __inline HRESULT __stdcall IXACT3Cue_GetProperties(__in IXACT3Cue* pCue, __out LPXACT_CUE_INSTANCE_PROPERTIES* ppProperties)
1004 return pCue->GetProperties(ppProperties);
1007 __inline HRESULT __stdcall IXACT3Cue_SetOutputVoices(__in IXACT3Cue* pCue, __in_opt
const XAUDIO2_VOICE_SENDS* pSendList)
1009 return pCue->SetOutputVoices(pSendList);
1012 __inline HRESULT __stdcall IXACT3Cue_SetOutputVoiceMatrix(__in IXACT3Cue* pCue, __in_opt IXAudio2Voice* pDestinationVoice, UINT32 SourceChannels, UINT32 DestinationChannels, __in_ecount(SourceChannels * DestinationChannels)
const float* pLevelMatrix)
1014 return pCue->SetOutputVoiceMatrix(pDestinationVoice, SourceChannels, DestinationChannels, pLevelMatrix);
1017 #else // __cplusplus 1019 __inline HRESULT __stdcall IXACT3Cue_Play(__in IXACT3Cue* pCue)
1021 return pCue->lpVtbl->Play(pCue);
1024 __inline HRESULT __stdcall IXACT3Cue_Stop(__in IXACT3Cue* pCue, DWORD dwFlags)
1026 return pCue->lpVtbl->Stop(pCue, dwFlags);
1029 __inline HRESULT __stdcall IXACT3Cue_GetState(__in IXACT3Cue* pCue, __out DWORD* pdwState)
1031 return pCue->lpVtbl->GetState(pCue, pdwState);
1034 __inline HRESULT __stdcall IXACT3Cue_Destroy(__in IXACT3Cue* pCue)
1036 return pCue->lpVtbl->Destroy(pCue);
1039 __inline HRESULT __stdcall IXACT3Cue_SetMatrixCoefficients(__in IXACT3Cue* pCue, UINT32 uSrcChannelCount, UINT32 uDstChannelCount, __in
float* pMatrixCoefficients)
1041 return pCue->lpVtbl->SetMatrixCoefficients(pCue, uSrcChannelCount, uDstChannelCount, pMatrixCoefficients);
1044 __inline XACTVARIABLEINDEX __stdcall IXACT3Cue_GetVariableIndex(__in IXACT3Cue* pCue, __in PCSTR szFriendlyName)
1046 return pCue->lpVtbl->GetVariableIndex(pCue, szFriendlyName);
1049 __inline HRESULT __stdcall IXACT3Cue_SetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
1051 return pCue->lpVtbl->SetVariable(pCue, nIndex, nValue);
1054 __inline HRESULT __stdcall IXACT3Cue_GetVariable(__in IXACT3Cue* pCue, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* pnValue)
1056 return pCue->lpVtbl->GetVariable(pCue, nIndex, pnValue);
1059 __inline HRESULT __stdcall IXACT3Cue_Pause(__in IXACT3Cue* pCue, BOOL fPause)
1061 return pCue->lpVtbl->Pause(pCue, fPause);
1064 __inline HRESULT __stdcall IXACT3Cue_GetProperties(__in IXACT3Cue* pCue, __out LPXACT_CUE_INSTANCE_PROPERTIES* ppProperties)
1066 return pCue->lpVtbl->GetProperties(pCue, ppProperties);
1069 __inline HRESULT __stdcall IXACT3Cue_SetOutputVoices(__in IXACT3Cue* pCue, __in_opt
const XAUDIO2_VOICE_SENDS* pSendList)
1071 return pCue->lpVtbl->SetOutputVoices(pSendList);
1074 __inline HRESULT __stdcall IXACT3Cue_SetOutputVoiceMatrix(__in IXACT3Cue* pCue, __in_opt IXAudio2Voice* pDestinationVoice, UINT32 SourceChannels, UINT32 DestinationChannels, __in_ecount(SourceChannels * DestinationChannels)
const float* pLevelMatrix)
1076 return pCue->lpVtbl->SetOutputVoiceMatrix(pDestinationVoice, SourceChannels, DestinationChannels, pLevelMatrix);
1079 #endif // __cplusplus 1086 #define XACT_FLAG_ENGINE_CREATE_MANAGEDATA XACT_FLAG_MANAGEDATA 1087 #define XACT_FLAG_ENGINE_STOP_IMMEDIATE XACT_FLAG_STOP_IMMEDIATE 1089 STDAPI_(ULONG) IXACT3Engine_AddRef(__in IXACT3Engine* pEngine);
1090 STDAPI_(ULONG) IXACT3Engine_Release(__in IXACT3Engine* pEngine);
1091 STDAPI IXACT3Engine_GetRendererCount(__in IXACT3Engine* pEngine, __out XACTINDEX* pnRendererCount);
1092 STDAPI IXACT3Engine_GetRendererDetails(__in IXACT3Engine* pEngine, XACTINDEX nRendererIndex, __out LPXACT_RENDERER_DETAILS pRendererDetails);
1093 STDAPI IXACT3Engine_GetFinalMixFormat(__in IXACT3Engine* pEngine, __out
WAVEFORMATEXTENSIBLE* pFinalMixFormat);
1095 STDAPI IXACT3Engine_ShutDown(__in IXACT3Engine* pEngine);
1096 STDAPI IXACT3Engine_DoWork(__in IXACT3Engine* pEngine);
1097 STDAPI IXACT3Engine_CreateSoundBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3SoundBank** ppSoundBank);
1098 STDAPI IXACT3Engine_CreateInMemoryWaveBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3WaveBank** ppWaveBank);
1099 STDAPI IXACT3Engine_CreateStreamingWaveBank(__in IXACT3Engine* pEngine, __in
const XACT_WAVEBANK_STREAMING_PARAMETERS* pParms, __deref_out IXACT3WaveBank** ppWaveBank);
1100 STDAPI IXACT3Engine_PrepareWave(__in IXACT3Engine* pEngine, DWORD dwFlags, __in PCSTR szWavePath, WORD wStreamingPacketSize, DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave);
1101 STDAPI IXACT3Engine_PrepareInMemoryWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, __in_opt DWORD* pdwSeekTable, __in_opt BYTE* pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave);
1102 STDAPI IXACT3Engine_PrepareStreamingWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment, __in_opt DWORD* pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave);
1105 STDAPI_(XACTCATEGORY) IXACT3Engine_GetCategory(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName);
1106 STDAPI IXACT3Engine_Stop(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, DWORD dwFlags);
1107 STDAPI IXACT3Engine_SetVolume(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, XACTVOLUME nVolume);
1108 STDAPI IXACT3Engine_Pause(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, BOOL fPause);
1109 STDAPI_(XACTVARIABLEINDEX) IXACT3Engine_GetGlobalVariableIndex(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName);
1110 STDAPI IXACT3Engine_SetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue);
1111 STDAPI IXACT3Engine_GetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* pnValue);
1114 #define INTERFACE IXACT3Engine 1117 DECLARE_INTERFACE(IXACT3Engine)
1120 DECLARE_INTERFACE_(IXACT3Engine, IUnknown)
1122 STDMETHOD(QueryInterface)(THIS_ __in REFIID riid, __deref_out
void** ppvObj) PURE;
1125 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1126 STDMETHOD_(ULONG, Release)(THIS) PURE;
1128 STDMETHOD(GetRendererCount)(THIS_ __out XACTINDEX* pnRendererCount) PURE;
1129 STDMETHOD(GetRendererDetails)(THIS_ XACTINDEX nRendererIndex, __out LPXACT_RENDERER_DETAILS pRendererDetails) PURE;
1133 STDMETHOD(ShutDown)(THIS) PURE;
1135 STDMETHOD(DoWork)(THIS) PURE;
1137 STDMETHOD(CreateSoundBank)(THIS_ __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3SoundBank** ppSoundBank) PURE;
1138 STDMETHOD(CreateInMemoryWaveBank)(THIS_ __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3WaveBank** ppWaveBank) PURE;
1141 STDMETHOD(PrepareWave)(THIS_ DWORD dwFlags, __in PCSTR szWavePath, WORD wStreamingPacketSize, DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave) PURE;
1142 STDMETHOD(PrepareInMemoryWave)(THIS_ DWORD dwFlags,
WAVEBANKENTRY entry, __in_opt DWORD* pdwSeekTable, __in_opt BYTE* pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave) PURE;
1143 STDMETHOD(PrepareStreamingWave)(THIS_ DWORD dwFlags,
WAVEBANKENTRY entry, XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment, __in_opt DWORD* pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave) PURE;
1148 STDMETHOD_(XACTCATEGORY, GetCategory)(THIS_ __in PCSTR szFriendlyName) PURE;
1149 STDMETHOD(Stop)(THIS_ XACTCATEGORY nCategory, DWORD dwFlags) PURE;
1150 STDMETHOD(SetVolume)(THIS_ XACTCATEGORY nCategory, XACTVOLUME nVolume) PURE;
1151 STDMETHOD(Pause)(THIS_ XACTCATEGORY nCategory, BOOL fPause) PURE;
1153 STDMETHOD_(XACTVARIABLEINDEX, GetGlobalVariableIndex)(THIS_ __in PCSTR szFriendlyName) PURE;
1154 STDMETHOD(SetGlobalVariable)(THIS_ XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue) PURE;
1155 STDMETHOD(GetGlobalVariable)(THIS_ XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* nValue) PURE;
1160 __inline ULONG __stdcall IXACT3Engine_AddRef(__in IXACT3Engine* pEngine)
1162 return pEngine->AddRef();
1165 __inline ULONG __stdcall IXACT3Engine_Release(__in IXACT3Engine* pEngine)
1167 return pEngine->Release();
1170 __inline HRESULT __stdcall IXACT3Engine_GetRendererCount(__in IXACT3Engine* pEngine, __out XACTINDEX* pnRendererCount)
1172 return pEngine->GetRendererCount(pnRendererCount);
1175 __inline HRESULT __stdcall IXACT3Engine_GetRendererDetails(__in IXACT3Engine* pEngine, XACTINDEX nRendererIndex, __out LPXACT_RENDERER_DETAILS pRendererDetails)
1177 return pEngine->GetRendererDetails(nRendererIndex, pRendererDetails);
1180 __inline HRESULT __stdcall IXACT3Engine_GetFinalMixFormat(__in IXACT3Engine* pEngine, __out
WAVEFORMATEXTENSIBLE* pFinalMixFormat)
1182 return pEngine->GetFinalMixFormat(pFinalMixFormat);
1185 __inline HRESULT __stdcall IXACT3Engine_Initialize(__in IXACT3Engine* pEngine, __in
const XACT_RUNTIME_PARAMETERS* pParams)
1187 return pEngine->Initialize(pParams);
1190 __inline HRESULT __stdcall IXACT3Engine_ShutDown(__in IXACT3Engine* pEngine)
1192 return pEngine->ShutDown();
1195 __inline HRESULT __stdcall IXACT3Engine_DoWork(__in IXACT3Engine* pEngine)
1197 return pEngine->DoWork();
1200 __inline HRESULT __stdcall IXACT3Engine_CreateSoundBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3SoundBank** ppSoundBank)
1202 return pEngine->CreateSoundBank(pvBuffer, dwSize, dwFlags, dwAllocAttributes, ppSoundBank);
1205 __inline HRESULT __stdcall IXACT3Engine_CreateInMemoryWaveBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3WaveBank** ppWaveBank)
1207 return pEngine->CreateInMemoryWaveBank(pvBuffer, dwSize, dwFlags, dwAllocAttributes, ppWaveBank);
1210 __inline HRESULT __stdcall IXACT3Engine_CreateStreamingWaveBank(__in IXACT3Engine* pEngine, __in
const XACT_WAVEBANK_STREAMING_PARAMETERS* pParms, __deref_out IXACT3WaveBank** ppWaveBank)
1212 return pEngine->CreateStreamingWaveBank(pParms, ppWaveBank);
1215 __inline HRESULT __stdcall IXACT3Engine_PrepareWave(__in IXACT3Engine* pEngine, DWORD dwFlags, __in PCSTR szWavePath, WORD wStreamingPacketSize, DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1217 return pEngine->PrepareWave(dwFlags, szWavePath, wStreamingPacketSize, dwAlignment, dwPlayOffset, nLoopCount, ppWave);
1220 __inline HRESULT __stdcall IXACT3Engine_PrepareInMemoryWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, __in_opt DWORD* pdwSeekTable, __in_opt BYTE* pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1222 return pEngine->PrepareInMemoryWave(dwFlags, entry, pdwSeekTable, pbWaveData, dwPlayOffset, nLoopCount, ppWave);
1225 __inline HRESULT __stdcall IXACT3Engine_PrepareStreamingWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment, __in_opt DWORD* pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1227 return pEngine->PrepareStreamingWave(dwFlags, entry, streamingParams, dwAlignment, pdwSeekTable, dwPlayOffset, nLoopCount, ppWave);
1230 __inline HRESULT __stdcall IXACT3Engine_RegisterNotification(__in IXACT3Engine* pEngine, __in
const XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc)
1232 return pEngine->RegisterNotification(pNotificationDesc);
1235 __inline HRESULT __stdcall IXACT3Engine_UnRegisterNotification(__in IXACT3Engine* pEngine, __in
const XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc)
1237 return pEngine->UnRegisterNotification(pNotificationDesc);
1240 __inline XACTCATEGORY __stdcall IXACT3Engine_GetCategory(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName)
1242 return pEngine->GetCategory(szFriendlyName);
1245 __inline HRESULT __stdcall IXACT3Engine_Stop(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, DWORD dwFlags)
1247 return pEngine->Stop(nCategory, dwFlags);
1250 __inline HRESULT __stdcall IXACT3Engine_SetVolume(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, XACTVOLUME nVolume)
1252 return pEngine->SetVolume(nCategory, nVolume);
1255 __inline HRESULT __stdcall IXACT3Engine_Pause(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, BOOL fPause)
1257 return pEngine->Pause(nCategory, fPause);
1260 __inline XACTVARIABLEINDEX __stdcall IXACT3Engine_GetGlobalVariableIndex(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName)
1262 return pEngine->GetGlobalVariableIndex(szFriendlyName);
1265 __inline HRESULT __stdcall IXACT3Engine_SetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
1267 return pEngine->SetGlobalVariable(nIndex, nValue);
1270 __inline HRESULT __stdcall IXACT3Engine_GetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* nValue)
1272 return pEngine->GetGlobalVariable(nIndex, nValue);
1275 #else // __cplusplus 1277 __inline ULONG __stdcall IXACT3Engine_AddRef(__in IXACT3Engine* pEngine)
1279 return pEngine->lpVtbl->AddRef(pEngine);
1282 __inline ULONG __stdcall IXACT3Engine_Release(__in IXACT3Engine* pEngine)
1284 return pEngine->lpVtbl->Release(pEngine);
1287 __inline HRESULT __stdcall IXACT3Engine_GetRendererCount(__in IXACT3Engine* pEngine, __out XACTINDEX* pnRendererCount)
1289 return pEngine->lpVtbl->GetRendererCount(pEngine, pnRendererCount);
1292 __inline HRESULT __stdcall IXACT3Engine_GetRendererDetails(__in IXACT3Engine* pEngine, XACTINDEX nRendererIndex, __out LPXACT_RENDERER_DETAILS pRendererDetails)
1294 return pEngine->lpVtbl->GetRendererDetails(pEngine, nRendererIndex, pRendererDetails);
1297 __inline HRESULT __stdcall IXACT3Engine_GetFinalMixFormat(__in IXACT3Engine* pEngine, __out
WAVEFORMATEXTENSIBLE* pFinalMixFormat)
1299 return pEngine->lpVtbl->GetFinalMixFormat(pEngine, pFinalMixFormat);
1302 __inline HRESULT __stdcall IXACT3Engine_Initialize(__in IXACT3Engine* pEngine, __in
const XACT_RUNTIME_PARAMETERS* pParams)
1304 return pEngine->lpVtbl->Initialize(pEngine, pParams);
1307 __inline HRESULT __stdcall IXACT3Engine_ShutDown(__in IXACT3Engine* pEngine)
1309 return pEngine->lpVtbl->ShutDown(pEngine);
1312 __inline HRESULT __stdcall IXACT3Engine_DoWork(__in IXACT3Engine* pEngine)
1314 return pEngine->lpVtbl->DoWork(pEngine);
1317 __inline HRESULT __stdcall IXACT3Engine_CreateSoundBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3SoundBank** ppSoundBank)
1319 return pEngine->lpVtbl->CreateSoundBank(pEngine, pvBuffer, dwSize, dwFlags, dwAllocAttributes, ppSoundBank);
1322 __inline HRESULT __stdcall IXACT3Engine_CreateInMemoryWaveBank(__in IXACT3Engine* pEngine, __in
const void* pvBuffer, DWORD dwSize, DWORD dwFlags, DWORD dwAllocAttributes, __deref_out IXACT3WaveBank** ppWaveBank)
1324 return pEngine->lpVtbl->CreateInMemoryWaveBank(pEngine, pvBuffer, dwSize, dwFlags, dwAllocAttributes, ppWaveBank);
1327 __inline HRESULT __stdcall IXACT3Engine_CreateStreamingWaveBank(__in IXACT3Engine* pEngine, __in
const XACT_WAVEBANK_STREAMING_PARAMETERS* pParms, __deref_out IXACT3WaveBank** ppWaveBank)
1329 return pEngine->lpVtbl->CreateStreamingWaveBank(pEngine, pParms, ppWaveBank);
1332 __inline HRESULT __stdcall IXACT3Engine_PrepareWave(__in IXACT3Engine* pEngine, DWORD dwFlags, __in PCSTR szWavePath, WORD wStreamingPacketSize, DWORD dwAlignment, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1334 return pEngine->lpVtbl->PrepareWave(pEngine, dwFlags, szWavePath, wStreamingPacketSize, dwAlignment, dwPlayOffset, nLoopCount, ppWave);
1337 __inline HRESULT __stdcall IXACT3Engine_PrepareInMemoryWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, __in_opt DWORD* pdwSeekTable, __in_opt BYTE* pbWaveData, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1339 return pEngine->lpVtbl->PrepareInMemoryWave(pEngine, dwFlags, entry, pdwSeekTable, pbWaveData, dwPlayOffset, nLoopCount, ppWave);
1342 __inline HRESULT __stdcall IXACT3Engine_PrepareStreamingWave(__in IXACT3Engine* pEngine, DWORD dwFlags,
WAVEBANKENTRY entry, XACT_STREAMING_PARAMETERS streamingParams, DWORD dwAlignment, __in_opt DWORD* pdwSeekTable, DWORD dwPlayOffset, XACTLOOPCOUNT nLoopCount, __deref_out IXACT3Wave** ppWave)
1344 return pEngine->lpVtbl->PrepareStreamingWave(pEngine, dwFlags, entry, streamingParams, dwAlignment, pdwSeekTable, dwPlayOffset, nLoopCount, ppWave);
1348 __inline HRESULT __stdcall IXACT3Engine_RegisterNotification(__in IXACT3Engine* pEngine, __in
const XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc)
1350 return pEngine->lpVtbl->RegisterNotification(pEngine, pNotificationDesc);
1353 __inline HRESULT __stdcall IXACT3Engine_UnRegisterNotification(__in IXACT3Engine* pEngine, __in
const XACT_NOTIFICATION_DESCRIPTION* pNotificationDesc)
1355 return pEngine->lpVtbl->UnRegisterNotification(pEngine, pNotificationDesc);
1358 __inline XACTCATEGORY __stdcall IXACT3Engine_GetCategory(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName)
1360 return pEngine->lpVtbl->GetCategory(pEngine, szFriendlyName);
1363 __inline HRESULT __stdcall IXACT3Engine_Stop(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, DWORD dwFlags)
1365 return pEngine->lpVtbl->Stop(pEngine, nCategory, dwFlags);
1368 __inline HRESULT __stdcall IXACT3Engine_SetVolume(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, XACTVOLUME nVolume)
1370 return pEngine->lpVtbl->SetVolume(pEngine, nCategory, nVolume);
1373 __inline HRESULT __stdcall IXACT3Engine_Pause(__in IXACT3Engine* pEngine, XACTCATEGORY nCategory, BOOL fPause)
1375 return pEngine->lpVtbl->Pause(pEngine, nCategory, fPause);
1378 __inline XACTVARIABLEINDEX __stdcall IXACT3Engine_GetGlobalVariableIndex(__in IXACT3Engine* pEngine, __in PCSTR szFriendlyName)
1380 return pEngine->lpVtbl->GetGlobalVariableIndex(pEngine, szFriendlyName);
1383 __inline HRESULT __stdcall IXACT3Engine_SetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue)
1385 return pEngine->lpVtbl->SetGlobalVariable(pEngine, nIndex, nValue);
1388 __inline HRESULT __stdcall IXACT3Engine_GetGlobalVariable(__in IXACT3Engine* pEngine, XACTVARIABLEINDEX nIndex, __out XACTVARIABLEVALUE* nValue)
1390 return pEngine->lpVtbl->GetGlobalVariable(pEngine, nIndex, nValue);
1393 #endif // __cplusplus 1402 static const DWORD XACT_FLAG_API_AUDITION_MODE = 0x00000001;
1403 static const DWORD XACT_FLAG_API_DEBUG_MODE = 0x00000002;
1407 STDAPI XACT3CreateEngine(DWORD dwCreationFlags, __deref_out IXACT3Engine** ppEngine);
1409 #else // #ifdef _XBOX 1411 #define XACT_DEBUGENGINE_REGISTRY_KEY TEXT("Software\\Microsoft\\XACT") 1412 #define XACT_DEBUGENGINE_REGISTRY_VALUE TEXT("DebugEngine") 1417 __inline HRESULT __stdcall XACT3CreateEngine(DWORD dwCreationFlags, __deref_out IXACT3Engine** ppEngine)
1422 DWORD type = REG_DWORD;
1423 DWORD dataSize =
sizeof(DWORD);
1424 BOOL debug = (dwCreationFlags & XACT_FLAG_API_DEBUG_MODE) ? TRUE : FALSE;
1425 BOOL audition = (dwCreationFlags & XACT_FLAG_API_AUDITION_MODE) ? TRUE : FALSE;
1428 if(!debug && !audition &&
1429 (RegOpenKeyEx(HKEY_LOCAL_MACHINE, XACT_DEBUGENGINE_REGISTRY_KEY, 0, KEY_READ, &key) == ERROR_SUCCESS))
1431 if(RegQueryValueEx(key, XACT_DEBUGENGINE_REGISTRY_VALUE, NULL, &type, (LPBYTE)&data, &dataSize) == ERROR_SUCCESS)
1442 hr = CoCreateInstance(audition ? __uuidof(XACTAuditionEngine)
1443 : (debug ? __uuidof(XACTDebugEngine) : __uuidof(XACTEngine)),
1444 NULL, CLSCTX_INPROC_SERVER, __uuidof(IXACT3Engine), (
void**)ppEngine);
1447 if(FAILED(hr) && debug && !audition)
1449 hr = CoCreateInstance(__uuidof(XACTEngine), NULL, CLSCTX_INPROC_SERVER, __uuidof(IXACT3Engine), (
void**)ppEngine);
1455 #else // #ifdef __cplusplus 1457 __inline HRESULT __stdcall XACT3CreateEngine(DWORD dwCreationFlags, __deref_out IXACT3Engine** ppEngine)
1462 DWORD type = REG_DWORD;
1463 DWORD dataSize =
sizeof(DWORD);
1464 BOOL debug = (dwCreationFlags & XACT_FLAG_API_DEBUG_MODE) ? TRUE : FALSE;
1465 BOOL audition = (dwCreationFlags & XACT_FLAG_API_AUDITION_MODE) ? TRUE : FALSE;
1468 if(!debug && !audition &&
1469 (RegOpenKeyEx(HKEY_LOCAL_MACHINE, XACT_DEBUGENGINE_REGISTRY_KEY, 0, KEY_READ, &key) == ERROR_SUCCESS))
1471 if(RegQueryValueEx(key, XACT_DEBUGENGINE_REGISTRY_VALUE, NULL, &type, (LPBYTE)&data, &dataSize) == ERROR_SUCCESS)
1482 hr = CoCreateInstance(audition ? &CLSID_XACTAuditionEngine
1483 : (debug ? &CLSID_XACTDebugEngine : &CLSID_XACTEngine),
1484 NULL, CLSCTX_INPROC_SERVER, &IID_IXACT3Engine, (
void**)ppEngine);
1487 if(FAILED(hr) && debug && !audition)
1489 hr = CoCreateInstance(&CLSID_XACTEngine, NULL, CLSCTX_INPROC_SERVER, &IID_IXACT3Engine, (
void**)ppEngine);
1495 #endif // #ifdef __cplusplus 1497 #endif // #ifdef _XBOX 1503 #define FACILITY_XACTENGINE 0xAC7 1504 #define XACTENGINEERROR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_XACTENGINE, n) 1506 #define XACTENGINE_E_OUTOFMEMORY E_OUTOFMEMORY // Out of memory 1507 #define XACTENGINE_E_INVALIDARG E_INVALIDARG // Invalid arg 1508 #define XACTENGINE_E_NOTIMPL E_NOTIMPL // Not implemented 1509 #define XACTENGINE_E_FAIL E_FAIL // Unknown error 1511 #define XACTENGINE_E_ALREADYINITIALIZED XACTENGINEERROR(0x001) // The engine is already initialized 1512 #define XACTENGINE_E_NOTINITIALIZED XACTENGINEERROR(0x002) // The engine has not been initialized 1513 #define XACTENGINE_E_EXPIRED XACTENGINEERROR(0x003) // The engine has expired (demo or pre-release version) 1514 #define XACTENGINE_E_NONOTIFICATIONCALLBACK XACTENGINEERROR(0x004) // No notification callback 1515 #define XACTENGINE_E_NOTIFICATIONREGISTERED XACTENGINEERROR(0x005) // Notification already registered 1516 #define XACTENGINE_E_INVALIDUSAGE XACTENGINEERROR(0x006) // Invalid usage 1517 #define XACTENGINE_E_INVALIDDATA XACTENGINEERROR(0x007) // Invalid data 1518 #define XACTENGINE_E_INSTANCELIMITFAILTOPLAY XACTENGINEERROR(0x008) // Fail to play due to instance limit 1519 #define XACTENGINE_E_NOGLOBALSETTINGS XACTENGINEERROR(0x009) // Global Settings not loaded 1520 #define XACTENGINE_E_INVALIDVARIABLEINDEX XACTENGINEERROR(0x00a) // Invalid variable index 1521 #define XACTENGINE_E_INVALIDCATEGORY XACTENGINEERROR(0x00b) // Invalid category 1522 #define XACTENGINE_E_INVALIDCUEINDEX XACTENGINEERROR(0x00c) // Invalid cue index 1523 #define XACTENGINE_E_INVALIDWAVEINDEX XACTENGINEERROR(0x00d) // Invalid wave index 1524 #define XACTENGINE_E_INVALIDTRACKINDEX XACTENGINEERROR(0x00e) // Invalid track index 1525 #define XACTENGINE_E_INVALIDSOUNDOFFSETORINDEX XACTENGINEERROR(0x00f) // Invalid sound offset or index 1526 #define XACTENGINE_E_READFILE XACTENGINEERROR(0x010) // Error reading a file 1527 #define XACTENGINE_E_UNKNOWNEVENT XACTENGINEERROR(0x011) // Unknown event type 1528 #define XACTENGINE_E_INCALLBACK XACTENGINEERROR(0x012) // Invalid call of method of function from callback 1529 #define XACTENGINE_E_NOWAVEBANK XACTENGINEERROR(0x013) // No wavebank exists for desired operation 1530 #define XACTENGINE_E_SELECTVARIATION XACTENGINEERROR(0x014) // Unable to select a variation 1531 #define XACTENGINE_E_MULTIPLEAUDITIONENGINES XACTENGINEERROR(0x015) // There can be only one audition engine 1532 #define XACTENGINE_E_WAVEBANKNOTPREPARED XACTENGINEERROR(0x016) // The wavebank is not prepared 1533 #define XACTENGINE_E_NORENDERER XACTENGINEERROR(0x017) // No audio device found on. 1534 #define XACTENGINE_E_INVALIDENTRYCOUNT XACTENGINEERROR(0x018) // Invalid entry count for channel maps 1535 #define XACTENGINE_E_SEEKTIMEBEYONDCUEEND XACTENGINEERROR(0x019) // Time offset for seeking is beyond the cue end. 1536 #define XACTENGINE_E_SEEKTIMEBEYONDWAVEEND XACTENGINEERROR(0x01a) // Time offset for seeking is beyond the wave end. 1537 #define XACTENGINE_E_NOFRIENDLYNAMES XACTENGINEERROR(0x01b) // Friendly names are not included in the bank. 1539 #define XACTENGINE_E_AUDITION_WRITEFILE XACTENGINEERROR(0x101) // Error writing a file during auditioning 1540 #define XACTENGINE_E_AUDITION_NOSOUNDBANK XACTENGINEERROR(0x102) // Missing a soundbank 1541 #define XACTENGINE_E_AUDITION_INVALIDRPCINDEX XACTENGINEERROR(0x103) // Missing an RPC curve 1542 #define XACTENGINE_E_AUDITION_MISSINGDATA XACTENGINEERROR(0x104) // Missing data for an audition command 1543 #define XACTENGINE_E_AUDITION_UNKNOWNCOMMAND XACTENGINEERROR(0x105) // Unknown command 1544 #define XACTENGINE_E_AUDITION_INVALIDDSPINDEX XACTENGINEERROR(0x106) // Missing a DSP parameter 1545 #define XACTENGINE_E_AUDITION_MISSINGWAVE XACTENGINEERROR(0x107) // Wave does not exist in auditioned wavebank 1546 #define XACTENGINE_E_AUDITION_CREATEDIRECTORYFAILED XACTENGINEERROR(0x108) // Failed to create a directory for streaming wavebank data 1547 #define XACTENGINE_E_AUDITION_INVALIDSESSION XACTENGINEERROR(0x109) // Invalid audition session 1549 #endif // #ifndef GUID_DEFS_ONLY 1551 #endif // #ifndef _XACT3_H_
Definition: xact3wb.h:202
Definition: XAudio2.h:262
Definition: xact3wb.h:450
Definition: audiodefs.h:74