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

📄 directsound.pas

📁 絮语2007视频聊天软件源程序.仅供参考
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  {$EXTERNALSYM IID_IDirectSoundCapture}


  //
  // IDirectSoundCaptureBuffer
  //

  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundCaptureBuffer);'}
  {$EXTERNALSYM IDirectSoundCaptureBuffer}
  IDirectSoundCaptureBuffer = interface(IUnknown)
    ['{b0210782-89cd-11d0-af08-00a0c925cd16}']
    // IDirectSoundCaptureBuffer methods
    function GetCaps(var pDSCBCaps: TDSCBCaps): HResult; stdcall;
    function GetCurrentPosition(pdwCapturePosition, pdwReadPosition: PDWORD): HResult; stdcall;
    function GetFormat(pwfxFormat: PWaveFormatEx; dwSizeAllocated: DWORD; pdwSizeWritten: PDWORD): HResult; stdcall;
    function GetStatus(pdwStatus: PDWORD): HResult; stdcall;
    function Initialize(pDirectSoundCapture: IDirectSoundCapture; const pcDSCBufferDesc: TDSCBufferDesc): HResult; stdcall;
    function Lock(dwOffset, dwBytes: DWORD; out ppvAudioPtr1: Pointer; out pdwAudioBytes1: DWORD; out ppvAudioPtr2: Pointer; out pdwAudioBytes2: DWORD; dwFlags: DWORD): HResult; stdcall;
    function Start(dwFlags: DWORD): HResult; stdcall;
    function Stop: HResult; stdcall;
    function Unlock(pvAudioPtr1: Pointer; dwAudioBytes1: DWORD; pvAudioPtr2: Pointer; dwAudioBytes2: DWORD): HResult; stdcall;
  end;

  IID_IDirectSoundCaptureBuffer = IDirectSoundCaptureBuffer;
  {$EXTERNALSYM IID_IDirectSoundCaptureBuffer}


{$IFDEF DIRECTSOUND_VERSION_8} // #if DIRECTSOUND_VERSION >= 0x0800

  //
  // IDirectSoundCaptureBuffer8
  //

  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundCaptureBuffer8);'}
  {$EXTERNALSYM IDirectSoundCaptureBuffer8}
  IDirectSoundCaptureBuffer8 = interface(IDirectSoundCaptureBuffer)
    ['{00990df4-0dbb-4872-833e-6d303e80aeb6}']
    // IDirectSoundCaptureBuffer8 methods
    function GetObjectInPath(const rguidObject: TGUID; dwIndex: DWORD; const rguidInterface: TGUID; out ppObject{IUnknown}): HResult; stdcall;
    function GetFXStatus(dwFXCount: DWORD; pdwFXStatus: PDWORD): HResult; stdcall;
  end;

  IID_IDirectSoundCaptureBuffer8 = IDirectSoundCaptureBuffer8;
  {$EXTERNALSYM IID_IDirectSoundCaptureBuffer8}

{$ENDIF} // DIRECTSOUND_VERSION >= 0x0800

  //
  // IDirectSoundNotify
  //

  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundNotify);'}
  {$EXTERNALSYM IDirectSoundNotify}
  IDirectSoundNotify = interface(IUnknown)
    ['{b0210783-89cd-11d0-af08-00a0c925cd16}']
    // IDirectSoundNotify methods
    function SetNotificationPositions(dwPositionNotifies: DWORD; pcPositionNotifies: PDSBPositionNotify): HResult; stdcall;
  end;

  IID_IDirectSoundNotify = IDirectSoundNotify;
  {$EXTERNALSYM IID_IDirectSoundNotify}


  //
  // IKsPropertySet
  //

const
  KSPROPERTY_SUPPORT_GET  = $00000001;
  {$EXTERNALSYM KSPROPERTY_SUPPORT_GET}
  KSPROPERTY_SUPPORT_SET  = $00000002;
  {$EXTERNALSYM KSPROPERTY_SUPPORT_SET}

type
  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IKsPropertySet);'}
  {$EXTERNALSYM IKsPropertySet}
  IKsPropertySet = interface(IUnknown)
    ['{31efac30-515c-11d0-a9aa-00aa0061be93}']
    // IKsPropertySet methods
    function Get(const rguidPropSet: TGUID; ulId: ULONG; pInstanceData: Pointer; ulInstanceLength: ULONG; pPropertyData: Pointer; ulDataLength: ULONG; out pulBytesReturned: ULONG): HResult; stdcall;
    function _Set(const rguidPropSet: TGUID; ulId: ULONG; pInstanceData: Pointer; ulInstanceLength: ULONG; pPropertyData: Pointer; ulDataLength: ULONG): HResult; stdcall;
    function QuerySupport(rguidPropSet: TGUID; ulId: ULONG; out pulTypeSupport: ULONG): HResult; stdcall;
  end;

  IID_IKsPropertySet = IKsPropertySet;
  {$EXTERNALSYM IID_IKsPropertySet}

