📄 eax.pas
字号:
{********************************************************************}
{* }
{* EAX.H - DirectSound3D Environmental Audio Extensions version 2.0 }
{* Updated July 8, 1999 }
{* }
{********************************************************************}
{********************************************************************}
{ }
{ Borland Delphi Runtime Library }
{ Copyright (c) 1995,2001 Borland International }
{ Created by Project JEDI }
{ }
{ The original Pascal code is: Eax.pas }
{ The initial developer of the Pascal code is Amresh Ramachandran }
{ }
{ Portions created by Amresh Ramachandran are }
{ Copyright (C) 2001 Amresh Ramachandran (amreshr@hotmail.com) }
{ }
{ Contributor(s): Amresh Ramachandran, M van der Honing }
{ }
{ Obtained through: }
{ }
{ Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project }
{ JEDI home page, located at http://delphi-jedi.org }
{ }
{ The contents of this file are used with permission, subject to }
{ the Mozilla Public License Version 1.1 (the "License"); you may }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
{ implied. See the License for the specific language governing }
{ rights and limitations under the License. }
{ }
{********************************************************************}
unit Eax;
{***************************************************************
*
* Unit Name : Eax
* Purpose : This is an interface unit for the use of Eax OpenAL
* extentions from within Delphi and contains the
* translations of eax.h
* Author : Amresh Ramachandran amreshr@hotmail.com
* : M van der Honing mvdhoning@noeska.com
* Project name : OpenAL EAX2.0 Extension for OpenAL
* Created : 12-Oct-2001
* History :
* Thursday, October 17, 2001 11:42
* -Fixed missing $ENDIF
* -Fixed parameter list in EaxSet and EaxGet
* -Added const AL32 since EaxSet and EaxGet are located in OpenAL32.dll
* Friday, April 30, 2004
* -Removed all $IF structures left in only the openal parts
* -Removed const to AL32 EAXGet and EAXSet are now dynamic
*
****************************************************************}
interface
uses
Windows, ALTypes, AL;
const
DSPROPSETID_EAX20_ListenerProperties : TGuid = '{0306A6A8-B224-11d2-99E5-0000E8D8C722}';
DSPROPSETID_EAX20_BufferProperties : TGuid = '{0306A6A7-B224-11d2-99E5-0000E8D8C722}';
//TODO: ???
// For compatibility with future EAX versions:
//DSPROPSETID_EAX_ListenerProperties = DSPROPSETID_EAX20_ListenerProperties;
//DSPROPSETID_EAX_SourceProperties = DSPROPSETID_EAX20_BufferProperties;
//Enumerations DSPROPERTY_EAX_LISTENERPROPERTY
DSPROPERTY_EAXLISTENER_NONE = 0;
DSPROPERTY_EAXLISTENER_ALLPARAMETERS = 1;
DSPROPERTY_EAXLISTENER_ROOM = 2;
DSPROPERTY_EAXLISTENER_ROOMHF = 3;
DSPROPERTY_EAXLISTENER_ROOMROLLOFFFACTOR = 4;
DSPROPERTY_EAXLISTENER_DECAYTIME = 5;
DSPROPERTY_EAXLISTENER_DECAYHFRATIO = 6;
DSPROPERTY_EAXLISTENER_REFLECTIONS = 7;
DSPROPERTY_EAXLISTENER_REFLECTIONSDELAY = 8;
DSPROPERTY_EAXLISTENER_REVERB = 9;
DSPROPERTY_EAXLISTENER_REVERBDELAY = 10;
DSPROPERTY_EAXLISTENER_ENVIRONMENT = 11;
DSPROPERTY_EAXLISTENER_ENVIRONMENTSIZE = 12;
DSPROPERTY_EAXLISTENER_ENVIRONMENTDIFFUSION = 13;
DSPROPERTY_EAXLISTENER_AIRABSORPTIONHF = 14;
DSPROPERTY_EAXLISTENER_FLAGS = 15;
// OR these flags with property id
DSPROPERTY_EAXLISTENER_IMMEDIATE = $00000000;
// changes take effect immediately
DSPROPERTY_EAXLISTENER_DEFERRED = DWORD($80000000);
DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS = (DSPROPERTY_EAXLISTENER_NONE or
DSPROPERTY_EAXLISTENER_IMMEDIATE);
// used by DSPROPERTY_EAXLISTENER_ENVIRONMENT
//Enummetation
EAX_ENVIRONMENT_GENERIC = 0;
EAX_ENVIRONMENT_PADDEDCELL = 1;
EAX_ENVIRONMENT_ROOM = 2;
EAX_ENVIRONMENT_BATHROOM = 3;
EAX_ENVIRONMENT_LIVINGROOM = 4;
EAX_ENVIRONMENT_STONEROOM = 5;
EAX_ENVIRONMENT_AUDITORIUM = 6;
EAX_ENVIRONMENT_CONCERTHALL = 7;
EAX_ENVIRONMENT_CAVE = 8;
EAX_ENVIRONMENT_ARENA = 9;
EAX_ENVIRONMENT_HANGAR = 10;
EAX_ENVIRONMENT_CARPETEDHALLWAY = 11;
EAX_ENVIRONMENT_HALLWAY = 12;
EAX_ENVIRONMENT_STONECORRIDOR = 13;
EAX_ENVIRONMENT_ALLEY = 14;
EAX_ENVIRONMENT_FOREST = 15;
EAX_ENVIRONMENT_CITY = 16;
EAX_ENVIRONMENT_MOUNTAINS = 17;
EAX_ENVIRONMENT_QUARRY = 18;
EAX_ENVIRONMENT_PLAIN = 19;
EAX_ENVIRONMENT_PARKINGLOT = 20;
EAX_ENVIRONMENT_SEWERPIPE = 21;
EAX_ENVIRONMENT_UNDERWATER = 22;
EAX_ENVIRONMENT_DRUGGED = 23;
EAX_ENVIRONMENT_DIZZY = 24;
EAX_ENVIRONMENT_PSYCHOTIC = 25;
EAX_ENVIRONMENT_COUNT = 26;
// Used by DSPROPERTY_EAXLISTENER_FLAGS
//
// Note: The number and order of flags may change in future EAX versions.
// It is recommended to use the flag defines as follows:
// myFlags = EAXLISTENERFLAGS_DECAYTIMESCALE | EAXLISTENERFLAGS_REVERBSCALE;
// instead of:
// myFlags = 0x00000009;
//
// These flags determine what properties are affected by environment size.
EAXLISTENERFLAGS_DECAYTIMESCALE = $00000001;
// reverberation decay time
EAXLISTENERFLAGS_REFLECTIONSSCALE = $00000002; // reflection level
EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE = $00000004;
// initial reflection delay time
EAXLISTENERFLAGS_REVERBSCALE = $00000008; // reflections level
EAXLISTENERFLAGS_REVERBDELAYSCALE = $00000010;
// late reverberation delay time
// This flag limits high-frequency decay time according to air absorption.
EAXLISTENERFLAGS_DECAYHFLIMIT = $00000020;
EAXLISTENERFLAGS_RESERVED = $FFFFFFC0; // reserved future use
// property ranges and defaults:
EAXLISTENER_MINROOM = -10000;
EAXLISTENER_MAXROOM = 0;
EAXLISTENER_DEFAULTROOM = -1000;
EAXLISTENER_MINROOMHF = -10000;
EAXLISTENER_MAXROOMHF = 0;
EAXLISTENER_DEFAULTROOMHF = -100;
EAXLISTENER_MINROOMROLLOFFFACTOR = 0.0;
EAXLISTENER_MAXROOMROLLOFFFACTOR = 10.0;
EAXLISTENER_DEFAULTROOMROLLOFFFACTOR = 0.0;
EAXLISTENER_MINDECAYTIME = 0.1;
EAXLISTENER_MAXDECAYTIME = 20.0;
EAXLISTENER_DEFAULTDECAYTIME = 1.49;
EAXLISTENER_MINDECAYHFRATIO = 0.1;
EAXLISTENER_MAXDECAYHFRATIO = 2.0;
EAXLISTENER_DEFAULTDECAYHFRATIO = 0.83;
EAXLISTENER_MINREFLECTIONS = -10000;
EAXLISTENER_MAXREFLECTIONS = 1000;
EAXLISTENER_DEFAULTREFLECTIONS = -2602;
EAXLISTENER_MINREFLECTIONSDELAY = 0.0;
EAXLISTENER_MAXREFLECTIONSDELAY = 0.3;
EAXLISTENER_DEFAULTREFLECTIONSDELAY = 0.007;
EAXLISTENER_MINREVERB = -10000;
EAXLISTENER_MAXREVERB = 2000;
EAXLISTENER_DEFAULTREVERB = 200;
EAXLISTENER_MINREVERBDELAY = 0.0;
EAXLISTENER_MAXREVERBDELAY = 0.1;
EAXLISTENER_DEFAULTREVERBDELAY = 0.011;
EAXLISTENER_MINENVIRONMENT = 0;
EAXLISTENER_MAXENVIRONMENT = EAX_ENVIRONMENT_COUNT - 1;
EAXLISTENER_DEFAULTENVIRONMENT = EAX_ENVIRONMENT_GENERIC;
EAXLISTENER_MINENVIRONMENTSIZE = 1.0;
EAXLISTENER_MAXENVIRONMENTSIZE = 100.0;
EAXLISTENER_DEFAULTENVIRONMENTSIZE = 7.5;
EAXLISTENER_MINENVIRONMENTDIFFUSION = 0.0;
EAXLISTENER_MAXENVIRONMENTDIFFUSION = 1.0;
EAXLISTENER_DEFAULTENVIRONMENTDIFFUSION = 1.0;
EAXLISTENER_MINAIRABSORPTIONHF = -100.0;
EAXLISTENER_MAXAIRABSORPTIONHF = 0.0;
EAXLISTENER_DEFAULTAIRABSORPTIONHF = -5.0;
EAXLISTENER_DEFAULTFLAGS = EAXLISTENERFLAGS_DECAYTIMESCALE or
EAXLISTENERFLAGS_REFLECTIONSSCALE or
EAXLISTENERFLAGS_REFLECTIONSDELAYSCALE or
EAXLISTENERFLAGS_REVERBSCALE or
EAXLISTENERFLAGS_REVERBDELAYSCALE or
EAXLISTENERFLAGS_DECAYHFLIMIT;
// For compatibility with future EAX versions:
//DSPROPSETID_EAX_BufferProperties = DSPROPSETID_EAX20_BufferProperties;
//Enumeration DSPROPERTY_EAX_BUFFERPROPERTY
DSPROPERTY_EAXBUFFER_NONE = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -