Ada计算机图形DirectX之XAPOFX

----------------------------------------
-- Microsoft DirectX Ada Binding Lib  --
-- File : XAPOFX.ads                  --
-- Translator:Dongfeng.Gu,2018/11/06  --
-- Mail: [email protected]                --
----------------------------------------

with win32;                  use win32;
with win32.rpcdce;
with win32.Objbase;          use win32.Objbase;


package XAPOFX is

   subtype UINT32 is win32.UINT;
   type LPIUNKNOWN is access all IUNKNOWN;
   type LPLPIUNKNOWN is access all LPIUNKNOWN;

   CLSID_FXEQ:constant win32.rpcdce.GUID:=(16#A90BC001#,16#E897#,16#E897#,(16#74#,16#39#,16#43#,16#55#,16#00#,16#00#,16#00#,16#00#));

   CLSID_FXMasteringLimiter:constant win32.rpcdce.GUID:=(16#A90BC001#,16#E897#,16#E897#,(16#74#,16#39#,16#43#,16#55#,16#00#,16#00#,16#00#,16#01#));

   CLSID_FXReverb:constant win32.rpcdce.GUID:=(16#A90BC001#,16#E897#,16#E897#,(16#74#,16#39#,16#43#,16#55#,16#00#,16#00#,16#00#,16#02#));

   CLSID_FXEcho:constant win32.rpcdce.GUID:=(16#A90BC001#,16#E897#,16#E897#,(16#74#,16#39#,16#43#,16#55#,16#00#,16#00#,16#00#,16#03#));

   FXEQ_MIN_FRAMERATE : constant := 22000;

   FXEQ_MAX_FRAMERATE : constant := 48000;

   FXEQ_MIN_FREQUENCY_CENTER : constant := 20.0;

   FXEQ_MAX_FREQUENCY_CENTER : constant := 20000.0;

   FXEQ_DEFAULT_FREQUENCY_CENTER_0 : constant := 100.0;   -- band 0;

   FXEQ_DEFAULT_FREQUENCY_CENTER_1 : constant := 800.0;   -- band 1;

   FXEQ_DEFAULT_FREQUENCY_CENTER_2 : constant := 2000.0;  -- band 2;

   FXEQ_DEFAULT_FREQUENCY_CENTER_3 : constant := 10000.0; -- band 3;

   FXEQ_MIN_GAIN : constant := 0.126; -- -18dB;

   FXEQ_MAX_GAIN : constant := 7.94;  -- +18dB;

   FXEQ_DEFAULT_GAIN : constant := 1.0;   -- 0dB change, all bands;

   FXEQ_MIN_BANDWIDTH : constant := 0.1;

   FXEQ_MAX_BANDWIDTH : constant := 2.0;

   FXEQ_DEFAULT_BANDWIDTH : constant := 1.0; -- all bands;

   FXMASTERINGLIMITER_MIN_RELEASE : constant := 1;

   FXMASTERINGLIMITER_MAX_RELEASE : constant := 20;

   FXMASTERINGLIMITER_DEFAULT_RELEASE : constant := 6;

   FXMASTERINGLIMITER_MIN_LOUDNESS : constant := 1;

   FXMASTERINGLIMITER_MAX_LOUDNESS : constant := 1800;

   FXMASTERINGLIMITER_DEFAULT_LOUDNESS : constant := 1000;

   FXREVERB_MIN_DIFFUSION : constant := 0.0;

   FXREVERB_MAX_DIFFUSION : constant := 1.0;

   FXREVERB_DEFAULT_DIFFUSION : constant := 0.9;

   FXREVERB_MIN_ROOMSIZE : constant := 0.0001;

   FXREVERB_MAX_ROOMSIZE : constant := 1.0;

   FXREVERB_DEFAULT_ROOMSIZE : constant := 0.6;

   FXECHO_MIN_WETDRYMIX : constant := 0.0;

   FXECHO_MAX_WETDRYMIX : constant := 1.0;

   FXECHO_DEFAULT_WETDRYMIX : constant := 0.5;

   FXECHO_MIN_FEEDBACK : constant := 0.0;

   FXECHO_MAX_FEEDBACK : constant := 1.0;

   FXECHO_DEFAULT_FEEDBACK : constant := 0.5;

   FXECHO_MIN_DELAY : constant := 1.0;

   FXECHO_MAX_DELAY : constant := 2000.0;

   FXECHO_DEFAULT_DELAY : constant := 500.0;

   type FXEQ_PARAMETERS is record
      FrequencyCenter0: float;
      Gain0: float;
      Bandwidth0: float;
      FrequencyCenter1: float;
      Gain1: float;
      Bandwidth1: float;
      FrequencyCenter2: float;
      Gain2: float;
      Bandwidth2: float;
      FrequencyCenter3: float;
      Gain3: float;
      Bandwidth3: float;
   end record;

   type LPFXEQ_PARAMETERS is access all FXEQ_PARAMETERS;
   type LPCFXEQ_PARAMETERS is access constant FXEQ_PARAMETERS;


   type FXMASTERINGLIMITER_PARAMETERS is record
      Release: UINT32;
      Loudness: UINT32;
   end record;

   type LPFXMASTERINGLIMITER_PARAMETERS is access all FXMASTERINGLIMITER_PARAMETERS;
   type LPCFXMASTERINGLIMITER_PARAMETERS is access constant FXMASTERINGLIMITER_PARAMETERS;

   type FXREVERB_PARAMETERS is record
      Diffusion: float;
      RoomSize: float;
   end record;

   type LPFXREVERB_PARAMETERS is access all FXREVERB_PARAMETERS;
   type LPCFXREVERB_PARAMETERS is access constant FXREVERB_PARAMETERS;


   type FXECHO_PARAMETERS is record
      WetDryMix: float;
      Feedback: float;
      Delayi: float;
   end record;

   type LPFXECHO_PARAMETERS is access all FXECHO_PARAMETERS;
   type LPCFXECHO_PARAMETERS is access constant FXECHO_PARAMETERS;



   function CreateFX(clsid:REFCLSID;pEffect:LPLPIUnknown) return HRESULT with Import,Convention=>stdcall,external_name=>"CreateFX";




end XAPOFX;

猜你喜欢

转载自blog.csdn.net/adacore/article/details/83780578