{$IFDEF DIRECTSOUND_VERSION_8} // #if DIRECTSOUND_VERSION >= 0x0800

  //
  // IDirectSoundFXGargle
  //

  PDSFXGargle = ^TDSFXGargle;
  _DSFXGargle = packed record
    dwRateHz: DWORD;               // Rate of modulation in hz
    dwWaveShape: DWORD;            // DSFXGARGLE_WAVE_xxx
  end;
  {$EXTERNALSYM _DSFXGargle}
  DSFXGargle = _DSFXGargle;
  {$EXTERNALSYM DSFXGargle}
  TDSFXGargle = _DSFXGargle;

const
  DSFXGARGLE_WAVE_TRIANGLE        = 0;
  {$EXTERNALSYM DSFXGARGLE_WAVE_TRIANGLE}
  DSFXGARGLE_WAVE_SQUARE          = 1;
  {$EXTERNALSYM DSFXGARGLE_WAVE_SQUARE}

  DSFXGARGLE_RATEHZ_MIN           = 1;
  {$EXTERNALSYM DSFXGARGLE_RATEHZ_MIN}
  DSFXGARGLE_RATEHZ_MAX           = 1000;
  {$EXTERNALSYM DSFXGARGLE_RATEHZ_MAX}

type
  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundFXGargle);'}
  {$EXTERNALSYM IDirectSoundFXGargle}
  IDirectSoundFXGargle = interface(IUnknown)
    ['{d616f352-d622-11ce-aac5-0020af0b99a3}']
    // IDirectSoundFXGargle methods
    function SetAllParameters(const pcDsFxGargle: TDSFXGargle): HResult; stdcall;
    function GetAllParameters(out pDsFxGargle: TDSFXGargle): HResult; stdcall;
  end;

  IID_IDirectSoundFXGargle = IDirectSoundFXGargle;
  {$EXTERNALSYM IID_IDirectSoundFXGargle}


  //
  // IDirectSoundFXChorus
  //

  PDSFXChorus = ^TDSFXChorus;
  _DSFXChorus = packed record
    fWetDryMix: Single;
    fDepth: Single;
    fFeedback: Single;
    fFrequency: Single;
    lWaveform: Longint;          // LFO shape; DSFXCHORUS_WAVE_xxx
    fDelay: Single;
    lPhase: Longint;
  end;
  {$EXTERNALSYM _DSFXChorus}
  DSFXChorus = _DSFXChorus;
  {$EXTERNALSYM DSFXChorus}
  TDSFXChorus = _DSFXChorus;

const
  DSFXCHORUS_WAVE_TRIANGLE        = 0;
  {$EXTERNALSYM DSFXCHORUS_WAVE_TRIANGLE}
  DSFXCHORUS_WAVE_SIN             = 1;
  {$EXTERNALSYM DSFXCHORUS_WAVE_SIN}

  DSFXCHORUS_WETDRYMIX_MIN        = 0.0;
  {$EXTERNALSYM DSFXCHORUS_WETDRYMIX_MIN}
  DSFXCHORUS_WETDRYMIX_MAX        = 100.0;
  {$EXTERNALSYM DSFXCHORUS_WETDRYMIX_MAX}
  DSFXCHORUS_DEPTH_MIN            = 0.0;
  {$EXTERNALSYM DSFXCHORUS_DEPTH_MIN}
  DSFXCHORUS_DEPTH_MAX            = 100.0;
  {$EXTERNALSYM DSFXCHORUS_DEPTH_MAX}
  DSFXCHORUS_FEEDBACK_MIN         = -99.0;
  {$EXTERNALSYM DSFXCHORUS_FEEDBACK_MIN}
  DSFXCHORUS_FEEDBACK_MAX         = 99.0;
  {$EXTERNALSYM DSFXCHORUS_FEEDBACK_MAX}
  DSFXCHORUS_FREQUENCY_MIN        = 0.0;
  {$EXTERNALSYM DSFXCHORUS_FREQUENCY_MIN}
  DSFXCHORUS_FREQUENCY_MAX        = 10.0;
  {$EXTERNALSYM DSFXCHORUS_FREQUENCY_MAX}
  DSFXCHORUS_DELAY_MIN            = 0.0;
  {$EXTERNALSYM DSFXCHORUS_DELAY_MIN}
  DSFXCHORUS_DELAY_MAX            = 20.0;
  {$EXTERNALSYM DSFXCHORUS_DELAY_MAX}
  DSFXCHORUS_PHASE_MIN            = 0;
  {$EXTERNALSYM DSFXCHORUS_PHASE_MIN}
  DSFXCHORUS_PHASE_MAX            = 4;
  {$EXTERNALSYM DSFXCHORUS_PHASE_MAX}

  DSFXCHORUS_PHASE_NEG_180        = 0;
  {$EXTERNALSYM DSFXCHORUS_PHASE_NEG_180}
  DSFXCHORUS_PHASE_NEG_90         = 1;
  {$EXTERNALSYM DSFXCHORUS_PHASE_NEG_90}
  DSFXCHORUS_PHASE_ZERO           = 2;
  {$EXTERNALSYM DSFXCHORUS_PHASE_ZERO}
  DSFXCHORUS_PHASE_90             = 3;
  {$EXTERNALSYM DSFXCHORUS_PHASE_90}
  DSFXCHORUS_PHASE_180            = 4;
  {$EXTERNALSYM DSFXCHORUS_PHASE_180}

