?? directsound.pas
字號(hào):
fEnable : BOOL;
{$IFNDEF DX81}
fReset : BOOL;
{$ENDIF}
end;
PCDSCFXNoiseSuppress = ^TDSCFXNoiseSuppress;
PDSEffectDesc = ^TDSEffectDesc;
TDSEffectDesc = packed record
dwSize : DWORD;
dwFlags : DWORD;
guidDSFXClass : TGUID;
dwReserved1 : DWORD;
dwReserved2 : DWORD;
end;
PCDSEffectDesc = ^TDSEffectDesc;
PDSFXI3DL2Reverb = ^TDSFXI3DL2Reverb;
TDSFXI3DL2Reverb = packed record
lRoom : Longint; // [-10000, 0] default: -1000 mB
lRoomHF : Longint; // [-10000, 0] default: 0 mB
flRoomRolloffFactor : single; // [0.0, 10.0] default: 0.0
flDecayTime : single; // [0.1, 20.0] default: 1.49s
flDecayHFRatio : single; // [0.1, 2.0] default: 0.83
lReflections : Longint; // [-10000, 1000] default: -2602 mB
flReflectionsDelay : single; // [0.0, 0.3] default: 0.007 s
lReverb : Longint; // [-10000, 2000] default: 200 mB
flReverbDelay : single; // [0.0, 0.1] default: 0.011 s
flDiffusion : single; // [0.0, 100.0] default: 100.0 %
flDensity : single; // [0.0, 100.0] default: 100.0 %
flHFReference : single; // [20.0, 20000.0] default: 5000.0 Hz
end;
PCDSFXI3DL2Reverb = ^TDSFXI3DL2Reverb;
PDSFXChorus = ^TDSFXChorus;
TDSFXChorus = packed record
fWetDryMix : single;
fDepth : single;
fFeedback : single;
fFrequency : single;
lWaveform : Longint; // LFO shape; DSFXCHORUS_WAVE_xxx
fDelay : single;
lPhase : Longint;
end;
PCDSFXChorus = ^TDSFXChorus;
PDSFXCompressor = ^TDSFXCompressor;
TDSFXCompressor = packed record
fGain : single;
fAttack : single;
fRelease : single;
fThreshold : single;
fRatio : single;
fPredelay : single;
end;
PCDSFXCompressor = ^TDSFXCompressor;
PDSFXDistortion = ^TDSFXDistortion;
TDSFXDistortion = packed record
fGain : single;
fEdge : single;
fPostEQCenterFrequency : single;
fPostEQBandwidth : single;
fPreLowpassCutoff : single;
end;
PCDSFXDistortion = ^TDSFXDistortion;
PDSFXEcho = ^TDSFXEcho;
TDSFXEcho = packed record
fWetDryMix : single;
fFeedback : single;
fLeftDelay : single;
fRightDelay : single;
lPanDelay : Longint;
end;
PCDSFXEcho = ^TDSFXEcho;
PDSFXFlanger = ^TDSFXFlanger;
TDSFXFlanger = packed record
fWetDryMix : single;
fDepth : single;
fFeedback : single;
fFrequency : single;
lWaveform : Longint;
fDelay : single;
lPhase : Longint;
end;
PCDSFXFlanger = ^TDSFXFlanger;
PDSFXGargle = ^TDSFXGargle;
TDSFXGargle = packed record
dwRateHz : DWORD; // Rate of modulation in hz
dwWaveShape : DWORD; // DSFXGARGLE_WAVE_xxx
end;
PCDSFXGargle = ^TDSFXGargle;
PDSFXParamEq = ^TDSFXParamEq;
TDSFXParamEq = packed record
fCenter : single;
fBandwidth : single;
fGain : single;
end;
PCDSFXParamEq = ^TDSFXParamEq;
PDSFXWavesReverb = ^TDSFXWavesReverb;
TDSFXWavesReverb = packed record
fInGain : single; // [-96.0,0.0] default: 0.0 dB
fReverbMix : single; // [-96.0,0.0] default: 0.0 db
fReverbTime : single; // [0.001,3000.0] default: 1000.0 ms
fHighFreqRTRatio : single; // [0.001,0.999] default: 0.001
end;
PCDSFXWavesReverb = ^TDSFXWavesReverb;
TDSFXI3DL2EnvironmentPreset = (
DSFX_I3DL2_ENVIRONMENT_PRESET_DEFAULT,
DSFX_I3DL2_ENVIRONMENT_PRESET_GENERIC,
DSFX_I3DL2_ENVIRONMENT_PRESET_PADDEDCELL,
DSFX_I3DL2_ENVIRONMENT_PRESET_ROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_BATHROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_LIVINGROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_STONEROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_AUDITORIUM,
DSFX_I3DL2_ENVIRONMENT_PRESET_CONCERTHALL,
DSFX_I3DL2_ENVIRONMENT_PRESET_CAVE,
DSFX_I3DL2_ENVIRONMENT_PRESET_ARENA,
DSFX_I3DL2_ENVIRONMENT_PRESET_HANGAR,
DSFX_I3DL2_ENVIRONMENT_PRESET_CARPETEDHALLWAY,
DSFX_I3DL2_ENVIRONMENT_PRESET_HALLWAY,
DSFX_I3DL2_ENVIRONMENT_PRESET_STONECORRIDOR,
DSFX_I3DL2_ENVIRONMENT_PRESET_ALLEY,
DSFX_I3DL2_ENVIRONMENT_PRESET_FOREST,
DSFX_I3DL2_ENVIRONMENT_PRESET_CITY,
DSFX_I3DL2_ENVIRONMENT_PRESET_MOUNTAINS,
DSFX_I3DL2_ENVIRONMENT_PRESET_QUARRY,
DSFX_I3DL2_ENVIRONMENT_PRESET_PLAIN,
DSFX_I3DL2_ENVIRONMENT_PRESET_PARKINGLOT,
DSFX_I3DL2_ENVIRONMENT_PRESET_SEWERPIPE,
DSFX_I3DL2_ENVIRONMENT_PRESET_UNDERWATER,
DSFX_I3DL2_ENVIRONMENT_PRESET_SMALLROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEROOM,
DSFX_I3DL2_ENVIRONMENT_PRESET_MEDIUMHALL,
DSFX_I3DL2_ENVIRONMENT_PRESET_LARGEHALL,
DSFX_I3DL2_ENVIRONMENT_PRESET_PLATE
);
TDSFXI3DL2MaterialPreset = (
DSFX_I3DL2_MATERIAL_PRESET_SINGLEWINDOW,
DSFX_I3DL2_MATERIAL_PRESET_DOUBLEWINDOW,
DSFX_I3DL2_MATERIAL_PRESET_THINDOOR,
DSFX_I3DL2_MATERIAL_PRESET_THICKDOOR,
DSFX_I3DL2_MATERIAL_PRESET_WOODWALL,
DSFX_I3DL2_MATERIAL_PRESET_BRICKWALL,
DSFX_I3DL2_MATERIAL_PRESET_STONEWALL,
DSFX_I3DL2_MATERIAL_PRESET_CURTAIN
);
//
// DirectSound API
//
TDSEnumCallbackW = function (lpGuid: PGUID; lpstrDescription: PWideChar;
lpstrModule: PWideChar; lpContext: Pointer) : BOOL; stdcall;
TDSEnumCallbackA = function (lpGuid: PGUID; lpstrDescription: PAnsiChar;
lpstrModule: PAnsiChar; lpContext: Pointer) : BOOL; stdcall;
{$IFDEF UNICODE}
TDSEnumCallback = TDSEnumCallbackW;
{$ELSE}
TDSEnumCallback = TDSEnumCallbackA;
{$ENDIF}
//
// IDirectSound
//
PIDirectSound = ^IDirectSound;
IDirectSound = interface (IUnknown)
['{279AFA83-4981-11CE-A521-0020AF0BE560}']
// IDirectSound methods
function CreateSoundBuffer(const lpDSBufferDesc: TDSBufferDesc;
out lpIDirectSoundBuffer: IDirectSoundBuffer;
pUnkOuter: IUnknown) : HResult; stdcall;
function GetCaps(var lpDSCaps: TDSCaps) : HResult; stdcall;
function DuplicateSoundBuffer(lpDsbOriginal: IDirectSoundBuffer;
out lpDsbDuplicate: IDirectSoundBuffer) : HResult; stdcall;
function SetCooperativeLevel(hwnd: HWND; dwLevel: DWORD) : HResult; stdcall;
function Compact: HResult; stdcall;
function GetSpeakerConfig(var lpdwSpeakerConfig: DWORD) : HResult; stdcall;
function SetSpeakerConfig(dwSpeakerConfig: DWORD) : HResult; stdcall;
function Initialize(lpGuid: PGUID) : HResult; stdcall;
end;
//
// IDirectSound8
//
IDirectSound8 = interface (IDirectSound)
['{C50A7E93-F395-4834-9EF6-7FA99DE50966}']
// IDirectSound8 methods
function VerifyCertification(out pdwCertified: DWORD): HResult; stdcall;
end;
//
// IDirectSoundBuffer
//
IDirectSoundBuffer = interface (IUnknown)
['{279AFA85-4981-11CE-A521-0020AF0BE560}']
// IDirectSoundBuffer methods
function GetCaps(var lpDSCaps: TDSBCaps) : HResult; stdcall;
function GetCurrentPosition
(lpdwPlayPosition, lpdwReadPosition : PDWORD) : HResult; stdcall;
function GetFormat(lpwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD;
lpdwSizeWritten: PDWORD) : HResult; stdcall;
function GetVolume(var lplVolume: integer) : HResult; stdcall;
function GetPan(var lplPan: integer) : HResult; stdcall;
function GetFrequency(var lpdwFrequency: DWORD) : HResult; stdcall;
function GetStatus(var lpdwStatus: DWORD) : HResult; stdcall;
function Initialize(lpDirectSound: IDirectSound;
const lpcDSBufferDesc: TDSBufferDesc) : HResult; stdcall;
function Lock(dwWriteCursor, dwWriteBytes: DWORD;
var lplpvAudioPtr1: Pointer; var lpdwAudioBytes1: DWORD;
var lplpvAudioPtr2: Pointer; var lpdwAudioBytes2: DWORD;
dwFlags: DWORD) : HResult; stdcall;
function Play(dwReserved1,dwReserved2,dwFlags: DWORD) : HResult; stdcall;
function SetCurrentPosition(dwPosition: DWORD) : HResult; stdcall;
function SetFormat(lpcfxFormat: PWaveFormatEx) : HResult; stdcall;
function SetVolume(lVolume: integer) : HResult; stdcall;
function SetPan(lPan: integer) : HResult; stdcall;
function SetFrequency(dwFrequency: DWORD) : HResult; stdcall;
function Stop: HResult; stdcall;
function Unlock(lpvAudioPtr1: Pointer; dwAudioBytes1: DWORD;
lpvAudioPtr2: Pointer; dwAudioBytes2: DWORD) : HResult; stdcall;
function Restore: HResult; stdcall;
end;
//
// IDirectSoundBuffer8
//
IDirectSoundBuffer8 = interface (IDirectSoundBuffer)
['{6825a449-7524-4d82-920f-50e36ab3ab1e}']
// IDirectSoundBuffer8 methods
function SetFX(dwEffectsCount: DWORD; pDSFXDesc: PDSEffectDesc;
pdwResultCodes: PDWORD): HResult; stdcall;
function AcquireResources(dwFlags, dwEffectsCount: DWORD;
pdwResultCodes: PDWORD): HResult; stdcall;
function GetObjectInPath(const rguidObject: TGUID; dwIndex: DWORD;
const rguidInterface: TGUID; out ppObject): HResult; stdcall;
end;
//
// IDirectSound3DListener
//
IDirectSound3DListener = interface (IUnknown)
['{279AFA84-4981-11CE-A521-0020AF0BE560}']
// IDirectSound3DListener methods
function GetAllParameters(var lpListener: TDS3DListener) : HResult; stdcall;
function GetDistanceFactor(var lpflDistanceFactor: TD3DValue) : HResult; stdcall;
function GetDopplerFactor(var lpflDopplerFactor: TD3DValue) : HResult; stdcall;
function GetOrientation
(var lpvOrientFront, lpvOrientTop: TD3DVector) : HResult; stdcall;
function GetPosition(var lpvPosition: TD3DVector) : HResult; stdcall;
function GetRolloffFactor(var lpflRolloffFactor: TD3DValue) : HResult; stdcall;
function GetVelocity(var lpvVelocity: TD3DVector) : HResult; stdcall;
function SetAllParameters
(const lpcListener: TDS3DListener; dwApply: DWORD) : HResult; stdcall;
function SetDistanceFactor
(flDistanceFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
function SetDopplerFactor
(flDopplerFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
function SetOrientation(xFront, yFront, zFront, xTop, yTop, zTop: TD3DValue;
dwApply: DWORD) : HResult; stdcall;
function SetPosition(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
function SetRolloffFactor
(flRolloffFactor: TD3DValue; dwApply: DWORD) : HResult; stdcall;
function SetVelocity(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
function CommitDeferredSettings: HResult; stdcall;
end;
//
// IDirectSound3DListener8
//
IDirectSound3DListener8 = IDirectSound3DListener;
//
// IDirectSound3DBuffer
//
IDirectSound3DBuffer = interface (IUnknown)
['{279AFA86-4981-11CE-A521-0020AF0BE560}']
// IDirectSoundBuffer3D methods
function GetAllParameters(var lpDs3dBuffer: TDS3DBuffer) : HResult; stdcall;
function GetConeAngles
(var lpdwInsideConeAngle, lpdwOutsideConeAngle: DWORD) : HResult; stdcall;
function GetConeOrientation(var lpvOrientation: TD3DVector) : HResult; stdcall;
function GetConeOutsideVolume(var lplConeOutsideVolume: integer) : HResult; stdcall;
function GetMaxDistance(var lpflMaxDistance: TD3DValue) : HResult; stdcall;
function GetMinDistance(var lpflMinDistance: TD3DValue) : HResult; stdcall;
function GetMode(var lpdwMode: DWORD) : HResult; stdcall;
function GetPosition(var lpvPosition: TD3DVector) : HResult; stdcall;
function GetVelocity(var lpvVelocity: TD3DVector) : HResult; stdcall;
function SetAllParameters
(const lpcDs3dBuffer: TDS3DBuffer; dwApply: DWORD) : HResult; stdcall;
function SetConeAngles
(dwInsideConeAngle, dwOutsideConeAngle, dwApply: DWORD) : HResult; stdcall;
function SetConeOrientation(x, y, z: TD3DValue; dwApply: DWORD) : HResult; stdcall;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -