⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directsound.pas

📁 delphi编的不错的贪吃蛇
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  DSFXECHO_PANDELAY_MAX                       = 1;

  DSFXDISTORTION_GAIN_MIN                     = -60.0;
  DSFXDISTORTION_GAIN_MAX                     = 0.0;
  DSFXDISTORTION_EDGE_MIN                     = 0.0;
  DSFXDISTORTION_EDGE_MAX                     = 100.0;
  DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN    = 100.0;
  DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX    = 8000.0;
  DSFXDISTORTION_POSTEQBANDWIDTH_MIN          = 100.0;
  DSFXDISTORTION_POSTEQBANDWIDTH_MAX          = 8000.0;
  DSFXDISTORTION_PRELOWPASSCUTOFF_MIN         = 100.0;
  DSFXDISTORTION_PRELOWPASSCUTOFF_MAX         = 8000.0;

  DSFXCOMPRESSOR_GAIN_MIN                     = -60.0;
  DSFXCOMPRESSOR_GAIN_MAX                     = 60.0;
  DSFXCOMPRESSOR_ATTACK_MIN                   = 0.01;
  DSFXCOMPRESSOR_ATTACK_MAX                   = 500.0;
  DSFXCOMPRESSOR_RELEASE_MIN                  = 50.0;
  DSFXCOMPRESSOR_RELEASE_MAX                  = 3000.0;
  DSFXCOMPRESSOR_THRESHOLD_MIN                = -60.0;
  DSFXCOMPRESSOR_THRESHOLD_MAX                = 0.0;
  DSFXCOMPRESSOR_RATIO_MIN                    = 1.0;
  DSFXCOMPRESSOR_RATIO_MAX                    = 100.0;
  DSFXCOMPRESSOR_PREDELAY_MIN                 = 0.0;
  DSFXCOMPRESSOR_PREDELAY_MAX                 = 4.0;

  DSFXPARAMEQ_CENTER_MIN                      = 80.0;
  DSFXPARAMEQ_CENTER_MAX                      = 16000.0;
  DSFXPARAMEQ_BANDWIDTH_MIN                   = 1.0;
  DSFXPARAMEQ_BANDWIDTH_MAX                   = 36.0;
  DSFXPARAMEQ_GAIN_MIN                        = -15.0;
  DSFXPARAMEQ_GAIN_MAX                        = 15.0;

  DSFX_I3DL2REVERB_ROOM_MIN                   = (-10000);
  DSFX_I3DL2REVERB_ROOM_MAX                   = 0;
  DSFX_I3DL2REVERB_ROOM_DEFAULT               = (-1000);

  DSFX_I3DL2REVERB_ROOMHF_MIN                 = (-10000);
  DSFX_I3DL2REVERB_ROOMHF_MAX                 = 0;
  DSFX_I3DL2REVERB_ROOMHF_DEFAULT             = (-100);

  DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN      = 0.0;
  DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX      = 10.0;
  DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT  = 0.0;

  DSFX_I3DL2REVERB_DECAYTIME_MIN              = 0.1;
  DSFX_I3DL2REVERB_DECAYTIME_MAX              = 20.0;
  DSFX_I3DL2REVERB_DECAYTIME_DEFAULT          = 1.49;

  DSFX_I3DL2REVERB_DECAYHFRATIO_MIN           = 0.1;
  DSFX_I3DL2REVERB_DECAYHFRATIO_MAX           = 2.0;
  DSFX_I3DL2REVERB_DECAYHFRATIO_DEFAULT       = 0.83;

  DSFX_I3DL2REVERB_REFLECTIONS_MIN            = (-10000);
  DSFX_I3DL2REVERB_REFLECTIONS_MAX            = 1000;
  DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT        = (-2602);

  DSFX_I3DL2REVERB_REFLECTIONSDELAY_MIN       = 0.0;
  DSFX_I3DL2REVERB_REFLECTIONSDELAY_MAX       = 0.3;
  DSFX_I3DL2REVERB_REFLECTIONSDELAY_DEFAULT   = 0.007;

  DSFX_I3DL2REVERB_REVERB_MIN                 = (-10000);
  DSFX_I3DL2REVERB_REVERB_MAX                 = 2000;
  DSFX_I3DL2REVERB_REVERB_DEFAULT             = (200);

  DSFX_I3DL2REVERB_REVERBDELAY_MIN            = 0.0;
  DSFX_I3DL2REVERB_REVERBDELAY_MAX            = 0.1;
  DSFX_I3DL2REVERB_REVERBDELAY_DEFAULT        = 0.011;
                                                    
  DSFX_I3DL2REVERB_DIFFUSION_MIN              = 0.0;
  DSFX_I3DL2REVERB_DIFFUSION_MAX              = 100.0;
  DSFX_I3DL2REVERB_DIFFUSION_DEFAULT          = 100.0;

  DSFX_I3DL2REVERB_DENSITY_MIN                = 0.0;
  DSFX_I3DL2REVERB_DENSITY_MAX                = 100.0;
  DSFX_I3DL2REVERB_DENSITY_DEFAULT            = 100.0;

  DSFX_I3DL2REVERB_HFREFERENCE_MIN            = 20.0;
  DSFX_I3DL2REVERB_HFREFERENCE_MAX            = 20000.0;
  DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT        = 5000.0;

  DSFX_I3DL2REVERB_QUALITY_MIN                = 0;
  DSFX_I3DL2REVERB_QUALITY_MAX                = 3;
  DSFX_I3DL2REVERB_QUALITY_DEFAULT            = 2;

  DSFX_WAVESREVERB_INGAIN_MIN                 = -96.0;
  DSFX_WAVESREVERB_INGAIN_MAX                 = 0.0;
  DSFX_WAVESREVERB_INGAIN_DEFAULT             = 0.0;
  DSFX_WAVESREVERB_REVERBMIX_MIN              = -96.0;
  DSFX_WAVESREVERB_REVERBMIX_MAX              = 0.0;
  DSFX_WAVESREVERB_REVERBMIX_DEFAULT          = 0.0;
  DSFX_WAVESREVERB_REVERBTIME_MIN             = 0.001;
  DSFX_WAVESREVERB_REVERBTIME_MAX             = 3000.0;
  DSFX_WAVESREVERB_REVERBTIME_DEFAULT         = 1000.0;
  DSFX_WAVESREVERB_HIGHFREQRTRATIO_MIN        = 0.001;
  DSFX_WAVESREVERB_HIGHFREQRTRATIO_MAX        = 0.999;
  DSFX_WAVESREVERB_HIGHFREQRTRATIO_DEFAULT    = 0.001;

//
// GUID's for all the objects
//
type
  IID_IDirectSound = IDirectSound;
  IID_IDirectSoundBuffer = IDirectSoundBuffer;
  IID_IDirectSound3DListener = IDirectSound3DListener;
  IID_IDirectSound3DBuffer = IDirectSound3DBuffer;
  IID_IDirectSoundCapture = IDirectSoundCapture;
  IID_IDirectSoundCaptureBuffer = IDirectSoundCaptureBuffer;
  IID_IDirectSoundNotify = IDirectSoundNotify;
  IID_IKsPropertySet = IKsPropertySet;

  // DirectSound 8.0
  IID_IDirectSound8 = IDirectSound8;
  IID_IDirectSoundBuffer8 = IDirectSoundBuffer8;
  IID_IDirectSound3DListener8 = IDirectSound3DListener8;
  IID_IDirectSound3DBuffer8 = IDirectSound3DBuffer8;
  IID_IDirectSoundCapture8 = IDirectSoundCapture8;
  IID_IDirectSoundCaptureBuffer8 = IDirectSoundCaptureBuffer8;
  IID_IDirectSoundNotify8 = IDirectSoundNotify8;
  IID_IDirectSoundCaptureFXAec8 = IDirectSoundCaptureFXAec8;
  IID_IDirectSoundCaptureFXNoiseSuppress8 = IDirectSoundCaptureFXNoiseSuppress8;
  IID_IDirectSoundFullDuplex8 = IDirectSoundFullDuplex8;
  IID_IDirectSoundFXGargle8 = IDirectSoundFXGargle8;
  IID_IDirectSoundFXChorus8 = IDirectSoundFXChorus8;
  IID_IDirectSoundFXFlanger8 = IDirectSoundFXFlanger8;
  IID_IDirectSoundFXEcho8 = IDirectSoundFXEcho8;
  IID_IDirectSoundFXDistortion8 = IDirectSoundFXDistortion8;
  IID_IDirectSoundFXCompressor8 = IDirectSoundFXCompressor8;
  IID_IDirectSoundFXParamEq8 = IDirectSoundFXParamEq8;
  IID_IDirectSoundFXWavesReverb8 = IDirectSoundFXWavesReverb8;
  IID_IDirectSoundFXI3DL2Reverb8 = IDirectSoundFXI3DL2Reverb8;