type
  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundFXChorus);'}
  {$EXTERNALSYM IDirectSoundFXChorus}
  IDirectSoundFXChorus = interface(IUnknown)
    ['{880842e3-145f-43e6-a934-a71806e50547}']
    // IDirectSoundFXChorus methods
    function SetAllParameters(const pcDsFxChorus: TDSFXChorus): HResult; stdcall;
    function GetAllParameters(out pDsFxChorus: TDSFXChorus): HResult; stdcall;
  end;

  IID_IDirectSoundFXChorus = IDirectSoundFXChorus;
  {$EXTERNALSYM IID_IDirectSoundFXChorus}


  //
  // IDirectSoundFXFlanger
  //

  PDSFXFlanger = ^TDSFXFlanger;
  _DSFXFlanger = packed record
    fWetDryMix: Single;
    fDepth: Single;
    fFeedback: Single;
    fFrequency: Single;
    lWaveform: Longint;
    fDelay: Single;
    lPhase: Longint;
  end;
  {$EXTERNALSYM _DSFXFlanger}
  DSFXFlanger = _DSFXFlanger;
  {$EXTERNALSYM DSFXFlanger}
  TDSFXFlanger = _DSFXFlanger;

const
  DSFXFLANGER_WAVE_TRIANGLE       = 0;
  {$EXTERNALSYM DSFXFLANGER_WAVE_TRIANGLE}
  DSFXFLANGER_WAVE_SIN            = 1;
  {$EXTERNALSYM DSFXFLANGER_WAVE_SIN}

  DSFXFLANGER_WETDRYMIX_MIN       = 0.0;
  {$EXTERNALSYM DSFXFLANGER_WETDRYMIX_MIN}
  DSFXFLANGER_WETDRYMIX_MAX       = 100.0;
  {$EXTERNALSYM DSFXFLANGER_WETDRYMIX_MAX}
  DSFXFLANGER_FREQUENCY_MIN       = 0.0;
  {$EXTERNALSYM DSFXFLANGER_FREQUENCY_MIN}
  DSFXFLANGER_FREQUENCY_MAX       = 10.0;
  {$EXTERNALSYM DSFXFLANGER_FREQUENCY_MAX}
  DSFXFLANGER_DEPTH_MIN           = 0.0;
  {$EXTERNALSYM DSFXFLANGER_DEPTH_MIN}
  DSFXFLANGER_DEPTH_MAX           = 100.0;
  {$EXTERNALSYM DSFXFLANGER_DEPTH_MAX}
  DSFXFLANGER_PHASE_MIN           = 0;
  {$EXTERNALSYM DSFXFLANGER_PHASE_MIN}
  DSFXFLANGER_PHASE_MAX           = 4;
  {$EXTERNALSYM DSFXFLANGER_PHASE_MAX}
  DSFXFLANGER_FEEDBACK_MIN        = -99.0;
  {$EXTERNALSYM DSFXFLANGER_FEEDBACK_MIN}
  DSFXFLANGER_FEEDBACK_MAX        = 99.0;
  {$EXTERNALSYM DSFXFLANGER_FEEDBACK_MAX}
  DSFXFLANGER_DELAY_MIN           = 0.0;
  {$EXTERNALSYM DSFXFLANGER_DELAY_MIN}
  DSFXFLANGER_DELAY_MAX           = 4.0;
  {$EXTERNALSYM DSFXFLANGER_DELAY_MAX}

  DSFXFLANGER_PHASE_NEG_180       = 0;
  {$EXTERNALSYM DSFXFLANGER_PHASE_NEG_180}
  DSFXFLANGER_PHASE_NEG_90        = 1;
  {$EXTERNALSYM DSFXFLANGER_PHASE_NEG_90}
  DSFXFLANGER_PHASE_ZERO          = 2;
  {$EXTERNALSYM DSFXFLANGER_PHASE_ZERO}
  DSFXFLANGER_PHASE_90            = 3;
  {$EXTERNALSYM DSFXFLANGER_PHASE_90}
  DSFXFLANGER_PHASE_180           = 4;
  {$EXTERNALSYM DSFXFLANGER_PHASE_180}

