📄 xact.pas
字号:
{$EXTERNALSYM XACTVARIABLEVALUE_MIN}
XACTVARIABLEVALUE_MAX: TXACTVariableValue = 3.402823466e+38; // FLT_MAX;
{$EXTERNALSYM XACTVARIABLEVALUE_MAX}
XACTVARIABLEINDEX_MIN = TXACTVariableIndex($0000);
{$EXTERNALSYM XACTVARIABLEINDEX_MIN}
XACTVARIABLEINDEX_MAX = TXACTVariableIndex($fffe);
{$EXTERNALSYM XACTVARIABLEINDEX_MAX}
XACTVARIABLEINDEX_INVALID = TXACTVariableIndex($ffff);
{$EXTERNALSYM XACTVARIABLEINDEX_INVALID}
XACTCATEGORY_MIN = TXACTCategory($0);
{$EXTERNALSYM XACTCATEGORY_MIN}
XACTCATEGORY_MAX = TXACTCategory($fffe);
{$EXTERNALSYM XACTCATEGORY_MAX}
XACTCATEGORY_INVALID = TXACTCategory($ffff);
{$EXTERNALSYM XACTCATEGORY_INVALID}
XACTCHANNEL_MIN = TXACTChannel(0);
{$EXTERNALSYM XACTCHANNEL_MIN}
XACTCHANNEL_MAX = TXACTChannel($FF);
{$EXTERNALSYM XACTCHANNEL_MAX}
XACTVOLUME_MIN = {TXACTVolume}(0.0);
{$EXTERNALSYM XACTVOLUME_MIN}
XACTVOLUME_MAX = {TXACTVolume}(3.402823466e+38); // FLT_MAX;
{$EXTERNALSYM XACTVOLUME_MAX}
XACTPARAMETERVALUE_MIN: TXACTVariableValue = -3.402823466e+38; // -FLT_MAX;
{$EXTERNALSYM XACTPARAMETERVALUE_MIN}
XACTPARAMETERVALUE_MAX: TXACTVariableValue = 3.402823466e+38; // FLT_MAX;
{$EXTERNALSYM XACTPARAMETERVALUE_MAX}
{$IFDEF XBOX}
XACTMAXOUTPUTVOICECOUNT: TXAudioVoiceIndex = 3;
{$EXTERNALSYM XACTMAXOUTPUTVOICECOUNT}
{$ENDIF} // XBOX
XACT_CONTENT_VERSION = 41;
{$EXTERNALSYM XACT_CONTENT_VERSION}
//------------------------------------------------------------------------------
// XACT Parameters
//------------------------------------------------------------------------------
XACT_FLAG_GLOBAL_SETTINGS_MANAGEDATA = DWORD($00000001);
{$EXTERNALSYM XACT_FLAG_GLOBAL_SETTINGS_MANAGEDATA}
//------------------------------------------------------------------------------
// Notifications
//------------------------------------------------------------------------------
XACTNOTIFICATIONTYPE_CUEPREPARED = TXACTNotificationType(1); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_CUEPREPARED}
XACTNOTIFICATIONTYPE_CUEPLAY = TXACTNotificationType(2); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_CUEPLAY}
XACTNOTIFICATIONTYPE_CUESTOP = TXACTNotificationType(3); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_CUESTOP}
XACTNOTIFICATIONTYPE_CUEDESTROYED = TXACTNotificationType(4); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_CUEDESTROYED}
XACTNOTIFICATIONTYPE_MARKER = TXACTNotificationType(5); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_MARKER}
XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = TXACTNotificationType(6); // None, SoundBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED}
XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = TXACTNotificationType(7); // None, WaveBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED}
XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED = TXACTNotificationType(8); // None, SoundBank, SoundBank & cue index, cue instance
{$EXTERNALSYM XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED}
XACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED = TXACTNotificationType(9); // None
{$EXTERNALSYM XACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED}
XACTNOTIFICATIONTYPE_GUICONNECTED = TXACTNotificationType(10); // None
{$EXTERNALSYM XACTNOTIFICATIONTYPE_GUICONNECTED}
XACTNOTIFICATIONTYPE_GUIDISCONNECTED = TXACTNotificationType(11); // None
{$EXTERNALSYM XACTNOTIFICATIONTYPE_GUIDISCONNECTED}
XACTNOTIFICATIONTYPE_WAVEPLAY = TXACTNotificationType(12); // None, SoundBank, SoundBank & cue index, cue instance, WaveBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_WAVEPLAY}
XACTNOTIFICATIONTYPE_WAVESTOP = TXACTNotificationType(13); // None, SoundBank, SoundBank & cue index, cue instance, WaveBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_WAVESTOP}
XACTNOTIFICATIONTYPE_WAVEBANKPREPARED = TXACTNotificationType(14); // None, WaveBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_WAVEBANKPREPARED}
XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = TXACTNotificationType(15); // None, WaveBank
{$EXTERNALSYM XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT}
XACT_FLAG_NOTIFICATION_PERSIST = $01;
{$EXTERNALSYM XACT_FLAG_NOTIFICATION_PERSIST}
//------------------------------------------------------------------------------
// IXACTSoundBank
//------------------------------------------------------------------------------
XACT_FLAG_SOUNDBANK_STOP_IMMEDIATE = DWORD($00000001);
{$EXTERNALSYM XACT_FLAG_SOUNDBANK_STOP_IMMEDIATE}
XACT_SOUNDBANKSTATE_INUSE = DWORD($00000001); // Currently in-use
{$EXTERNALSYM XACT_SOUNDBANKSTATE_INUSE}
//------------------------------------------------------------------------------
// IXACTWaveBank
//------------------------------------------------------------------------------
XACT_WAVEBANKSTATE_INUSE = DWORD($00000001); // Currently in-use
{$EXTERNALSYM XACT_WAVEBANKSTATE_INUSE}
XACT_WAVEBANKSTATE_PREPARED = DWORD($00000002); // Prepared
{$EXTERNALSYM XACT_WAVEBANKSTATE_PREPARED}
XACT_WAVEBANKSTATE_PREPAREFAILED = DWORD($00000004); // Prepare failed.
{$EXTERNALSYM XACT_WAVEBANKSTATE_PREPAREFAILED}
//------------------------------------------------------------------------------
// IXACTCue
//------------------------------------------------------------------------------
// Cue Flags
XACT_FLAG_CUE_STOP_RELEASE = DWORD($00000000);
{$EXTERNALSYM XACT_FLAG_CUE_STOP_RELEASE}
XACT_FLAG_CUE_STOP_IMMEDIATE = DWORD($00000001);
{$EXTERNALSYM XACT_FLAG_CUE_STOP_IMMEDIATE}
// Mutually exclusive states
XACT_CUESTATE_CREATED = DWORD($00000001); // Created, but nothing else
{$EXTERNALSYM XACT_CUESTATE_CREATED}
XACT_CUESTATE_PREPARING = DWORD($00000002); // In the middle of preparing
{$EXTERNALSYM XACT_CUESTATE_PREPARING}
XACT_CUESTATE_PREPARED = DWORD($00000004); // Prepared, but not yet played
{$EXTERNALSYM XACT_CUESTATE_PREPARED}
XACT_CUESTATE_PLAYING = DWORD($00000008); // Playing (though could be paused)
{$EXTERNALSYM XACT_CUESTATE_PLAYING}
XACT_CUESTATE_STOPPING = DWORD($00000010); // Stopping
{$EXTERNALSYM XACT_CUESTATE_STOPPING}
XACT_CUESTATE_STOPPED = DWORD($00000020); // Stopped
{$EXTERNALSYM XACT_CUESTATE_STOPPED}
// Inclusive states
XACT_CUESTATE_PAUSED = DWORD($00000040); // Paused (can be combinded with other states)
{$EXTERNALSYM XACT_CUESTATE_PAUSED}
//------------------------------------------------------------------------------
// XACT specific error codes
//------------------------------------------------------------------------------
const
FACILITY_XACTENGINE = $AC7;
{$EXTERNALSYM FACILITY_XACTENGINE}
// #define XACTENGINEERROR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_XACTENGINE, n)
// XACTENGINEERROR(n) = DWord((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or n;
XACTENGINE_E_OUTOFMEMORY = E_OUTOFMEMORY; // Out of memory
{$EXTERNALSYM XACTENGINE_E_OUTOFMEMORY}
XACTENGINE_E_INVALIDARG = E_INVALIDARG; // Invalid arg
{$EXTERNALSYM XACTENGINE_E_INVALIDARG}
XACTENGINE_E_NOTIMPL = E_NOTIMPL; // Not implemented
{$EXTERNALSYM XACTENGINE_E_NOTIMPL}
XACTENGINE_E_FAIL = E_FAIL; // Unknown error
{$EXTERNALSYM XACTENGINE_E_FAIL}
XACTENGINE_E_ALREADYINITIALIZED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $001); // The engine is already initialized
{$EXTERNALSYM XACTENGINE_E_ALREADYINITIALIZED}
XACTENGINE_E_NOTINITIALIZED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $002); // The engine has not been initialized
{$EXTERNALSYM XACTENGINE_E_NOTINITIALIZED}
XACTENGINE_E_EXPIRED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $003); // The engine has expired (demo or pre-release version)
{$EXTERNALSYM XACTENGINE_E_EXPIRED}
XACTENGINE_E_NONOTIFICATIONCALLBACK = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $004); // No notification callback
{$EXTERNALSYM XACTENGINE_E_NONOTIFICATIONCALLBACK}
XACTENGINE_E_NOTIFICATIONREGISTERED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $005); // Notification already registered
{$EXTERNALSYM XACTENGINE_E_NOTIFICATIONREGISTERED}
XACTENGINE_E_INVALIDUSAGE = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $006); // Invalid usage
{$EXTERNALSYM XACTENGINE_E_INVALIDUSAGE}
XACTENGINE_E_INVALIDDATA = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $007); // Invalid data
{$EXTERNALSYM XACTENGINE_E_INVALIDDATA}
XACTENGINE_E_INSTANCELIMITFAILTOPLAY = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $008); // Fail to play due to instance limit
{$EXTERNALSYM XACTENGINE_E_INSTANCELIMITFAILTOPLAY}
XACTENGINE_E_NOGLOBALSETTINGS = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $009); // Global Settings not loaded
{$EXTERNALSYM XACTENGINE_E_NOGLOBALSETTINGS}
XACTENGINE_E_INVALIDVARIABLEINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00a); // Invalid variable index
{$EXTERNALSYM XACTENGINE_E_INVALIDVARIABLEINDEX}
XACTENGINE_E_INVALIDCATEGORY = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00b); // Invalid category
{$EXTERNALSYM XACTENGINE_E_INVALIDCATEGORY}
XACTENGINE_E_INVALIDCUEINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00c); // Invalid cue index
{$EXTERNALSYM XACTENGINE_E_INVALIDCUEINDEX}
XACTENGINE_E_INVALIDWAVEINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00d); // Invalid wave index
{$EXTERNALSYM XACTENGINE_E_INVALIDWAVEINDEX}
XACTENGINE_E_INVALIDTRACKINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00e); // Invalid track index
{$EXTERNALSYM XACTENGINE_E_INVALIDTRACKINDEX}
XACTENGINE_E_INVALIDSOUNDOFFSETORINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $00f); // Invalid sound offset or index
{$EXTERNALSYM XACTENGINE_E_INVALIDSOUNDOFFSETORINDEX}
XACTENGINE_E_READFILE = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $010); // Error reading a file
{$EXTERNALSYM XACTENGINE_E_READFILE}
XACTENGINE_E_UNKNOWNEVENT = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $011); // Unknown event type
{$EXTERNALSYM XACTENGINE_E_UNKNOWNEVENT}
XACTENGINE_E_INCALLBACK = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $012); // Invalid call of method of function from callback
{$EXTERNALSYM XACTENGINE_E_INCALLBACK}
XACTENGINE_E_NOWAVEBANK = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $013); // No wavebank exists for desired operation
{$EXTERNALSYM XACTENGINE_E_NOWAVEBANK}
XACTENGINE_E_SELECTVARIATION = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $014); // Unable to select a variation
{$EXTERNALSYM XACTENGINE_E_SELECTVARIATION}
XACTENGINE_E_MULTIPLEAUDITIONENGINES = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $015); // There can be only one audition engine
{$EXTERNALSYM XACTENGINE_E_MULTIPLEAUDITIONENGINES}
XACTENGINE_E_WAVEBANKNOTPREPARED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $016); // The wavebank is not prepared
{$EXTERNALSYM XACTENGINE_E_WAVEBANKNOTPREPARED}
XACTENGINE_E_NORENDERER = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $017); // No audio device found on.
{$EXTERNALSYM XACTENGINE_E_NORENDERER}
XACTENGINE_E_INVALIDENTRYCOUNT = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $018); // Invalid entry count for channel maps
{$EXTERNALSYM XACTENGINE_E_INVALIDENTRYCOUNT}
XACTENGINE_E_SEEKTIMEBEYONDCUEEND = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $019); // Time offset for seeking is beyond the cue end.
{$EXTERNALSYM XACTENGINE_E_SEEKTIMEBEYONDCUEEND}
XACTENGINE_E_AUDITION_WRITEFILE = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $101); // Error writing a file during auditioning
{$EXTERNALSYM XACTENGINE_E_AUDITION_WRITEFILE}
XACTENGINE_E_AUDITION_NOSOUNDBANK = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $102); // Missing a soundbank
{$EXTERNALSYM XACTENGINE_E_AUDITION_NOSOUNDBANK}
XACTENGINE_E_AUDITION_INVALIDRPCINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $103); // Missing an RPC curve
{$EXTERNALSYM XACTENGINE_E_AUDITION_INVALIDRPCINDEX}
XACTENGINE_E_AUDITION_MISSINGDATA = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $104); // Missing data for an audition command
{$EXTERNALSYM XACTENGINE_E_AUDITION_MISSINGDATA}
XACTENGINE_E_AUDITION_UNKNOWNCOMMAND = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $105); // Unknown command
{$EXTERNALSYM XACTENGINE_E_AUDITION_UNKNOWNCOMMAND}
XACTENGINE_E_AUDITION_INVALIDDSPINDEX = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $106); // Missing a DSP parameter
{$EXTERNALSYM XACTENGINE_E_AUDITION_INVALIDDSPINDEX}
XACTENGINE_E_AUDITION_MISSINGWAVE = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $107); // Wave does not exist in auditioned wavebank
{$EXTERNALSYM XACTENGINE_E_AUDITION_MISSINGWAVE}
XACTENGINE_E_AUDITION_CREATEDIRECTORYFAILED = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $108); // Failed to create a directory for streaming wavebank data
{$EXTERNALSYM XACTENGINE_E_AUDITION_CREATEDIRECTORYFAILED}
XACTENGINE_E_AUDITION_INVALIDSESSION = DWord(((1 shl 31) or (FACILITY_XACTENGINE shl 16)) or $109); // Invalid audition session
{$EXTERNALSYM XACTENGINE_E_AUDITION_INVALIDSESSION}
(***************************************************************************
*
* Copyright (C) Microsoft Corporation. All Rights Reserved.
*
* File: xact2wb.h
* Content: XACT 2 wave bank definitions.
*
****************************************************************************)
{$MINENUMSIZE 1}
const
WAVEBANK_HEADER_SIGNATURE = 'DNBW';
{$EXTERNALSYM WAVEBANK_HEADER_SIGNATURE}
WAVEBANK_HEADER_VERSION = XACT_CONTENT_VERSION; // Current tool version
{$EXTERNALSYM WAVEBANK_HEADER_VERSION}
WAVEBANK_BANKNAME_LENGTH = 64; // Wave bank friendly name length, in characters
{$EXTERNALSYM WAVEBANK_BANKNAME_LENGTH}
WAVEBANK_ENTRYNAME_LENGTH = 64; // Wave bank entry friendly name length, in characters
{$EXTERNALSYM WAVEBANK_ENTRYNAME_LENGTH}
WAVEBANK_MAX_DATA_SEGMENT_SIZE = $FFFFFFFF; // Maximum wave bank data segment size, in bytes
{$EXTERNALSYM WAVEBANK_MAX_DATA_SEGMENT_SIZE}
WAVEBANK_MAX_COMPACT_DATA_SEGMENT_SIZE = $001FFFFF; // Maximum compact wave bank data segment size, in bytes
{$EXTERNALSYM WAVEBANK_MAX_COMPACT_DATA_SEGMENT_SIZE}
type
WAVEBANKOFFSET = DWORD;
{$EXTERNALSYM WAVEBANKOFFSET}
TWavebankOffset = WAVEBANKOFFSET;
const
//
// Bank flags
//
WAVEBANK_TYPE_BUFFER = $00000000; // In-memory buffer
{$EXTERNALSYM WAVEBANK_TYPE_BUFFER}
WAVEBANK_TYPE_STREAMING = $00000001; // Streaming
{$EXTERNALSYM WAVEBANK_TYPE_STREAMING}
WAVEBANK_TYPE_MASK = $00000001;
{$EXTERNALSYM WAVEBANK_TYPE_MASK}
WAVEBANK_FLAGS_ENTRYNAMES = $00010000; // Bank includes entry names
{$EXTERNALSYM WAVEBANK_FLAGS_ENTRYNAMES}
WAVEBANK_FLAGS_COMPACT = $00020000; // Bank uses compact format
{$EXTERNALSYM WAVEBANK_FLAGS_COMPACT}
WAVEBANK_FLAGS_SYNC_DISABLED = $00040000; // Bank is disabled for audition sync
{$EXTERNALSYM WAVEBANK_FLAGS_SYNC_DISABLED}
WAVEBANK_FLAGS_SEEKTABLES = $00080000; // Bank includes seek tables.
{$EXTERNALSYM WAVEBANK_FLAGS_SEEKTABLES}
WAVEBANK_FLAGS_MASK = $000F0000;
{$EXTERNALSYM WAVEBANK_FLAGS_MASK}
//
// Entry flags
//
WAVEBANKENTRY_FLAGS_READAHEAD = $00000001; // Enable stream read-ahead
{$EXTERNALSYM WAVEBANKENTRY_FLAGS_READAHEAD}
WAVEBANKENTRY_FLAGS_LOOPCACHE = $00000002; // One or more looping sounds use this wave
{$EXTERNALSYM WAVEBANKENTRY_FLAGS_LOOPCACHE}
WAVEBANKENTRY_FLAGS_REMOVELOOPTAIL = $00000004; // Remove data after the end of the loop region
{$EXTERNALSYM WAVEBANKENTRY_FLAGS_REMOVELOOPTAIL}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -