----------------------------------------
-- Microsoft DirectX Ada Binding Lib --
-- File : XAPOFX.ads --
-- Translator:Dongfeng.Gu,2018/11/06 --
-- Mail: 515639@qq.com --
----------------------------------------
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;