type
  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundFXFlanger);'}
  {$EXTERNALSYM IDirectSoundFXFlanger}
  IDirectSoundFXFlanger = interface(IUnknown)
    ['{903e9878-2c92-4072-9b2c-ea68f5396783}']
    // IDirectSoundFXFlanger methods
    function SetAllParameters(const pcDsFxFlanger: TDSFXFlanger): HResult; stdcall;
    function GetAllParameters(out pDsFxFlanger: TDSFXFlanger): HResult; stdcall;
  end;

  IID_IDirectSoundFXFlanger = IDirectSoundFXFlanger;
  {$EXTERNALSYM IID_IDirectSoundFXFlanger}


  //
  // IDirectSoundFXEcho
  //

  PDSFXEcho = ^TDSFXEcho;
  _DSFXEcho = packed record
    fWetDryMix: Single;
    fFeedback: Single;
    fLeftDelay: Single;
    fRightDelay: Single;
    lPanDelay: Longint;
  end;
  {$EXTERNALSYM _DSFXEcho}
  DSFXEcho = _DSFXEcho;
  {$EXTERNALSYM DSFXEcho}
  TDSFXEcho = _DSFXEcho;

const
  DSFXECHO_WETDRYMIX_MIN      = 0.0;
  {$EXTERNALSYM DSFXECHO_WETDRYMIX_MIN}
  DSFXECHO_WETDRYMIX_MAX      = 100.0;
  {$EXTERNALSYM DSFXECHO_WETDRYMIX_MAX}
  DSFXECHO_FEEDBACK_MIN       = 0.0;
  {$EXTERNALSYM DSFXECHO_FEEDBACK_MIN}
  DSFXECHO_FEEDBACK_MAX       = 100.0;
  {$EXTERNALSYM DSFXECHO_FEEDBACK_MAX}
  DSFXECHO_LEFTDELAY_MIN      = 1.0;
  {$EXTERNALSYM DSFXECHO_LEFTDELAY_MIN}
  DSFXECHO_LEFTDELAY_MAX      = 2000.0;
  {$EXTERNALSYM DSFXECHO_LEFTDELAY_MAX}
  DSFXECHO_RIGHTDELAY_MIN     = 1.0;
  {$EXTERNALSYM DSFXECHO_RIGHTDELAY_MIN}
  DSFXECHO_RIGHTDELAY_MAX     = 2000.0;
  {$EXTERNALSYM DSFXECHO_RIGHTDELAY_MAX}
  DSFXECHO_PANDELAY_MIN       = 0;
  {$EXTERNALSYM DSFXECHO_PANDELAY_MIN}
  DSFXECHO_PANDELAY_MAX       = 1;
  {$EXTERNALSYM DSFXECHO_PANDELAY_MAX}

type
  {$HPPEMIT 'DECLARE_DINTERFACE_TYPE(IDirectSoundFXEcho);'}
  {$EXTERNALSYM IDirectSoundFXEcho}
  IDirectSoundFXEcho = interface(IUnknown)
    ['{8bd28edf-50db-4e92-a2bd-445488d1ed42}']
    // IDirectSoundFXEcho methods
    function SetAllParameters(const pcDsFxEcho: TDSFXEcho): HResult; stdcall;
    function GetAllParameters(out pDsFxEcho: TDSFXEcho): HResult; stdcall;
  end;

  IID_IDirectSoundFXEcho = IDirectSoundFXEcho;
  {$EXTERNALSYM IID_IDirectSoundFXEcho}


  //
  // IDirectSoundFXDistortion
  //

  PDSFXDistortion = ^TDSFXDistortion;
  _DSFXDistortion = packed record
    fGain: Single;
    fEdge: Single;

⌨️ 快捷键说明

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