const
  CLSID_DirectSound            : TGUID = '{47D4D946-62E8-11CF-93BC-444553540000}';
  CLSID_DirectSound8           : TGUID = '{3901CC3F-84B5-4FA4-BA35-AA8172B8A09B}';
  CLSID_DirectSoundCapture     : TGUID = '{B0210780-89CD-11D0-AF08-00A0C925CD16}';
  CLSID_DirectSoundCapture8    : TGUID = '{E4BCAC13-7F99-4908-9A8E-74E3BF24B6E1}';
  CLSID_DirectSoundFullDuplex  : TGUID = '{FEA4300C-7959-4147-B26A-2377B9E7A91D}';
  DSDEVID_DefaultPlayback      : TGUID = '{DEF00000-9C6D-47ED-AAF1-4DDA8F2B5C03}';
  DSDEVID_DefaultCapture       : TGUID = '{DEF00001-9C6D-47ED-AAF1-4DDA8F2B5C03}';
  DSDEVID_DefaultVoicePlayback : TGUID = '{DEF00002-9C6D-47ED-AAF1-4DDA8F2B5C03}';
  DSDEVID_DefaultVoiceCapture  : TGUID = '{DEF00003-9C6D-47ED-AAF1-4DDA8F2B5C03}';

//
// Creation Routines
//
var
    DirectSoundCreate : function ( lpGuid: PGUID; out ppDS: IDirectSound;
        pUnkOuter: IUnknown) : HResult; stdcall;

    DirectSoundEnumerateW : function (lpDSEnumCallback: TDSEnumCallbackW;
        lpContext: Pointer) : HResult; stdcall;
    DirectSoundEnumerateA : function (lpDSEnumCallback: TDSEnumCallbackA;
        lpContext: Pointer) : HResult; stdcall;
    DirectSoundEnumerate : function (lpDSEnumCallback: TDSEnumCallback;
        lpContext: Pointer) : HResult; stdcall;

    DirectSoundCaptureCreate : function (lpGUID: PGUID;
        out lplpDSC: IDirectSoundCapture;
        pUnkOuter: IUnknown) : HResult; stdcall;

    DirectSoundCaptureEnumerateW : function (lpDSEnumCallback: TDSEnumCallbackW;
        lpContext: Pointer) : HResult; stdcall;
    DirectSoundCaptureEnumerateA : function (lpDSEnumCallback: TDSEnumCallbackA;
        lpContext: Pointer) : HResult; stdcall;
    DirectSoundCaptureEnumerate : function(lpDSEnumCallback: TDSEnumCallback;
        lpContext: Pointer) : HResult; stdcall;

// DirectX 8.0
    DirectSoundCreate8 : function( pcGuidDevice: PGUID; out ppDS8: IDirectSound8;
        pUnkOuter: IUnknown) : HResult; stdcall;
    DirectSoundCaptureCreate8 : function( pcGuidDevice: PGUID;
        out ppDSC8: IDirectSoundCapture8;
        pUnkOuter: IUnknown) : HResult; stdcall;
    DirectSoundFullDuplexCreate8 : function (pcGuidCaptureDevice, pcGuidRenderDevice: PGUID;
        const pcDSCBufferDesc: TDSCBufferDesc; const pcDSBufferDesc: TDSBufferDesc;
        hWnd: hWnd; dwLevel: DWORD;
        out ppDSFD: IDirectSoundFullDuplex8;
        out ppDSCBuffer8: IDirectSoundCaptureBuffer8;
        out ppDSBuffer8: IDirectSoundBuffer8; pUnkOuter: IUnknown): HResult; stdcall;
    GetDeviceID: function( pGuidSrc, pGuidDest: PGUID): HResult; stdcall;

//
// Return Values
//
const
  FLT_MIN = 1.175494351E-38;
  FLT_MAX = 3.402823466E+38;

  _FACDS = $878;
  MAKE_DSHRESULT_ = HResult($88780000);

// The function completed successfully
  DS_OK                          = S_OK;

// The call succeeded, but we had to substitute the 3D algorithm
  DS_NO_VIRTUALIZATION           = MAKE_DSHRESULT_ + 10;

// The call succeeded, but not all of the optional effects were obtained.
  DS_INCOMPLETE                  = MAKE_DSHRESULT_ + 20;

// The call failed because resources (such as a priority level)
// were already being used by another caller
  DSERR_ALLOCATED                 = MAKE_DSHRESULT_ + 10;

// The control (vol, pan, etc.) requested by the caller is not available
  DSERR_CONTROLUNAVAIL            = MAKE_DSHRESULT_ + 30;

// An invalid parameter was passed to the returning function
  DSERR_INVALIDPARAM              = E_INVALIDARG;

// This call is not valid for the current state of this object
  DSERR_INVALIDCALL               = MAKE_DSHRESULT_ + 50;

// An undetermined error occurred inside the DirectSound subsystem
  DSERR_GENERIC                   = E_FAIL;

// The caller does not have the priority level required for the function to
// succeed
  DSERR_PRIOLEVELNEEDED           = MAKE_DSHRESULT_ + 70;

// Not enough free memory is available to complete the operation
  DSERR_OUTOFMEMORY               = E_OUTOFMEMORY;

// The specified WAVE format is not supported
  DSERR_BADFORMAT                 = MAKE_DSHRESULT_ + 100;

// The function called is not supported at this time
  DSERR_UNSUPPORTED               = E_NOTIMPL;

// No sound driver is available for use
  DSERR_NODRIVER                  = MAKE_DSHRESULT_ + 120;

// This object is already initialized
  DSERR_ALREADYINITIALIZED        = MAKE_DSHRESULT_ + 130;

// This object does not support aggregation
  DSERR_NOAGGREGATION             = CLASS_E_NOAGGREGATION;

// The buffer memory has been lost, and must be restored
  DSERR_BUFFERLOST                = MAKE_DSHRESULT_ + 150;

// Another app has a higher priority level, preventing this call from
// succeeding
  DSERR_OTHERAPPHASPRIO           = MAKE_DSHRESULT_ + 160;

// This object has not been initialized
  DSERR_UNINITIALIZED             = MAKE_DSHRESULT_ + 170;

// The requested COM interface is not available
  DSERR_NOINTERFACE               = E_NOINTERFACE;

// Access is denied
  DSERR_ACCESSDENIED              = E_ACCESSDENIED;

// Tried to create a DSBCAPS_CTRLFX buffer shorter than DSBSIZE_FX_MIN milliseconds
  DSERR_BUFFERTOOSMALL            = MAKE_DSHRESULT_ + 180;

// Attempt to use DirectSound 8 functionality on an older DirectSound object
  DSERR_DS8_REQUIRED              = MAKE_DSHRESULT_ + 190;

// A circular loop of send effects was detected
  DSERR_SENDLOOP                  = MAKE_DSHRESULT_ + 200;

// The GUID specified in an audiopath file does not match a valid MIXIN buffer
  DSERR_BADSENDBUFFERGUID         = MAKE_DSHRESULT_ + 210;

// The object requested was not found (numerically equal to DMUS_E_NOT_FOUND)
  DSERR_OBJECTNOTFOUND            = MAKE_DSHRESULT_ + 4449;

// The effects requested could not be found on the system, or they were found
// but in the wrong order, or in the wrong hardware/software locations.
  DSERR_FXUNAVAILABLE             = MAKE_DSHRESULT_ + 220;

//
// Flags
//

  DSCAPS_PRIMARYMONO            = $00000001;
  DSCAPS_PRIMARYSTEREO          = $00000002;
  DSCAPS_PRIMARY8BIT            = $00000004;
  DSCAPS_PRIMARY16BIT           = $00000008;
  DSCAPS_CONTINUOUSRATE         = $00000010;
  DSCAPS_EMULDRIVER             = $00000020;
  DSCAPS_CERTIFIED              = $00000040;
  DSCAPS_SECONDARYMONO          = $00000100;
  DSCAPS_SECONDARYSTEREO        = $00000200;
  DSCAPS_SECONDARY8BIT          = $00000400;
  DSCAPS_SECONDARY16BIT         = $00000800;

  DSSCL_NORMAL                  = $00000001;
  DSSCL_PRIORITY                = $00000002;
  DSSCL_EXCLUSIVE               = $00000003;
  DSSCL_WRITEPRIMARY            = $00000004;

{IFDEF DX81}
  DSSPEAKER_DIRECTOUT           = $00000000;
{ENDIF}
  DSSPEAKER_HEADPHONE           = $00000001;
  DSSPEAKER_MONO                = $00000002;
  DSSPEAKER_QUAD                = $00000003;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -