From a916fd71fc1fa7f57d08e2c05f11f6e55e1f1a00 Mon Sep 17 00:00:00 2001 From: Robert Beckebans Date: Sat, 23 Mar 2013 21:32:07 +0100 Subject: [PATCH] Added openal-soft library for Win32 --- neo/libs/openal-soft/COPYING | 484 +++++++++++ neo/libs/openal-soft/include/AL/al.h | 656 +++++++++++++++ neo/libs/openal-soft/include/AL/alc.h | 237 ++++++ neo/libs/openal-soft/include/AL/alext.h | 355 ++++++++ .../openal-soft/include/AL/efx-creative.h | 3 + neo/libs/openal-soft/include/AL/efx-presets.h | 402 +++++++++ neo/libs/openal-soft/include/AL/efx.h | 761 ++++++++++++++++++ neo/libs/openal-soft/lib/win32/OpenAL32.lib | Bin 0 -> 32366 bytes neo/libs/openal-soft/readme.txt | 27 + neo/libs/openal-soft/win32/OpenAL32.dll | Bin 0 -> 538112 bytes 10 files changed, 2925 insertions(+) create mode 100644 neo/libs/openal-soft/COPYING create mode 100644 neo/libs/openal-soft/include/AL/al.h create mode 100644 neo/libs/openal-soft/include/AL/alc.h create mode 100644 neo/libs/openal-soft/include/AL/alext.h create mode 100644 neo/libs/openal-soft/include/AL/efx-creative.h create mode 100644 neo/libs/openal-soft/include/AL/efx-presets.h create mode 100644 neo/libs/openal-soft/include/AL/efx.h create mode 100644 neo/libs/openal-soft/lib/win32/OpenAL32.lib create mode 100644 neo/libs/openal-soft/readme.txt create mode 100644 neo/libs/openal-soft/win32/OpenAL32.dll diff --git a/neo/libs/openal-soft/COPYING b/neo/libs/openal-soft/COPYING new file mode 100644 index 00000000..d0c89786 --- /dev/null +++ b/neo/libs/openal-soft/COPYING @@ -0,0 +1,484 @@ + + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/neo/libs/openal-soft/include/AL/al.h b/neo/libs/openal-soft/include/AL/al.h new file mode 100644 index 00000000..413b3833 --- /dev/null +++ b/neo/libs/openal-soft/include/AL/al.h @@ -0,0 +1,656 @@ +#ifndef AL_AL_H +#define AL_AL_H + +#if defined(__cplusplus) +extern "C" { +#endif + +#ifndef AL_API + #if defined(AL_LIBTYPE_STATIC) + #define AL_API + #elif defined(_WIN32) + #define AL_API __declspec(dllimport) + #else + #define AL_API extern + #endif +#endif + +#if defined(_WIN32) + #define AL_APIENTRY __cdecl +#else + #define AL_APIENTRY +#endif + + +/** Deprecated macro. */ +#define OPENAL +#define ALAPI AL_API +#define ALAPIENTRY AL_APIENTRY +#define AL_INVALID (-1) +#define AL_ILLEGAL_ENUM AL_INVALID_ENUM +#define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION + +/** Supported AL version. */ +#define AL_VERSION_1_0 +#define AL_VERSION_1_1 + +/** 8-bit boolean */ +typedef char ALboolean; + +/** character */ +typedef char ALchar; + +/** signed 8-bit 2's complement integer */ +typedef signed char ALbyte; + +/** unsigned 8-bit integer */ +typedef unsigned char ALubyte; + +/** signed 16-bit 2's complement integer */ +typedef short ALshort; + +/** unsigned 16-bit integer */ +typedef unsigned short ALushort; + +/** signed 32-bit 2's complement integer */ +typedef int ALint; + +/** unsigned 32-bit integer */ +typedef unsigned int ALuint; + +/** non-negative 32-bit binary integer size */ +typedef int ALsizei; + +/** enumerated 32-bit value */ +typedef int ALenum; + +/** 32-bit IEEE754 floating-point */ +typedef float ALfloat; + +/** 64-bit IEEE754 floating-point */ +typedef double ALdouble; + +/** void type (for opaque pointers only) */ +typedef void ALvoid; + + +/* Enumerant values begin at column 50. No tabs. */ + +/** "no distance model" or "no buffer" */ +#define AL_NONE 0 + +/** Boolean False. */ +#define AL_FALSE 0 + +/** Boolean True. */ +#define AL_TRUE 1 + + +/** + * Relative source. + * Type: ALboolean + * Range: [AL_TRUE, AL_FALSE] + * Default: AL_FALSE + * + * Specifies if the Source has relative coordinates. + */ +#define AL_SOURCE_RELATIVE 0x202 + + +/** + * Inner cone angle, in degrees. + * Type: ALint, ALfloat + * Range: [0 - 360] + * Default: 360 + * + * The angle covered by the inner cone, where the source will not attenuate. + */ +#define AL_CONE_INNER_ANGLE 0x1001 + +/** + * Outer cone angle, in degrees. + * Range: [0 - 360] + * Default: 360 + * + * The angle covered by the outer cone, where the source will be fully + * attenuated. + */ +#define AL_CONE_OUTER_ANGLE 0x1002 + +/** + * Source pitch. + * Type: ALfloat + * Range: [0.5 - 2.0] + * Default: 1.0 + * + * A multiplier for the frequency (sample rate) of the source's buffer. + */ +#define AL_PITCH 0x1003 + +/** + * Source or listener position. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} + * + * The source or listener location in three dimensional space. + * + * OpenAL, like OpenGL, uses a right handed coordinate system, where in a + * frontal default view X (thumb) points right, Y points up (index finger), and + * Z points towards the viewer/camera (middle finger). + * + * To switch from a left handed coordinate system, flip the sign on the Z + * coordinate. + */ +#define AL_POSITION 0x1004 + +/** + * Source direction. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} + * + * Specifies the current direction in local space. + * A zero-length vector specifies an omni-directional source (cone is ignored). + */ +#define AL_DIRECTION 0x1005 + +/** + * Source or listener velocity. + * Type: ALfloat[3], ALint[3] + * Default: {0, 0, 0} + * + * Specifies the current velocity in local space. + */ +#define AL_VELOCITY 0x1006 + +/** + * Source looping. + * Type: ALboolean + * Range: [AL_TRUE, AL_FALSE] + * Default: AL_FALSE + * + * Specifies whether source is looping. + */ +#define AL_LOOPING 0x1007 + +/** + * Source buffer. + * Type: ALuint + * Range: any valid Buffer. + * + * Specifies the buffer to provide sound samples. + */ +#define AL_BUFFER 0x1009 + +/** + * Source or listener gain. + * Type: ALfloat + * Range: [0.0 - ] + * + * A value of 1.0 means unattenuated. Each division by 2 equals an attenuation + * of about -6dB. Each multiplicaton by 2 equals an amplification of about + * +6dB. + * + * A value of 0.0 is meaningless with respect to a logarithmic scale; it is + * silent. + */ +#define AL_GAIN 0x100A + +/** + * Minimum source gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * + * The minimum gain allowed for a source, after distance and cone attenation is + * applied (if applicable). + */ +#define AL_MIN_GAIN 0x100D + +/** + * Maximum source gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * + * The maximum gain allowed for a source, after distance and cone attenation is + * applied (if applicable). + */ +#define AL_MAX_GAIN 0x100E + +/** + * Listener orientation. + * Type: ALfloat[6] + * Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} + * + * Effectively two three dimensional vectors. The first vector is the front (or + * "at") and the second is the top (or "up"). + * + * Both vectors are in local space. + */ +#define AL_ORIENTATION 0x100F + +/** + * Source state (query only). + * Type: ALint + * Range: [AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED] + */ +#define AL_SOURCE_STATE 0x1010 + +/** Source state value. */ +#define AL_INITIAL 0x1011 +#define AL_PLAYING 0x1012 +#define AL_PAUSED 0x1013 +#define AL_STOPPED 0x1014 + +/** + * Source Buffer Queue size (query only). + * Type: ALint + * + * The number of buffers queued using alSourceQueueBuffers, minus the buffers + * removed with alSourceUnqueueBuffers. + */ +#define AL_BUFFERS_QUEUED 0x1015 + +/** + * Source Buffer Queue processed count (query only). + * Type: ALint + * + * The number of queued buffers that have been fully processed, and can be + * removed with alSourceUnqueueBuffers. + * + * Looping sources will never fully process buffers because they will be set to + * play again for when the source loops. + */ +#define AL_BUFFERS_PROCESSED 0x1016 + +/** + * Source reference distance. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 + * + * The distance in units that no attenuation occurs. + * + * At 0.0, no distance attenuation ever occurs on non-linear attenuation models. + */ +#define AL_REFERENCE_DISTANCE 0x1020 + +/** + * Source rolloff factor. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 + * + * Multiplier to exaggerate or diminish distance attenuation. + * + * At 0.0, no distance attenuation ever occurs. + */ +#define AL_ROLLOFF_FACTOR 0x1021 + +/** + * Outer cone gain. + * Type: ALfloat + * Range: [0.0 - 1.0] + * Default: 0.0 + * + * The gain attenuation applied when the listener is outside of the source's + * outer cone. + */ +#define AL_CONE_OUTER_GAIN 0x1022 + +/** + * Source maximum distance. + * Type: ALfloat + * Range: [0.0 - ] + * Default: +inf + * + * The distance above which the source is not attenuated any further with a + * clamped distance model, or where attenuation reaches 0.0 gain for linear + * distance models with a default rolloff factor. + */ +#define AL_MAX_DISTANCE 0x1023 + +/** Source buffer position, in seconds */ +#define AL_SEC_OFFSET 0x1024 +/** Source buffer position, in sample frames */ +#define AL_SAMPLE_OFFSET 0x1025 +/** Source buffer position, in bytes */ +#define AL_BYTE_OFFSET 0x1026 + +/** + * Source type (query only). + * Type: ALint + * Range: [AL_STATIC, AL_STREAMING, AL_UNDETERMINED] + * + * A Source is Static if a Buffer has been attached using AL_BUFFER. + * + * A Source is Streaming if one or more Buffers have been attached using + * alSourceQueueBuffers. + * + * A Source is Undetermined when it has the NULL buffer attached using + * AL_BUFFER. + */ +#define AL_SOURCE_TYPE 0x1027 + +/** Source type value. */ +#define AL_STATIC 0x1028 +#define AL_STREAMING 0x1029 +#define AL_UNDETERMINED 0x1030 + +/** Buffer format specifier. */ +#define AL_FORMAT_MONO8 0x1100 +#define AL_FORMAT_MONO16 0x1101 +#define AL_FORMAT_STEREO8 0x1102 +#define AL_FORMAT_STEREO16 0x1103 + +/** Buffer frequency (query only). */ +#define AL_FREQUENCY 0x2001 +/** Buffer bits per sample (query only). */ +#define AL_BITS 0x2002 +/** Buffer channel count (query only). */ +#define AL_CHANNELS 0x2003 +/** Buffer data size (query only). */ +#define AL_SIZE 0x2004 + +/** + * Buffer state. + * + * Not for public use. + */ +#define AL_UNUSED 0x2010 +#define AL_PENDING 0x2011 +#define AL_PROCESSED 0x2012 + + +/** No error. */ +#define AL_NO_ERROR 0 + +/** Invalid name paramater passed to AL call. */ +#define AL_INVALID_NAME 0xA001 + +/** Invalid enum parameter passed to AL call. */ +#define AL_INVALID_ENUM 0xA002 + +/** Invalid value parameter passed to AL call. */ +#define AL_INVALID_VALUE 0xA003 + +/** Illegal AL call. */ +#define AL_INVALID_OPERATION 0xA004 + +/** Not enough memory. */ +#define AL_OUT_OF_MEMORY 0xA005 + + +/** Context string: Vendor ID. */ +#define AL_VENDOR 0xB001 +/** Context string: Version. */ +#define AL_VERSION 0xB002 +/** Context string: Renderer ID. */ +#define AL_RENDERER 0xB003 +/** Context string: Space-separated extension list. */ +#define AL_EXTENSIONS 0xB004 + + +/** + * Doppler scale. + * Type: ALfloat + * Range: [0.0 - ] + * Default: 1.0 + * + * Scale for source and listener velocities. + */ +#define AL_DOPPLER_FACTOR 0xC000 +AL_API void AL_APIENTRY alDopplerFactor(ALfloat value); + +/** + * Doppler velocity (deprecated). + * + * A multiplier applied to the Speed of Sound. + */ +#define AL_DOPPLER_VELOCITY 0xC001 +AL_API void AL_APIENTRY alDopplerVelocity(ALfloat value); + +/** + * Speed of Sound, in units per second. + * Type: ALfloat + * Range: [0.0001 - ] + * Default: 343.3 + * + * The speed at which sound waves are assumed to travel, when calculating the + * doppler effect. + */ +#define AL_SPEED_OF_SOUND 0xC003 +AL_API void AL_APIENTRY alSpeedOfSound(ALfloat value); + +/** + * Distance attenuation model. + * Type: ALint + * Range: [AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, + * AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, + * AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED] + * Default: AL_INVERSE_DISTANCE_CLAMPED + * + * The model by which sources attenuate with distance. + * + * None - No distance attenuation. + * Inverse - Doubling the distance halves the source gain. + * Linear - Linear gain scaling between the reference and max distances. + * Exponent - Exponential gain dropoff. + * + * Clamped variations work like the non-clamped counterparts, except the + * distance calculated is clamped between the reference and max distances. + */ +#define AL_DISTANCE_MODEL 0xD000 +AL_API void AL_APIENTRY alDistanceModel(ALenum distanceModel); + +/** Distance model value. */ +#define AL_INVERSE_DISTANCE 0xD001 +#define AL_INVERSE_DISTANCE_CLAMPED 0xD002 +#define AL_LINEAR_DISTANCE 0xD003 +#define AL_LINEAR_DISTANCE_CLAMPED 0xD004 +#define AL_EXPONENT_DISTANCE 0xD005 +#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006 + +/** Renderer State management. */ +AL_API void AL_APIENTRY alEnable(ALenum capability); +AL_API void AL_APIENTRY alDisable(ALenum capability); +AL_API ALboolean AL_APIENTRY alIsEnabled(ALenum capability); + +/** State retrieval. */ +AL_API const ALchar* AL_APIENTRY alGetString(ALenum param); +AL_API void AL_APIENTRY alGetBooleanv(ALenum param, ALboolean *values); +AL_API void AL_APIENTRY alGetIntegerv(ALenum param, ALint *values); +AL_API void AL_APIENTRY alGetFloatv(ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetDoublev(ALenum param, ALdouble *values); +AL_API ALboolean AL_APIENTRY alGetBoolean(ALenum param); +AL_API ALint AL_APIENTRY alGetInteger(ALenum param); +AL_API ALfloat AL_APIENTRY alGetFloat(ALenum param); +AL_API ALdouble AL_APIENTRY alGetDouble(ALenum param); + +/** + * Error retrieval. + * + * Obtain the first error generated in the AL context since the last check. + */ +AL_API ALenum AL_APIENTRY alGetError(void); + +/** + * Extension support. + * + * Query for the presence of an extension, and obtain any appropriate function + * pointers and enum values. + */ +AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname); +AL_API void* AL_APIENTRY alGetProcAddress(const ALchar *fname); +AL_API ALenum AL_APIENTRY alGetEnumValue(const ALchar *ename); + + +/** Set Listener parameters */ +AL_API void AL_APIENTRY alListenerf(ALenum param, ALfloat value); +AL_API void AL_APIENTRY alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alListenerfv(ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alListeneri(ALenum param, ALint value); +AL_API void AL_APIENTRY alListener3i(ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alListeneriv(ALenum param, const ALint *values); + +/** Get Listener parameters */ +AL_API void AL_APIENTRY alGetListenerf(ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetListenerfv(ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetListeneri(ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetListeneriv(ALenum param, ALint *values); + + +/** Create Source objects. */ +AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources); +/** Delete Source objects. */ +AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources); +/** Verify a handle is a valid Source. */ +AL_API ALboolean AL_APIENTRY alIsSource(ALuint source); + +/** Set Source parameters. */ +AL_API void AL_APIENTRY alSourcef(ALuint source, ALenum param, ALfloat value); +AL_API void AL_APIENTRY alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alSourcefv(ALuint source, ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value); +AL_API void AL_APIENTRY alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alSourceiv(ALuint source, ALenum param, const ALint *values); + +/** Get Source parameters. */ +AL_API void AL_APIENTRY alGetSourcef(ALuint source, ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetSourcefv(ALuint source, ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetSourceiv(ALuint source, ALenum param, ALint *values); + + +/** Play, replay, or resume (if paused) a list of Sources */ +AL_API void AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources); +/** Stop a list of Sources */ +AL_API void AL_APIENTRY alSourceStopv(ALsizei n, const ALuint *sources); +/** Rewind a list of Sources */ +AL_API void AL_APIENTRY alSourceRewindv(ALsizei n, const ALuint *sources); +/** Pause a list of Sources */ +AL_API void AL_APIENTRY alSourcePausev(ALsizei n, const ALuint *sources); + +/** Play, replay, or resume a Source */ +AL_API void AL_APIENTRY alSourcePlay(ALuint source); +/** Stop a Source */ +AL_API void AL_APIENTRY alSourceStop(ALuint source); +/** Rewind a Source (set playback postiton to beginning) */ +AL_API void AL_APIENTRY alSourceRewind(ALuint source); +/** Pause a Source */ +AL_API void AL_APIENTRY alSourcePause(ALuint source); + +/** Queue buffers onto a source */ +AL_API void AL_APIENTRY alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers); +/** Unqueue processed buffers from a source */ +AL_API void AL_APIENTRY alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers); + + +/** Create Buffer objects */ +AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers); +/** Delete Buffer objects */ +AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers); +/** Verify a handle is a valid Buffer */ +AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer); + +/** Specifies the data to be copied into a buffer */ +AL_API void AL_APIENTRY alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); + +/** Set Buffer parameters, */ +AL_API void AL_APIENTRY alBufferf(ALuint buffer, ALenum param, ALfloat value); +AL_API void AL_APIENTRY alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +AL_API void AL_APIENTRY alBufferfv(ALuint buffer, ALenum param, const ALfloat *values); +AL_API void AL_APIENTRY alBufferi(ALuint buffer, ALenum param, ALint value); +AL_API void AL_APIENTRY alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); +AL_API void AL_APIENTRY alBufferiv(ALuint buffer, ALenum param, const ALint *values); + +/** Get Buffer parameters. */ +AL_API void AL_APIENTRY alGetBufferf(ALuint buffer, ALenum param, ALfloat *value); +AL_API void AL_APIENTRY alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +AL_API void AL_APIENTRY alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values); +AL_API void AL_APIENTRY alGetBufferi(ALuint buffer, ALenum param, ALint *value); +AL_API void AL_APIENTRY alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); +AL_API void AL_APIENTRY alGetBufferiv(ALuint buffer, ALenum param, ALint *values); + +/** Pointer-to-function type, useful for dynamically getting AL entry points. */ +typedef void (AL_APIENTRY *LPALENABLE)(ALenum capability); +typedef void (AL_APIENTRY *LPALDISABLE)(ALenum capability); +typedef ALboolean (AL_APIENTRY *LPALISENABLED)(ALenum capability); +typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)(ALenum param); +typedef void (AL_APIENTRY *LPALGETBOOLEANV)(ALenum param, ALboolean *values); +typedef void (AL_APIENTRY *LPALGETINTEGERV)(ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALGETFLOATV)(ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETDOUBLEV)(ALenum param, ALdouble *values); +typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)(ALenum param); +typedef ALint (AL_APIENTRY *LPALGETINTEGER)(ALenum param); +typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)(ALenum param); +typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)(ALenum param); +typedef ALenum (AL_APIENTRY *LPALGETERROR)(void); +typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar *extname); +typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)(const ALchar *fname); +typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)(const ALchar *ename); +typedef void (AL_APIENTRY *LPALLISTENERF)(ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALLISTENERFV)(ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALLISTENERI)(ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALLISTENERIV)(ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETLISTENERF)(ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETLISTENERFV)(ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETLISTENERI)(ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETLISTENERIV)(ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALGENSOURCES)(ALsizei n, ALuint *sources); +typedef void (AL_APIENTRY *LPALDELETESOURCES)(ALsizei n, const ALuint *sources); +typedef ALboolean (AL_APIENTRY *LPALISSOURCE)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEF)(ALuint source, ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALSOURCEI)(ALuint source, ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCESTOPV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources); +typedef void (AL_APIENTRY *LPALSOURCEPLAY)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCESTOP)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEREWIND)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEPAUSE)(ALuint source); +typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers); +typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers); +typedef void (AL_APIENTRY *LPALGENBUFFERS)(ALsizei n, ALuint *buffers); +typedef void (AL_APIENTRY *LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers); +typedef ALboolean (AL_APIENTRY *LPALISBUFFER)(ALuint buffer); +typedef void (AL_APIENTRY *LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei freq); +typedef void (AL_APIENTRY *LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value); +typedef void (AL_APIENTRY *LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3); +typedef void (AL_APIENTRY *LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values); +typedef void (AL_APIENTRY *LPALBUFFERI)(ALuint buffer, ALenum param, ALint value); +typedef void (AL_APIENTRY *LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3); +typedef void (AL_APIENTRY *LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values); +typedef void (AL_APIENTRY *LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value); +typedef void (AL_APIENTRY *LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3); +typedef void (AL_APIENTRY *LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values); +typedef void (AL_APIENTRY *LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value); +typedef void (AL_APIENTRY *LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3); +typedef void (AL_APIENTRY *LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values); +typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)(ALfloat value); +typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)(ALfloat value); +typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)(ALfloat value); +typedef void (AL_APIENTRY *LPALDISTANCEMODEL)(ALenum distanceModel); + +#if defined(__cplusplus) +} /* extern "C" */ +#endif + +#endif /* AL_AL_H */ diff --git a/neo/libs/openal-soft/include/AL/alc.h b/neo/libs/openal-soft/include/AL/alc.h new file mode 100644 index 00000000..294e8b33 --- /dev/null +++ b/neo/libs/openal-soft/include/AL/alc.h @@ -0,0 +1,237 @@ +#ifndef AL_ALC_H +#define AL_ALC_H + +#if defined(__cplusplus) +extern "C" { +#endif + +#ifndef ALC_API + #if defined(AL_LIBTYPE_STATIC) + #define ALC_API + #elif defined(_WIN32) + #define ALC_API __declspec(dllimport) + #else + #define ALC_API extern + #endif +#endif + +#if defined(_WIN32) + #define ALC_APIENTRY __cdecl +#else + #define ALC_APIENTRY +#endif + + +/** Deprecated macro. */ +#define ALCAPI ALC_API +#define ALCAPIENTRY ALC_APIENTRY +#define ALC_INVALID 0 + +/** Supported ALC version? */ +#define ALC_VERSION_0_1 1 + +/** Opaque device handle */ +typedef struct ALCdevice_struct ALCdevice; +/** Opaque context handle */ +typedef struct ALCcontext_struct ALCcontext; + +/** 8-bit boolean */ +typedef char ALCboolean; + +/** character */ +typedef char ALCchar; + +/** signed 8-bit 2's complement integer */ +typedef signed char ALCbyte; + +/** unsigned 8-bit integer */ +typedef unsigned char ALCubyte; + +/** signed 16-bit 2's complement integer */ +typedef short ALCshort; + +/** unsigned 16-bit integer */ +typedef unsigned short ALCushort; + +/** signed 32-bit 2's complement integer */ +typedef int ALCint; + +/** unsigned 32-bit integer */ +typedef unsigned int ALCuint; + +/** non-negative 32-bit binary integer size */ +typedef int ALCsizei; + +/** enumerated 32-bit value */ +typedef int ALCenum; + +/** 32-bit IEEE754 floating-point */ +typedef float ALCfloat; + +/** 64-bit IEEE754 floating-point */ +typedef double ALCdouble; + +/** void type (for opaque pointers only) */ +typedef void ALCvoid; + + +/* Enumerant values begin at column 50. No tabs. */ + +/** Boolean False. */ +#define ALC_FALSE 0 + +/** Boolean True. */ +#define ALC_TRUE 1 + +/** Context attribute: Hz. */ +#define ALC_FREQUENCY 0x1007 + +/** Context attribute: Hz. */ +#define ALC_REFRESH 0x1008 + +/** Context attribute: AL_TRUE or AL_FALSE. */ +#define ALC_SYNC 0x1009 + +/** Context attribute: requested Mono (3D) Sources. */ +#define ALC_MONO_SOURCES 0x1010 + +/** Context attribute: requested Stereo Sources. */ +#define ALC_STEREO_SOURCES 0x1011 + +/** No error. */ +#define ALC_NO_ERROR 0 + +/** Invalid device handle. */ +#define ALC_INVALID_DEVICE 0xA001 + +/** Invalid context handle. */ +#define ALC_INVALID_CONTEXT 0xA002 + +/** Invalid enum parameter passed to an ALC call. */ +#define ALC_INVALID_ENUM 0xA003 + +/** Invalid value parameter passed to an ALC call. */ +#define ALC_INVALID_VALUE 0xA004 + +/** Out of memory. */ +#define ALC_OUT_OF_MEMORY 0xA005 + + +/** Runtime ALC version. */ +#define ALC_MAJOR_VERSION 0x1000 +#define ALC_MINOR_VERSION 0x1001 + +/** Context attribute list properties. */ +#define ALC_ATTRIBUTES_SIZE 0x1002 +#define ALC_ALL_ATTRIBUTES 0x1003 + +/** String for the default device specifier. */ +#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 +/** + * String for the given device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known device specifiers (list ends with an empty string). + */ +#define ALC_DEVICE_SPECIFIER 0x1005 +/** String for space-separated list of ALC extensions. */ +#define ALC_EXTENSIONS 0x1006 + + +/** Capture extension */ +#define ALC_EXT_CAPTURE 1 +/** + * String for the given capture device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known capture device specifiers (list ends with an empty string). + */ +#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310 +/** String for the default capture device specifier. */ +#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311 +/** Number of sample frames available for capture. */ +#define ALC_CAPTURE_SAMPLES 0x312 + + +/** Enumerate All extension */ +#define ALC_ENUMERATE_ALL_EXT 1 +/** String for the default extended device specifier. */ +#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 +/** + * String for the given extended device's specifier. + * + * If device handle is NULL, it is instead a null-char separated list of + * strings of known extended device specifiers (list ends with an empty string). + */ +#define ALC_ALL_DEVICES_SPECIFIER 0x1013 + + +/** Context management. */ +ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCint* attrlist); +ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context); +ALC_API void ALC_APIENTRY alcProcessContext(ALCcontext *context); +ALC_API void ALC_APIENTRY alcSuspendContext(ALCcontext *context); +ALC_API void ALC_APIENTRY alcDestroyContext(ALCcontext *context); +ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(void); +ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice(ALCcontext *context); + +/** Device management. */ +ALC_API ALCdevice* ALC_APIENTRY alcOpenDevice(const ALCchar *devicename); +ALC_API ALCboolean ALC_APIENTRY alcCloseDevice(ALCdevice *device); + + +/** + * Error support. + * + * Obtain the most recent Device error. + */ +ALC_API ALCenum ALC_APIENTRY alcGetError(ALCdevice *device); + +/** + * Extension support. + * + * Query for the presence of an extension, and obtain any appropriate + * function pointers and enum values. + */ +ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extname); +ALC_API void* ALC_APIENTRY alcGetProcAddress(ALCdevice *device, const ALCchar *funcname); +ALC_API ALCenum ALC_APIENTRY alcGetEnumValue(ALCdevice *device, const ALCchar *enumname); + +/** Query function. */ +ALC_API const ALCchar* ALC_APIENTRY alcGetString(ALCdevice *device, ALCenum param); +ALC_API void ALC_APIENTRY alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); + +/** Capture function. */ +ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); +ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureStart(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureStop(ALCdevice *device); +ALC_API void ALC_APIENTRY alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); + +/** Pointer-to-function type, useful for dynamically getting ALC entry points. */ +typedef ALCcontext* (ALC_APIENTRY *LPALCCREATECONTEXT)(ALCdevice *device, const ALCint *attrlist); +typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)(ALCcontext *context); +typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)(ALCcontext *context); +typedef ALCcontext* (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)(void); +typedef ALCdevice* (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)(ALCcontext *context); +typedef ALCdevice* (ALC_APIENTRY *LPALCOPENDEVICE)(const ALCchar *devicename); +typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)(ALCdevice *device); +typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)(ALCdevice *device); +typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)(ALCdevice *device, const ALCchar *extname); +typedef void* (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname); +typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname); +typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)(ALCdevice *device, ALCenum param); +typedef void (ALC_APIENTRY *LPALCGETINTEGERV)(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values); +typedef ALCdevice* (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize); +typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESTART)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)(ALCdevice *device); +typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); + +#if defined(__cplusplus) +} +#endif + +#endif /* AL_ALC_H */ diff --git a/neo/libs/openal-soft/include/AL/alext.h b/neo/libs/openal-soft/include/AL/alext.h new file mode 100644 index 00000000..0447f2bb --- /dev/null +++ b/neo/libs/openal-soft/include/AL/alext.h @@ -0,0 +1,355 @@ +/** + * OpenAL cross platform audio library + * Copyright (C) 2008 by authors. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * Or go to http://www.gnu.org/copyleft/lgpl.html + */ + +#ifndef AL_ALEXT_H +#define AL_ALEXT_H + +#include +/* Define int64_t and uint64_t types */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif + +#include "alc.h" +#include "al.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef AL_LOKI_IMA_ADPCM_format +#define AL_LOKI_IMA_ADPCM_format 1 +#define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000 +#define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001 +#endif + +#ifndef AL_LOKI_WAVE_format +#define AL_LOKI_WAVE_format 1 +#define AL_FORMAT_WAVE_EXT 0x10002 +#endif + +#ifndef AL_EXT_vorbis +#define AL_EXT_vorbis 1 +#define AL_FORMAT_VORBIS_EXT 0x10003 +#endif + +#ifndef AL_LOKI_quadriphonic +#define AL_LOKI_quadriphonic 1 +#define AL_FORMAT_QUAD8_LOKI 0x10004 +#define AL_FORMAT_QUAD16_LOKI 0x10005 +#endif + +#ifndef AL_EXT_float32 +#define AL_EXT_float32 1 +#define AL_FORMAT_MONO_FLOAT32 0x10010 +#define AL_FORMAT_STEREO_FLOAT32 0x10011 +#endif + +#ifndef AL_EXT_double +#define AL_EXT_double 1 +#define AL_FORMAT_MONO_DOUBLE_EXT 0x10012 +#define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013 +#endif + +#ifndef AL_EXT_MULAW +#define AL_EXT_MULAW 1 +#define AL_FORMAT_MONO_MULAW_EXT 0x10014 +#define AL_FORMAT_STEREO_MULAW_EXT 0x10015 +#endif + +#ifndef AL_EXT_ALAW +#define AL_EXT_ALAW 1 +#define AL_FORMAT_MONO_ALAW_EXT 0x10016 +#define AL_FORMAT_STEREO_ALAW_EXT 0x10017 +#endif + +#ifndef ALC_LOKI_audio_channel +#define ALC_LOKI_audio_channel 1 +#define ALC_CHAN_MAIN_LOKI 0x500001 +#define ALC_CHAN_PCM_LOKI 0x500002 +#define ALC_CHAN_CD_LOKI 0x500003 +#endif + +#ifndef AL_EXT_MCFORMATS +#define AL_EXT_MCFORMATS 1 +#define AL_FORMAT_QUAD8 0x1204 +#define AL_FORMAT_QUAD16 0x1205 +#define AL_FORMAT_QUAD32 0x1206 +#define AL_FORMAT_REAR8 0x1207 +#define AL_FORMAT_REAR16 0x1208 +#define AL_FORMAT_REAR32 0x1209 +#define AL_FORMAT_51CHN8 0x120A +#define AL_FORMAT_51CHN16 0x120B +#define AL_FORMAT_51CHN32 0x120C +#define AL_FORMAT_61CHN8 0x120D +#define AL_FORMAT_61CHN16 0x120E +#define AL_FORMAT_61CHN32 0x120F +#define AL_FORMAT_71CHN8 0x1210 +#define AL_FORMAT_71CHN16 0x1211 +#define AL_FORMAT_71CHN32 0x1212 +#endif + +#ifndef AL_EXT_MULAW_MCFORMATS +#define AL_EXT_MULAW_MCFORMATS 1 +#define AL_FORMAT_MONO_MULAW 0x10014 +#define AL_FORMAT_STEREO_MULAW 0x10015 +#define AL_FORMAT_QUAD_MULAW 0x10021 +#define AL_FORMAT_REAR_MULAW 0x10022 +#define AL_FORMAT_51CHN_MULAW 0x10023 +#define AL_FORMAT_61CHN_MULAW 0x10024 +#define AL_FORMAT_71CHN_MULAW 0x10025 +#endif + +#ifndef AL_EXT_IMA4 +#define AL_EXT_IMA4 1 +#define AL_FORMAT_MONO_IMA4 0x1300 +#define AL_FORMAT_STEREO_IMA4 0x1301 +#endif + +#ifndef AL_EXT_STATIC_BUFFER +#define AL_EXT_STATIC_BUFFER 1 +typedef ALvoid (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei); +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq); +#endif +#endif + +#ifndef ALC_EXT_EFX +#define ALC_EXT_EFX 1 +#include "efx.h" +#endif + +#ifndef ALC_EXT_disconnect +#define ALC_EXT_disconnect 1 +#define ALC_CONNECTED 0x313 +#endif + +#ifndef ALC_EXT_thread_local_context +#define ALC_EXT_thread_local_context 1 +typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context); +typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void); +#ifdef AL_ALEXT_PROTOTYPES +ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context); +ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void); +#endif +#endif + +#ifndef AL_EXT_source_distance_model +#define AL_EXT_source_distance_model 1 +#define AL_SOURCE_DISTANCE_MODEL 0x200 +#endif + +#ifndef AL_SOFT_buffer_sub_data +#define AL_SOFT_buffer_sub_data 1 +#define AL_BYTE_RW_OFFSETS_SOFT 0x1031 +#define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032 +typedef ALvoid (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei); +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length); +#endif +#endif + +#ifndef AL_SOFT_loop_points +#define AL_SOFT_loop_points 1 +#define AL_LOOP_POINTS_SOFT 0x2015 +#endif + +#ifndef AL_EXT_FOLDBACK +#define AL_EXT_FOLDBACK 1 +#define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK" +#define AL_FOLDBACK_EVENT_BLOCK 0x4112 +#define AL_FOLDBACK_EVENT_START 0x4111 +#define AL_FOLDBACK_EVENT_STOP 0x4113 +#define AL_FOLDBACK_MODE_MONO 0x4101 +#define AL_FOLDBACK_MODE_STEREO 0x4102 +typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei); +typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK); +typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback); +AL_API void AL_APIENTRY alRequestFoldbackStop(void); +#endif +#endif + +#ifndef ALC_EXT_DEDICATED +#define ALC_EXT_DEDICATED 1 +#define AL_DEDICATED_GAIN 0x0001 +#define AL_EFFECT_DEDICATED_DIALOGUE 0x9001 +#define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000 +#endif + +#ifndef AL_SOFT_buffer_samples +#define AL_SOFT_buffer_samples 1 +/* Channel configurations */ +#define AL_MONO_SOFT 0x1500 +#define AL_STEREO_SOFT 0x1501 +#define AL_REAR_SOFT 0x1502 +#define AL_QUAD_SOFT 0x1503 +#define AL_5POINT1_SOFT 0x1504 +#define AL_6POINT1_SOFT 0x1505 +#define AL_7POINT1_SOFT 0x1506 + +/* Sample types */ +#define AL_BYTE_SOFT 0x1400 +#define AL_UNSIGNED_BYTE_SOFT 0x1401 +#define AL_SHORT_SOFT 0x1402 +#define AL_UNSIGNED_SHORT_SOFT 0x1403 +#define AL_INT_SOFT 0x1404 +#define AL_UNSIGNED_INT_SOFT 0x1405 +#define AL_FLOAT_SOFT 0x1406 +#define AL_DOUBLE_SOFT 0x1407 +#define AL_BYTE3_SOFT 0x1408 +#define AL_UNSIGNED_BYTE3_SOFT 0x1409 + +/* Storage formats */ +#define AL_MONO8_SOFT 0x1100 +#define AL_MONO16_SOFT 0x1101 +#define AL_MONO32F_SOFT 0x10010 +#define AL_STEREO8_SOFT 0x1102 +#define AL_STEREO16_SOFT 0x1103 +#define AL_STEREO32F_SOFT 0x10011 +#define AL_QUAD8_SOFT 0x1204 +#define AL_QUAD16_SOFT 0x1205 +#define AL_QUAD32F_SOFT 0x1206 +#define AL_REAR8_SOFT 0x1207 +#define AL_REAR16_SOFT 0x1208 +#define AL_REAR32F_SOFT 0x1209 +#define AL_5POINT1_8_SOFT 0x120A +#define AL_5POINT1_16_SOFT 0x120B +#define AL_5POINT1_32F_SOFT 0x120C +#define AL_6POINT1_8_SOFT 0x120D +#define AL_6POINT1_16_SOFT 0x120E +#define AL_6POINT1_32F_SOFT 0x120F +#define AL_7POINT1_8_SOFT 0x1210 +#define AL_7POINT1_16_SOFT 0x1211 +#define AL_7POINT1_32F_SOFT 0x1212 + +/* Buffer attributes */ +#define AL_INTERNAL_FORMAT_SOFT 0x2008 +#define AL_BYTE_LENGTH_SOFT 0x2009 +#define AL_SAMPLE_LENGTH_SOFT 0x200A +#define AL_SEC_LENGTH_SOFT 0x200B + +typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); +typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data); +AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); +#endif +#endif + +#ifndef AL_SOFT_direct_channels +#define AL_SOFT_direct_channels 1 +#define AL_DIRECT_CHANNELS_SOFT 0x1033 +#endif + +#ifndef ALC_SOFT_loopback +#define ALC_SOFT_loopback 1 +#define ALC_FORMAT_CHANNELS_SOFT 0x1990 +#define ALC_FORMAT_TYPE_SOFT 0x1991 + +/* Sample types */ +#define ALC_BYTE_SOFT 0x1400 +#define ALC_UNSIGNED_BYTE_SOFT 0x1401 +#define ALC_SHORT_SOFT 0x1402 +#define ALC_UNSIGNED_SHORT_SOFT 0x1403 +#define ALC_INT_SOFT 0x1404 +#define ALC_UNSIGNED_INT_SOFT 0x1405 +#define ALC_FLOAT_SOFT 0x1406 + +/* Channel configurations */ +#define ALC_MONO_SOFT 0x1500 +#define ALC_STEREO_SOFT 0x1501 +#define ALC_QUAD_SOFT 0x1503 +#define ALC_5POINT1_SOFT 0x1504 +#define ALC_6POINT1_SOFT 0x1505 +#define ALC_7POINT1_SOFT 0x1506 + +typedef ALCdevice* (ALC_APIENTRY*LPALCLOOPBACKOPENDEVICESOFT)(const ALCchar*); +typedef ALCboolean (ALC_APIENTRY*LPALCISRENDERFORMATSUPPORTEDSOFT)(ALCdevice*,ALCsizei,ALCenum,ALCenum); +typedef void (ALC_APIENTRY*LPALCRENDERSAMPLESSOFT)(ALCdevice*,ALCvoid*,ALCsizei); +#ifdef AL_ALEXT_PROTOTYPES +ALC_API ALCdevice* ALC_APIENTRY alcLoopbackOpenDeviceSOFT(const ALCchar *deviceName); +ALC_API ALCboolean ALC_APIENTRY alcIsRenderFormatSupportedSOFT(ALCdevice *device, ALCsizei freq, ALCenum channels, ALCenum type); +ALC_API void ALC_APIENTRY alcRenderSamplesSOFT(ALCdevice *device, ALCvoid *buffer, ALCsizei samples); +#endif +#endif + +#ifndef AL_EXT_STEREO_ANGLES +#define AL_EXT_STEREO_ANGLES 1 +#define AL_STEREO_ANGLES 0x1030 +#endif + +#ifndef AL_EXT_SOURCE_RADIUS +#define AL_EXT_SOURCE_RADIUS 1 +#define AL_SOURCE_RADIUS 0x1031 +#endif + +#ifndef AL_SOFT_source_latency +#define AL_SOFT_source_latency 1 +#define AL_SAMPLE_OFFSET_LATENCY_SOFT 0x1200 +#define AL_SEC_OFFSET_LATENCY_SOFT 0x1201 +typedef int64_t ALint64SOFT; +typedef uint64_t ALuint64SOFT; +typedef void (AL_APIENTRY*LPALSOURCEDSOFT)(ALuint,ALenum,ALdouble); +typedef void (AL_APIENTRY*LPALSOURCE3DSOFT)(ALuint,ALenum,ALdouble,ALdouble,ALdouble); +typedef void (AL_APIENTRY*LPALSOURCEDVSOFT)(ALuint,ALenum,const ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCEDSOFT)(ALuint,ALenum,ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCE3DSOFT)(ALuint,ALenum,ALdouble*,ALdouble*,ALdouble*); +typedef void (AL_APIENTRY*LPALGETSOURCEDVSOFT)(ALuint,ALenum,ALdouble*); +typedef void (AL_APIENTRY*LPALSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT); +typedef void (AL_APIENTRY*LPALSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT,ALint64SOFT,ALint64SOFT); +typedef void (AL_APIENTRY*LPALSOURCEI64VSOFT)(ALuint,ALenum,const ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT*,ALint64SOFT*,ALint64SOFT*); +typedef void (AL_APIENTRY*LPALGETSOURCEI64VSOFT)(ALuint,ALenum,ALint64SOFT*); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alSourcedSOFT(ALuint source, ALenum param, ALdouble value); +AL_API void AL_APIENTRY alSource3dSOFT(ALuint source, ALenum param, ALdouble value1, ALdouble value2, ALdouble value3); +AL_API void AL_APIENTRY alSourcedvSOFT(ALuint source, ALenum param, const ALdouble *values); +AL_API void AL_APIENTRY alGetSourcedSOFT(ALuint source, ALenum param, ALdouble *value); +AL_API void AL_APIENTRY alGetSource3dSOFT(ALuint source, ALenum param, ALdouble *value1, ALdouble *value2, ALdouble *value3); +AL_API void AL_APIENTRY alGetSourcedvSOFT(ALuint source, ALenum param, ALdouble *values); +AL_API void AL_APIENTRY alSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT value); +AL_API void AL_APIENTRY alSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT value1, ALint64SOFT value2, ALint64SOFT value3); +AL_API void AL_APIENTRY alSourcei64vSOFT(ALuint source, ALenum param, const ALint64SOFT *values); +AL_API void AL_APIENTRY alGetSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT *value); +AL_API void AL_APIENTRY alGetSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT *value1, ALint64SOFT *value2, ALint64SOFT *value3); +AL_API void AL_APIENTRY alGetSourcei64vSOFT(ALuint source, ALenum param, ALint64SOFT *values); +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/neo/libs/openal-soft/include/AL/efx-creative.h b/neo/libs/openal-soft/include/AL/efx-creative.h new file mode 100644 index 00000000..0a04c982 --- /dev/null +++ b/neo/libs/openal-soft/include/AL/efx-creative.h @@ -0,0 +1,3 @@ +/* The tokens that would be defined here are already defined in efx.h. This + * empty file is here to provide compatibility with Windows-based projects + * that would include it. */ diff --git a/neo/libs/openal-soft/include/AL/efx-presets.h b/neo/libs/openal-soft/include/AL/efx-presets.h new file mode 100644 index 00000000..86dcbda2 --- /dev/null +++ b/neo/libs/openal-soft/include/AL/efx-presets.h @@ -0,0 +1,402 @@ +/* Reverb presets for EFX */ + +#ifndef EFX_PRESETS_H +#define EFX_PRESETS_H + +#ifndef EFXEAXREVERBPROPERTIES_DEFINED +#define EFXEAXREVERBPROPERTIES_DEFINED +typedef struct { + float flDensity; + float flDiffusion; + float flGain; + float flGainHF; + float flGainLF; + float flDecayTime; + float flDecayHFRatio; + float flDecayLFRatio; + float flReflectionsGain; + float flReflectionsDelay; + float flReflectionsPan[3]; + float flLateReverbGain; + float flLateReverbDelay; + float flLateReverbPan[3]; + float flEchoTime; + float flEchoDepth; + float flModulationTime; + float flModulationDepth; + float flAirAbsorptionGainHF; + float flHFReference; + float flLFReference; + float flRoomRolloffFactor; + int iDecayHFLimit; +} EFXEAXREVERBPROPERTIES, *LPEFXEAXREVERBPROPERTIES; +#endif + +/* Default Presets */ + +#define EFX_REVERB_PRESET_GENERIC \ + { 1.0000f, 1.0000f, 0.3162f, 0.8913f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PADDEDCELL \ + { 0.1715f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.1700f, 0.1000f, 1.0000f, 0.2500f, 0.0010f, { 0.0000f, 0.0000f, 0.0000f }, 1.2691f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ROOM \ + { 0.4287f, 1.0000f, 0.3162f, 0.5929f, 1.0000f, 0.4000f, 0.8300f, 1.0000f, 0.1503f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.0629f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_BATHROOM \ + { 0.1715f, 1.0000f, 0.3162f, 0.2512f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.6531f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 3.2734f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_LIVINGROOM \ + { 0.9766f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.5000f, 0.1000f, 1.0000f, 0.2051f, 0.0030f, { 0.0000f, 0.0000f, 0.0000f }, 0.2805f, 0.0040f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_STONEROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 2.3100f, 0.6400f, 1.0000f, 0.4411f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1003f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_AUDITORIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.5781f, 1.0000f, 4.3200f, 0.5900f, 1.0000f, 0.4032f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7170f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CONCERTHALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.5623f, 1.0000f, 3.9200f, 0.7000f, 1.0000f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.9977f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CAVE \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 2.9100f, 1.3000f, 1.0000f, 0.5000f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.7063f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_ARENA \ + { 1.0000f, 1.0000f, 0.3162f, 0.4477f, 1.0000f, 7.2400f, 0.3300f, 1.0000f, 0.2612f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.0186f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_HANGAR \ + { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 10.0500f, 0.2300f, 1.0000f, 0.5000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2560f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CARPETEDHALLWAY \ + { 0.4287f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 0.3000f, 0.1000f, 1.0000f, 0.1215f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 0.1531f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_HALLWAY \ + { 0.3645f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 1.4900f, 0.5900f, 1.0000f, 0.2458f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.6615f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_STONECORRIDOR \ + { 1.0000f, 1.0000f, 0.3162f, 0.7612f, 1.0000f, 2.7000f, 0.7900f, 1.0000f, 0.2472f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 1.5758f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ALLEY \ + { 1.0000f, 0.3000f, 0.3162f, 0.7328f, 1.0000f, 1.4900f, 0.8600f, 1.0000f, 0.2500f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.9954f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.9500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FOREST \ + { 1.0000f, 0.3000f, 0.3162f, 0.0224f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.0525f, 0.1620f, { 0.0000f, 0.0000f, 0.0000f }, 0.7682f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY \ + { 1.0000f, 0.5000f, 0.3162f, 0.3981f, 1.0000f, 1.4900f, 0.6700f, 1.0000f, 0.0730f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1427f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_MOUNTAINS \ + { 1.0000f, 0.2700f, 0.3162f, 0.0562f, 1.0000f, 1.4900f, 0.2100f, 1.0000f, 0.0407f, 0.3000f, { 0.0000f, 0.0000f, 0.0000f }, 0.1919f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_QUARRY \ + { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0000f, 0.0610f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.7000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PLAIN \ + { 1.0000f, 0.2100f, 0.3162f, 0.1000f, 1.0000f, 1.4900f, 0.5000f, 1.0000f, 0.0585f, 0.1790f, { 0.0000f, 0.0000f, 0.0000f }, 0.1089f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PARKINGLOT \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 1.6500f, 1.5000f, 1.0000f, 0.2082f, 0.0080f, { 0.0000f, 0.0000f, 0.0000f }, 0.2652f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SEWERPIPE \ + { 0.3071f, 0.8000f, 0.3162f, 0.3162f, 1.0000f, 2.8100f, 0.1400f, 1.0000f, 1.6387f, 0.0140f, { 0.0000f, 0.0000f, 0.0000f }, 3.2471f, 0.0210f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_UNDERWATER \ + { 0.3645f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 1.4900f, 0.1000f, 1.0000f, 0.5963f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 7.0795f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 1.1800f, 0.3480f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRUGGED \ + { 0.4287f, 0.5000f, 0.3162f, 1.0000f, 1.0000f, 8.3900f, 1.3900f, 1.0000f, 0.8760f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 3.1081f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DIZZY \ + { 0.3645f, 0.6000f, 0.3162f, 0.6310f, 1.0000f, 17.2300f, 0.5600f, 1.0000f, 0.1392f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4937f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.8100f, 0.3100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PSYCHOTIC \ + { 0.0625f, 0.5000f, 0.3162f, 0.8404f, 1.0000f, 7.5600f, 0.9100f, 1.0000f, 0.4864f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 2.4378f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 4.0000f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Castle Presets */ + +#define EFX_REVERB_PRESET_CASTLE_SMALLROOM \ + { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 1.2200f, 0.8300f, 0.3100f, 0.8913f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_SHORTPASSAGE \ + { 1.0000f, 0.8900f, 0.3162f, 0.3162f, 0.1000f, 2.3200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_MEDIUMROOM \ + { 1.0000f, 0.9300f, 0.3162f, 0.2818f, 0.1000f, 2.0400f, 0.8300f, 0.4600f, 0.6310f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1550f, 0.0300f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_LARGEROOM \ + { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.1259f, 2.5300f, 0.8300f, 0.5000f, 0.4467f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1850f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_LONGPASSAGE \ + { 1.0000f, 0.8900f, 0.3162f, 0.3981f, 0.1000f, 3.4200f, 0.8300f, 0.3100f, 0.8913f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_HALL \ + { 1.0000f, 0.8100f, 0.3162f, 0.2818f, 0.1778f, 3.1400f, 0.7900f, 0.6200f, 0.1778f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_CUPBOARD \ + { 1.0000f, 0.8900f, 0.3162f, 0.2818f, 0.1000f, 0.6700f, 0.8700f, 0.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 3.5481f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CASTLE_COURTYARD \ + { 1.0000f, 0.4200f, 0.3162f, 0.4467f, 0.1995f, 2.1300f, 0.6100f, 0.2300f, 0.2239f, 0.1600f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3700f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CASTLE_ALCOVE \ + { 1.0000f, 0.8900f, 0.3162f, 0.5012f, 0.1000f, 1.6400f, 0.8700f, 0.3100f, 1.0000f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1380f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 5168.6001f, 139.5000f, 0.0000f, 0x1 } + +/* Factory Presets */ + +#define EFX_REVERB_PRESET_FACTORY_SMALLROOM \ + { 0.3645f, 0.8200f, 0.3162f, 0.7943f, 0.5012f, 1.7200f, 0.6500f, 1.3100f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.1190f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_SHORTPASSAGE \ + { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 2.5300f, 0.6500f, 1.3100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_MEDIUMROOM \ + { 0.4287f, 0.8200f, 0.2512f, 0.7943f, 0.5012f, 2.7600f, 0.6500f, 1.3100f, 0.2818f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1740f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_LARGEROOM \ + { 0.4287f, 0.7500f, 0.2512f, 0.7079f, 0.6310f, 4.2400f, 0.5100f, 1.3100f, 0.1778f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2310f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_LONGPASSAGE \ + { 0.3645f, 0.6400f, 0.2512f, 0.7943f, 0.5012f, 4.0600f, 0.6500f, 1.3100f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.1350f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_HALL \ + { 0.4287f, 0.7500f, 0.3162f, 0.7079f, 0.6310f, 7.4300f, 0.5100f, 1.3100f, 0.0631f, 0.0730f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_CUPBOARD \ + { 0.3071f, 0.6300f, 0.2512f, 0.7943f, 0.5012f, 0.4900f, 0.6500f, 1.3100f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.1070f, 0.0700f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_COURTYARD \ + { 0.3071f, 0.5700f, 0.3162f, 0.3162f, 0.6310f, 2.3200f, 0.2900f, 0.5600f, 0.2239f, 0.1400f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2900f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_FACTORY_ALCOVE \ + { 0.3645f, 0.5900f, 0.2512f, 0.7943f, 0.5012f, 3.1400f, 0.6500f, 1.3100f, 1.4125f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.1140f, 0.1000f, 0.2500f, 0.0000f, 0.9943f, 3762.6001f, 362.5000f, 0.0000f, 0x1 } + +/* Ice Palace Presets */ + +#define EFX_REVERB_PRESET_ICEPALACE_SMALLROOM \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 1.5100f, 1.5300f, 0.2700f, 0.8913f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1640f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_SHORTPASSAGE \ + { 1.0000f, 0.7500f, 0.3162f, 0.5623f, 0.2818f, 1.7900f, 1.4600f, 0.2800f, 0.5012f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_MEDIUMROOM \ + { 1.0000f, 0.8700f, 0.3162f, 0.5623f, 0.4467f, 2.2200f, 1.5300f, 0.3200f, 0.3981f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_LARGEROOM \ + { 1.0000f, 0.8100f, 0.3162f, 0.5623f, 0.4467f, 3.1400f, 1.5300f, 0.3200f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0270f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_LONGPASSAGE \ + { 1.0000f, 0.7700f, 0.3162f, 0.5623f, 0.3981f, 3.0100f, 1.4600f, 0.2800f, 0.7943f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0250f, { 0.0000f, 0.0000f, 0.0000f }, 0.1860f, 0.0400f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_HALL \ + { 1.0000f, 0.7600f, 0.3162f, 0.4467f, 0.5623f, 5.4900f, 1.5300f, 0.3800f, 0.1122f, 0.0540f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0520f, { 0.0000f, 0.0000f, 0.0000f }, 0.2260f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_CUPBOARD \ + { 1.0000f, 0.8300f, 0.3162f, 0.5012f, 0.2239f, 0.7600f, 1.5300f, 0.2600f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1430f, 0.0800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_COURTYARD \ + { 1.0000f, 0.5900f, 0.3162f, 0.2818f, 0.3162f, 2.0400f, 1.2000f, 0.3800f, 0.3162f, 0.1730f, { 0.0000f, 0.0000f, 0.0000f }, 0.3162f, 0.0430f, { 0.0000f, 0.0000f, 0.0000f }, 0.2350f, 0.4800f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_ICEPALACE_ALCOVE \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 0.2818f, 2.7600f, 1.4600f, 0.2800f, 1.1220f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1610f, 0.0900f, 0.2500f, 0.0000f, 0.9943f, 12428.5000f, 99.6000f, 0.0000f, 0x1 } + +/* Space Station Presets */ + +#define EFX_REVERB_PRESET_SPACESTATION_SMALLROOM \ + { 0.2109f, 0.7000f, 0.3162f, 0.7079f, 0.8913f, 1.7200f, 0.8200f, 0.5500f, 0.7943f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0130f, { 0.0000f, 0.0000f, 0.0000f }, 0.1880f, 0.2600f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_SHORTPASSAGE \ + { 0.2109f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 3.5700f, 0.5000f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.1720f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_MEDIUMROOM \ + { 0.2109f, 0.7500f, 0.3162f, 0.6310f, 0.8913f, 3.0100f, 0.5000f, 0.5500f, 0.3981f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2090f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_LARGEROOM \ + { 0.3645f, 0.8100f, 0.3162f, 0.6310f, 0.8913f, 3.8900f, 0.3800f, 0.6100f, 0.3162f, 0.0560f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0350f, { 0.0000f, 0.0000f, 0.0000f }, 0.2330f, 0.2800f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_LONGPASSAGE \ + { 0.4287f, 0.8200f, 0.3162f, 0.6310f, 0.8913f, 4.6200f, 0.6200f, 0.5500f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2300f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_HALL \ + { 0.4287f, 0.8700f, 0.3162f, 0.6310f, 0.8913f, 7.1100f, 0.3800f, 0.6100f, 0.1778f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2500f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_CUPBOARD \ + { 0.1715f, 0.5600f, 0.3162f, 0.7079f, 0.8913f, 0.7900f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.7783f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1810f, 0.3100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPACESTATION_ALCOVE \ + { 0.2109f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.1600f, 0.8100f, 0.5500f, 1.4125f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0180f, { 0.0000f, 0.0000f, 0.0000f }, 0.1920f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 3316.1001f, 458.2000f, 0.0000f, 0x1 } + +/* Wooden Galleon Presets */ + +#define EFX_REVERB_PRESET_WOODEN_SMALLROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.1122f, 0.3162f, 0.7900f, 0.3200f, 0.8700f, 1.0000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_SHORTPASSAGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.7500f, 0.5000f, 0.8700f, 0.8913f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.6310f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_MEDIUMROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.2818f, 1.4700f, 0.4200f, 0.8200f, 0.8913f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_LARGEROOM \ + { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.2818f, 2.6500f, 0.3300f, 0.8200f, 0.8913f, 0.0660f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_LONGPASSAGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1000f, 0.3162f, 1.9900f, 0.4000f, 0.7900f, 1.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.4467f, 0.0360f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_HALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.0794f, 0.2818f, 3.4500f, 0.3000f, 0.8200f, 0.8913f, 0.0880f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_CUPBOARD \ + { 1.0000f, 1.0000f, 0.3162f, 0.1413f, 0.3162f, 0.5600f, 0.4600f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_COURTYARD \ + { 1.0000f, 0.6500f, 0.3162f, 0.0794f, 0.3162f, 1.7900f, 0.3500f, 0.7900f, 0.5623f, 0.1230f, { 0.0000f, 0.0000f, 0.0000f }, 0.1000f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_WOODEN_ALCOVE \ + { 1.0000f, 1.0000f, 0.3162f, 0.1259f, 0.3162f, 1.2200f, 0.6200f, 0.9100f, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 4705.0000f, 99.6000f, 0.0000f, 0x1 } + +/* Sports Presets */ + +#define EFX_REVERB_PRESET_SPORT_EMPTYSTADIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.4467f, 0.7943f, 6.2600f, 0.5100f, 1.1000f, 0.0631f, 0.1830f, { 0.0000f, 0.0000f, 0.0000f }, 0.3981f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_SQUASHCOURT \ + { 1.0000f, 0.7500f, 0.3162f, 0.3162f, 0.7943f, 2.2200f, 0.9100f, 1.1600f, 0.4467f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.1260f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \ + { 1.0000f, 0.7000f, 0.3162f, 0.7943f, 0.8913f, 2.7600f, 1.2500f, 1.1400f, 0.6310f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SPORT_LARGESWIMMINGPOOL \ + { 1.0000f, 0.8200f, 0.3162f, 0.7943f, 1.0000f, 5.4900f, 1.3100f, 1.1400f, 0.4467f, 0.0390f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2220f, 0.5500f, 1.1590f, 0.2100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_SPORT_GYMNASIUM \ + { 1.0000f, 0.8100f, 0.3162f, 0.4467f, 0.8913f, 3.1400f, 1.0600f, 1.3500f, 0.3981f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0450f, { 0.0000f, 0.0000f, 0.0000f }, 0.1460f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_FULLSTADIUM \ + { 1.0000f, 1.0000f, 0.3162f, 0.0708f, 0.7943f, 5.2500f, 0.1700f, 0.8000f, 0.1000f, 0.1880f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0380f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SPORT_STADIUMTANNOY \ + { 1.0000f, 0.7800f, 0.3162f, 0.5623f, 0.5012f, 2.5300f, 0.8800f, 0.6800f, 0.2818f, 0.2300f, { 0.0000f, 0.0000f, 0.0000f }, 0.5012f, 0.0630f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +/* Prefab Presets */ + +#define EFX_REVERB_PRESET_PREFAB_WORKSHOP \ + { 0.4287f, 1.0000f, 0.3162f, 0.1413f, 0.3981f, 0.7600f, 1.0000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PREFAB_SCHOOLROOM \ + { 0.4022f, 0.6900f, 0.3162f, 0.6310f, 0.5012f, 0.9800f, 0.4500f, 0.1800f, 1.4125f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PREFAB_PRACTISEROOM \ + { 0.4022f, 0.8700f, 0.3162f, 0.3981f, 0.5012f, 1.1200f, 0.5600f, 0.1800f, 1.2589f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0110f, { 0.0000f, 0.0000f, 0.0000f }, 0.0950f, 0.1400f, 0.2500f, 0.0000f, 0.9943f, 7176.8999f, 211.2000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PREFAB_OUTHOUSE \ + { 1.0000f, 0.8200f, 0.3162f, 0.1122f, 0.1585f, 1.3800f, 0.3800f, 0.3500f, 0.8913f, 0.0240f, { 0.0000f, 0.0000f, -0.0000f }, 0.6310f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.1210f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PREFAB_CARAVAN \ + { 1.0000f, 1.0000f, 0.3162f, 0.0891f, 0.1259f, 0.4300f, 1.5000f, 1.0000f, 1.0000f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 1.9953f, 0.0120f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Dome and Pipe Presets */ + +#define EFX_REVERB_PRESET_DOME_TOMB \ + { 1.0000f, 0.7900f, 0.3162f, 0.3548f, 0.2239f, 4.1800f, 0.2100f, 0.1000f, 0.3868f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 1.6788f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.1770f, 0.1900f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PIPE_SMALL \ + { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 5.0400f, 0.1000f, 0.1000f, 0.5012f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 2.5119f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DOME_SAINTPAULS \ + { 1.0000f, 0.8700f, 0.3162f, 0.3548f, 0.2239f, 10.4800f, 0.1900f, 0.1000f, 0.1778f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0420f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1200f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PIPE_LONGTHIN \ + { 0.2560f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 9.2100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_PIPE_LARGE \ + { 1.0000f, 1.0000f, 0.3162f, 0.3548f, 0.2239f, 8.4500f, 0.1000f, 0.1000f, 0.3981f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_PIPE_RESONANT \ + { 0.1373f, 0.9100f, 0.3162f, 0.4467f, 0.2818f, 6.8100f, 0.1800f, 0.1000f, 0.7079f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.0000f, 0.0220f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 20.0000f, 0.0000f, 0x0 } + +/* Outdoors Presets */ + +#define EFX_REVERB_PRESET_OUTDOORS_BACKYARD \ + { 1.0000f, 0.4500f, 0.3162f, 0.2512f, 0.5012f, 1.1200f, 0.3400f, 0.4600f, 0.4467f, 0.0690f, { 0.0000f, 0.0000f, -0.0000f }, 0.7079f, 0.0230f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \ + { 1.0000f, 0.0000f, 0.3162f, 0.0112f, 0.6310f, 2.1300f, 0.2100f, 0.4600f, 0.1778f, 0.3000f, { 0.0000f, 0.0000f, -0.0000f }, 0.4467f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_DEEPCANYON \ + { 1.0000f, 0.7400f, 0.3162f, 0.1778f, 0.6310f, 3.8900f, 0.2100f, 0.4600f, 0.3162f, 0.2230f, { 0.0000f, 0.0000f, -0.0000f }, 0.3548f, 0.0190f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_CREEK \ + { 1.0000f, 0.3500f, 0.3162f, 0.1778f, 0.5012f, 2.1300f, 0.2100f, 0.4600f, 0.3981f, 0.1150f, { 0.0000f, 0.0000f, -0.0000f }, 0.1995f, 0.0310f, { 0.0000f, 0.0000f, 0.0000f }, 0.2180f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 4399.1001f, 242.9000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_OUTDOORS_VALLEY \ + { 1.0000f, 0.2800f, 0.3162f, 0.0282f, 0.1585f, 2.8800f, 0.2600f, 0.3500f, 0.1413f, 0.2630f, { 0.0000f, 0.0000f, -0.0000f }, 0.3981f, 0.1000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.3400f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +/* Mood Presets */ + +#define EFX_REVERB_PRESET_MOOD_HEAVEN \ + { 1.0000f, 0.9400f, 0.3162f, 0.7943f, 0.4467f, 5.0400f, 1.1200f, 0.5600f, 0.2427f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0290f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0800f, 2.7420f, 0.0500f, 0.9977f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_MOOD_HELL \ + { 1.0000f, 0.5700f, 0.3162f, 0.3548f, 0.4467f, 3.5700f, 0.4900f, 2.0000f, 0.0000f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1100f, 0.0400f, 2.1090f, 0.5200f, 0.9943f, 5000.0000f, 139.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_MOOD_MEMORY \ + { 1.0000f, 0.8500f, 0.3162f, 0.6310f, 0.3548f, 4.0600f, 0.8200f, 0.5600f, 0.0398f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.1220f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.4740f, 0.4500f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +/* Driving Presets */ + +#define EFX_REVERB_PRESET_DRIVING_COMMENTATOR \ + { 1.0000f, 0.0000f, 3.1623f, 0.5623f, 0.5012f, 2.4200f, 0.8800f, 0.6800f, 0.1995f, 0.0930f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0170f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9886f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_PITGARAGE \ + { 0.4287f, 0.5900f, 0.3162f, 0.7079f, 0.5623f, 1.7200f, 0.9300f, 0.8700f, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0160f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_RACER \ + { 0.0832f, 0.8000f, 0.3162f, 1.0000f, 0.7943f, 0.1700f, 2.0000f, 0.4100f, 1.7783f, 0.0070f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0150f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_SPORTS \ + { 0.0832f, 0.8000f, 0.3162f, 0.6310f, 1.0000f, 0.1700f, 0.7500f, 0.4100f, 1.0000f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.5623f, 0.0000f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_INCAR_LUXURY \ + { 0.2560f, 1.0000f, 0.3162f, 0.1000f, 0.5012f, 0.1300f, 0.4100f, 0.4600f, 0.7943f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 1.5849f, 0.0100f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10268.2002f, 251.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_DRIVING_FULLGRANDSTAND \ + { 1.0000f, 1.0000f, 0.3162f, 0.2818f, 0.6310f, 3.0100f, 1.3700f, 1.2800f, 0.3548f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.1778f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \ + { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 0.7943f, 4.6200f, 1.7500f, 1.4000f, 0.2082f, 0.0900f, { 0.0000f, 0.0000f, 0.0000f }, 0.2512f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 10420.2002f, 250.0000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_DRIVING_TUNNEL \ + { 1.0000f, 0.8100f, 0.3162f, 0.3981f, 0.8913f, 3.4200f, 0.9400f, 1.3100f, 0.7079f, 0.0510f, { 0.0000f, 0.0000f, 0.0000f }, 0.7079f, 0.0470f, { 0.0000f, 0.0000f, 0.0000f }, 0.2140f, 0.0500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 155.3000f, 0.0000f, 0x1 } + +/* City Presets */ + +#define EFX_REVERB_PRESET_CITY_STREETS \ + { 1.0000f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.7900f, 1.1200f, 0.9100f, 0.2818f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 0.1995f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_SUBWAY \ + { 1.0000f, 0.7400f, 0.3162f, 0.7079f, 0.8913f, 3.0100f, 1.2300f, 0.9100f, 0.7079f, 0.0460f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0280f, { 0.0000f, 0.0000f, 0.0000f }, 0.1250f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_MUSEUM \ + { 1.0000f, 0.8200f, 0.3162f, 0.1778f, 0.1778f, 3.2800f, 1.4000f, 0.5700f, 0.2512f, 0.0390f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0340f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CITY_LIBRARY \ + { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.0891f, 2.7600f, 0.8900f, 0.4100f, 0.3548f, 0.0290f, { 0.0000f, 0.0000f, -0.0000f }, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 } + +#define EFX_REVERB_PRESET_CITY_UNDERPASS \ + { 1.0000f, 0.8200f, 0.3162f, 0.4467f, 0.8913f, 3.5700f, 1.1200f, 0.9100f, 0.3981f, 0.0590f, { 0.0000f, 0.0000f, 0.0000f }, 0.8913f, 0.0370f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.1400f, 0.2500f, 0.0000f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CITY_ABANDONED \ + { 1.0000f, 0.6900f, 0.3162f, 0.7943f, 0.8913f, 3.2800f, 1.1700f, 0.9100f, 0.4467f, 0.0440f, { 0.0000f, 0.0000f, 0.0000f }, 0.2818f, 0.0240f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9966f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +/* Misc. Presets */ + +#define EFX_REVERB_PRESET_DUSTYROOM \ + { 0.3645f, 0.5600f, 0.3162f, 0.7943f, 0.7079f, 1.7900f, 0.3800f, 0.2100f, 0.5012f, 0.0020f, { 0.0000f, 0.0000f, 0.0000f }, 1.2589f, 0.0060f, { 0.0000f, 0.0000f, 0.0000f }, 0.2020f, 0.0500f, 0.2500f, 0.0000f, 0.9886f, 13046.0000f, 163.3000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_CHAPEL \ + { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 1.0000f, 4.6200f, 0.6400f, 1.2300f, 0.4467f, 0.0320f, { 0.0000f, 0.0000f, 0.0000f }, 0.7943f, 0.0490f, { 0.0000f, 0.0000f, 0.0000f }, 0.2500f, 0.0000f, 0.2500f, 0.1100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 } + +#define EFX_REVERB_PRESET_SMALLWATERROOM \ + { 1.0000f, 0.7000f, 0.3162f, 0.4477f, 1.0000f, 1.5100f, 1.2500f, 1.1400f, 0.8913f, 0.0200f, { 0.0000f, 0.0000f, 0.0000f }, 1.4125f, 0.0300f, { 0.0000f, 0.0000f, 0.0000f }, 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } + +#endif /* EFX_PRESETS_H */ diff --git a/neo/libs/openal-soft/include/AL/efx.h b/neo/libs/openal-soft/include/AL/efx.h new file mode 100644 index 00000000..57766983 --- /dev/null +++ b/neo/libs/openal-soft/include/AL/efx.h @@ -0,0 +1,761 @@ +#ifndef AL_EFX_H +#define AL_EFX_H + + +#include "alc.h" +#include "al.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ALC_EXT_EFX_NAME "ALC_EXT_EFX" + +#define ALC_EFX_MAJOR_VERSION 0x20001 +#define ALC_EFX_MINOR_VERSION 0x20002 +#define ALC_MAX_AUXILIARY_SENDS 0x20003 + + +/* Listener properties. */ +#define AL_METERS_PER_UNIT 0x20004 + +/* Source properties. */ +#define AL_DIRECT_FILTER 0x20005 +#define AL_AUXILIARY_SEND_FILTER 0x20006 +#define AL_AIR_ABSORPTION_FACTOR 0x20007 +#define AL_ROOM_ROLLOFF_FACTOR 0x20008 +#define AL_CONE_OUTER_GAINHF 0x20009 +#define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A +#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B +#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C + + +/* Effect properties. */ + +/* Reverb effect parameters */ +#define AL_REVERB_DENSITY 0x0001 +#define AL_REVERB_DIFFUSION 0x0002 +#define AL_REVERB_GAIN 0x0003 +#define AL_REVERB_GAINHF 0x0004 +#define AL_REVERB_DECAY_TIME 0x0005 +#define AL_REVERB_DECAY_HFRATIO 0x0006 +#define AL_REVERB_REFLECTIONS_GAIN 0x0007 +#define AL_REVERB_REFLECTIONS_DELAY 0x0008 +#define AL_REVERB_LATE_REVERB_GAIN 0x0009 +#define AL_REVERB_LATE_REVERB_DELAY 0x000A +#define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B +#define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C +#define AL_REVERB_DECAY_HFLIMIT 0x000D + +/* EAX Reverb effect parameters */ +#define AL_EAXREVERB_DENSITY 0x0001 +#define AL_EAXREVERB_DIFFUSION 0x0002 +#define AL_EAXREVERB_GAIN 0x0003 +#define AL_EAXREVERB_GAINHF 0x0004 +#define AL_EAXREVERB_GAINLF 0x0005 +#define AL_EAXREVERB_DECAY_TIME 0x0006 +#define AL_EAXREVERB_DECAY_HFRATIO 0x0007 +#define AL_EAXREVERB_DECAY_LFRATIO 0x0008 +#define AL_EAXREVERB_REFLECTIONS_GAIN 0x0009 +#define AL_EAXREVERB_REFLECTIONS_DELAY 0x000A +#define AL_EAXREVERB_REFLECTIONS_PAN 0x000B +#define AL_EAXREVERB_LATE_REVERB_GAIN 0x000C +#define AL_EAXREVERB_LATE_REVERB_DELAY 0x000D +#define AL_EAXREVERB_LATE_REVERB_PAN 0x000E +#define AL_EAXREVERB_ECHO_TIME 0x000F +#define AL_EAXREVERB_ECHO_DEPTH 0x0010 +#define AL_EAXREVERB_MODULATION_TIME 0x0011 +#define AL_EAXREVERB_MODULATION_DEPTH 0x0012 +#define AL_EAXREVERB_AIR_ABSORPTION_GAINHF 0x0013 +#define AL_EAXREVERB_HFREFERENCE 0x0014 +#define AL_EAXREVERB_LFREFERENCE 0x0015 +#define AL_EAXREVERB_ROOM_ROLLOFF_FACTOR 0x0016 +#define AL_EAXREVERB_DECAY_HFLIMIT 0x0017 + +/* Chorus effect parameters */ +#define AL_CHORUS_WAVEFORM 0x0001 +#define AL_CHORUS_PHASE 0x0002 +#define AL_CHORUS_RATE 0x0003 +#define AL_CHORUS_DEPTH 0x0004 +#define AL_CHORUS_FEEDBACK 0x0005 +#define AL_CHORUS_DELAY 0x0006 + +/* Distortion effect parameters */ +#define AL_DISTORTION_EDGE 0x0001 +#define AL_DISTORTION_GAIN 0x0002 +#define AL_DISTORTION_LOWPASS_CUTOFF 0x0003 +#define AL_DISTORTION_EQCENTER 0x0004 +#define AL_DISTORTION_EQBANDWIDTH 0x0005 + +/* Echo effect parameters */ +#define AL_ECHO_DELAY 0x0001 +#define AL_ECHO_LRDELAY 0x0002 +#define AL_ECHO_DAMPING 0x0003 +#define AL_ECHO_FEEDBACK 0x0004 +#define AL_ECHO_SPREAD 0x0005 + +/* Flanger effect parameters */ +#define AL_FLANGER_WAVEFORM 0x0001 +#define AL_FLANGER_PHASE 0x0002 +#define AL_FLANGER_RATE 0x0003 +#define AL_FLANGER_DEPTH 0x0004 +#define AL_FLANGER_FEEDBACK 0x0005 +#define AL_FLANGER_DELAY 0x0006 + +/* Frequency shifter effect parameters */ +#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001 +#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002 +#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003 + +/* Vocal morpher effect parameters */ +#define AL_VOCAL_MORPHER_PHONEMEA 0x0001 +#define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002 +#define AL_VOCAL_MORPHER_PHONEMEB 0x0003 +#define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004 +#define AL_VOCAL_MORPHER_WAVEFORM 0x0005 +#define AL_VOCAL_MORPHER_RATE 0x0006 + +/* Pitchshifter effect parameters */ +#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 +#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 + +/* Ringmodulator effect parameters */ +#define AL_RING_MODULATOR_FREQUENCY 0x0001 +#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 +#define AL_RING_MODULATOR_WAVEFORM 0x0003 + +/* Autowah effect parameters */ +#define AL_AUTOWAH_ATTACK_TIME 0x0001 +#define AL_AUTOWAH_RELEASE_TIME 0x0002 +#define AL_AUTOWAH_RESONANCE 0x0003 +#define AL_AUTOWAH_PEAK_GAIN 0x0004 + +/* Compressor effect parameters */ +#define AL_COMPRESSOR_ONOFF 0x0001 + +/* Equalizer effect parameters */ +#define AL_EQUALIZER_LOW_GAIN 0x0001 +#define AL_EQUALIZER_LOW_CUTOFF 0x0002 +#define AL_EQUALIZER_MID1_GAIN 0x0003 +#define AL_EQUALIZER_MID1_CENTER 0x0004 +#define AL_EQUALIZER_MID1_WIDTH 0x0005 +#define AL_EQUALIZER_MID2_GAIN 0x0006 +#define AL_EQUALIZER_MID2_CENTER 0x0007 +#define AL_EQUALIZER_MID2_WIDTH 0x0008 +#define AL_EQUALIZER_HIGH_GAIN 0x0009 +#define AL_EQUALIZER_HIGH_CUTOFF 0x000A + +/* Effect type */ +#define AL_EFFECT_FIRST_PARAMETER 0x0000 +#define AL_EFFECT_LAST_PARAMETER 0x8000 +#define AL_EFFECT_TYPE 0x8001 + +/* Effect types, used with the AL_EFFECT_TYPE property */ +#define AL_EFFECT_NULL 0x0000 +#define AL_EFFECT_REVERB 0x0001 +#define AL_EFFECT_CHORUS 0x0002 +#define AL_EFFECT_DISTORTION 0x0003 +#define AL_EFFECT_ECHO 0x0004 +#define AL_EFFECT_FLANGER 0x0005 +#define AL_EFFECT_FREQUENCY_SHIFTER 0x0006 +#define AL_EFFECT_VOCAL_MORPHER 0x0007 +#define AL_EFFECT_PITCH_SHIFTER 0x0008 +#define AL_EFFECT_RING_MODULATOR 0x0009 +#define AL_EFFECT_AUTOWAH 0x000A +#define AL_EFFECT_COMPRESSOR 0x000B +#define AL_EFFECT_EQUALIZER 0x000C +#define AL_EFFECT_EAXREVERB 0x8000 + +/* Auxiliary Effect Slot properties. */ +#define AL_EFFECTSLOT_EFFECT 0x0001 +#define AL_EFFECTSLOT_GAIN 0x0002 +#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 + +/* NULL Auxiliary Slot ID to disable a source send. */ +#define AL_EFFECTSLOT_NULL 0x0000 + + +/* Filter properties. */ + +/* Lowpass filter parameters */ +#define AL_LOWPASS_GAIN 0x0001 +#define AL_LOWPASS_GAINHF 0x0002 + +/* Highpass filter parameters */ +#define AL_HIGHPASS_GAIN 0x0001 +#define AL_HIGHPASS_GAINLF 0x0002 + +/* Bandpass filter parameters */ +#define AL_BANDPASS_GAIN 0x0001 +#define AL_BANDPASS_GAINLF 0x0002 +#define AL_BANDPASS_GAINHF 0x0003 + +/* Filter type */ +#define AL_FILTER_FIRST_PARAMETER 0x0000 +#define AL_FILTER_LAST_PARAMETER 0x8000 +#define AL_FILTER_TYPE 0x8001 + +/* Filter types, used with the AL_FILTER_TYPE property */ +#define AL_FILTER_NULL 0x0000 +#define AL_FILTER_LOWPASS 0x0001 +#define AL_FILTER_HIGHPASS 0x0002 +#define AL_FILTER_BANDPASS 0x0003 + + +/* Effect object function types. */ +typedef void (AL_APIENTRY *LPALGENEFFECTS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEEFFECTS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISEFFECT)(ALuint); +typedef void (AL_APIENTRY *LPALEFFECTI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALEFFECTIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALEFFECTF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALEFFECTFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETEFFECTI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETEFFECTIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETEFFECTF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETEFFECTFV)(ALuint, ALenum, ALfloat*); + +/* Filter object function types. */ +typedef void (AL_APIENTRY *LPALGENFILTERS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEFILTERS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISFILTER)(ALuint); +typedef void (AL_APIENTRY *LPALFILTERI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALFILTERIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALFILTERF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALFILTERFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETFILTERI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETFILTERIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETFILTERF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETFILTERFV)(ALuint, ALenum, ALfloat*); + +/* Auxiliary Effect Slot object function types. */ +typedef void (AL_APIENTRY *LPALGENAUXILIARYEFFECTSLOTS)(ALsizei, ALuint*); +typedef void (AL_APIENTRY *LPALDELETEAUXILIARYEFFECTSLOTS)(ALsizei, const ALuint*); +typedef ALboolean (AL_APIENTRY *LPALISAUXILIARYEFFECTSLOT)(ALuint); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, const ALint*); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat); +typedef void (AL_APIENTRY *LPALAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, const ALfloat*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTI)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTIV)(ALuint, ALenum, ALint*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTF)(ALuint, ALenum, ALfloat*); +typedef void (AL_APIENTRY *LPALGETAUXILIARYEFFECTSLOTFV)(ALuint, ALenum, ALfloat*); + +#ifdef AL_ALEXT_PROTOTYPES +AL_API ALvoid AL_APIENTRY alGenEffects(ALsizei n, ALuint *effects); +AL_API ALvoid AL_APIENTRY alDeleteEffects(ALsizei n, const ALuint *effects); +AL_API ALboolean AL_APIENTRY alIsEffect(ALuint effect); +AL_API ALvoid AL_APIENTRY alEffecti(ALuint effect, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alEffectiv(ALuint effect, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alEffectf(ALuint effect, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alEffectfv(ALuint effect, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetEffecti(ALuint effect, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetEffectiv(ALuint effect, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetEffectf(ALuint effect, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *pflValues); + +AL_API ALvoid AL_APIENTRY alGenFilters(ALsizei n, ALuint *filters); +AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, const ALuint *filters); +AL_API ALboolean AL_APIENTRY alIsFilter(ALuint filter); +AL_API ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alFilteriv(ALuint filter, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alFilterf(ALuint filter, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alFilterfv(ALuint filter, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetFilterf(ALuint filter, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues); + +AL_API ALvoid AL_APIENTRY alGenAuxiliaryEffectSlots(ALsizei n, ALuint *effectslots); +AL_API ALvoid AL_APIENTRY alDeleteAuxiliaryEffectSlots(ALsizei n, const ALuint *effectslots); +AL_API ALboolean AL_APIENTRY alIsAuxiliaryEffectSlot(ALuint effectslot); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint iValue); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, const ALint *piValues); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat flValue); +AL_API ALvoid AL_APIENTRY alAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, const ALfloat *pflValues); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSloti(ALuint effectslot, ALenum param, ALint *piValue); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotiv(ALuint effectslot, ALenum param, ALint *piValues); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotf(ALuint effectslot, ALenum param, ALfloat *pflValue); +AL_API ALvoid AL_APIENTRY alGetAuxiliaryEffectSlotfv(ALuint effectslot, ALenum param, ALfloat *pflValues); +#endif + +/* Filter ranges and defaults. */ + +/* Lowpass filter */ +#define AL_LOWPASS_MIN_GAIN (0.0f) +#define AL_LOWPASS_MAX_GAIN (1.0f) +#define AL_LOWPASS_DEFAULT_GAIN (1.0f) + +#define AL_LOWPASS_MIN_GAINHF (0.0f) +#define AL_LOWPASS_MAX_GAINHF (1.0f) +#define AL_LOWPASS_DEFAULT_GAINHF (1.0f) + +/* Highpass filter */ +#define AL_HIGHPASS_MIN_GAIN (0.0f) +#define AL_HIGHPASS_MAX_GAIN (1.0f) +#define AL_HIGHPASS_DEFAULT_GAIN (1.0f) + +#define AL_HIGHPASS_MIN_GAINLF (0.0f) +#define AL_HIGHPASS_MAX_GAINLF (1.0f) +#define AL_HIGHPASS_DEFAULT_GAINLF (1.0f) + +/* Bandpass filter */ +#define AL_BANDPASS_MIN_GAIN (0.0f) +#define AL_BANDPASS_MAX_GAIN (1.0f) +#define AL_BANDPASS_DEFAULT_GAIN (1.0f) + +#define AL_BANDPASS_MIN_GAINHF (0.0f) +#define AL_BANDPASS_MAX_GAINHF (1.0f) +#define AL_BANDPASS_DEFAULT_GAINHF (1.0f) + +#define AL_BANDPASS_MIN_GAINLF (0.0f) +#define AL_BANDPASS_MAX_GAINLF (1.0f) +#define AL_BANDPASS_DEFAULT_GAINLF (1.0f) + + +/* Effect parameter ranges and defaults. */ + +/* Standard reverb effect */ +#define AL_REVERB_MIN_DENSITY (0.0f) +#define AL_REVERB_MAX_DENSITY (1.0f) +#define AL_REVERB_DEFAULT_DENSITY (1.0f) + +#define AL_REVERB_MIN_DIFFUSION (0.0f) +#define AL_REVERB_MAX_DIFFUSION (1.0f) +#define AL_REVERB_DEFAULT_DIFFUSION (1.0f) + +#define AL_REVERB_MIN_GAIN (0.0f) +#define AL_REVERB_MAX_GAIN (1.0f) +#define AL_REVERB_DEFAULT_GAIN (0.32f) + +#define AL_REVERB_MIN_GAINHF (0.0f) +#define AL_REVERB_MAX_GAINHF (1.0f) +#define AL_REVERB_DEFAULT_GAINHF (0.89f) + +#define AL_REVERB_MIN_DECAY_TIME (0.1f) +#define AL_REVERB_MAX_DECAY_TIME (20.0f) +#define AL_REVERB_DEFAULT_DECAY_TIME (1.49f) + +#define AL_REVERB_MIN_DECAY_HFRATIO (0.1f) +#define AL_REVERB_MAX_DECAY_HFRATIO (2.0f) +#define AL_REVERB_DEFAULT_DECAY_HFRATIO (0.83f) + +#define AL_REVERB_MIN_REFLECTIONS_GAIN (0.0f) +#define AL_REVERB_MAX_REFLECTIONS_GAIN (3.16f) +#define AL_REVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) + +#define AL_REVERB_MIN_REFLECTIONS_DELAY (0.0f) +#define AL_REVERB_MAX_REFLECTIONS_DELAY (0.3f) +#define AL_REVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) + +#define AL_REVERB_MIN_LATE_REVERB_GAIN (0.0f) +#define AL_REVERB_MAX_LATE_REVERB_GAIN (10.0f) +#define AL_REVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) + +#define AL_REVERB_MIN_LATE_REVERB_DELAY (0.0f) +#define AL_REVERB_MAX_LATE_REVERB_DELAY (0.1f) +#define AL_REVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) + +#define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) +#define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) +#define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) + +#define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) + +#define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE +#define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE +#define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE + +/* EAX reverb effect */ +#define AL_EAXREVERB_MIN_DENSITY (0.0f) +#define AL_EAXREVERB_MAX_DENSITY (1.0f) +#define AL_EAXREVERB_DEFAULT_DENSITY (1.0f) + +#define AL_EAXREVERB_MIN_DIFFUSION (0.0f) +#define AL_EAXREVERB_MAX_DIFFUSION (1.0f) +#define AL_EAXREVERB_DEFAULT_DIFFUSION (1.0f) + +#define AL_EAXREVERB_MIN_GAIN (0.0f) +#define AL_EAXREVERB_MAX_GAIN (1.0f) +#define AL_EAXREVERB_DEFAULT_GAIN (0.32f) + +#define AL_EAXREVERB_MIN_GAINHF (0.0f) +#define AL_EAXREVERB_MAX_GAINHF (1.0f) +#define AL_EAXREVERB_DEFAULT_GAINHF (0.89f) + +#define AL_EAXREVERB_MIN_GAINLF (0.0f) +#define AL_EAXREVERB_MAX_GAINLF (1.0f) +#define AL_EAXREVERB_DEFAULT_GAINLF (1.0f) + +#define AL_EAXREVERB_MIN_DECAY_TIME (0.1f) +#define AL_EAXREVERB_MAX_DECAY_TIME (20.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_TIME (1.49f) + +#define AL_EAXREVERB_MIN_DECAY_HFRATIO (0.1f) +#define AL_EAXREVERB_MAX_DECAY_HFRATIO (2.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_HFRATIO (0.83f) + +#define AL_EAXREVERB_MIN_DECAY_LFRATIO (0.1f) +#define AL_EAXREVERB_MAX_DECAY_LFRATIO (2.0f) +#define AL_EAXREVERB_DEFAULT_DECAY_LFRATIO (1.0f) + +#define AL_EAXREVERB_MIN_REFLECTIONS_GAIN (0.0f) +#define AL_EAXREVERB_MAX_REFLECTIONS_GAIN (3.16f) +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN (0.05f) + +#define AL_EAXREVERB_MIN_REFLECTIONS_DELAY (0.0f) +#define AL_EAXREVERB_MAX_REFLECTIONS_DELAY (0.3f) +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY (0.007f) + +#define AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ (0.0f) + +#define AL_EAXREVERB_MIN_LATE_REVERB_GAIN (0.0f) +#define AL_EAXREVERB_MAX_LATE_REVERB_GAIN (10.0f) +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN (1.26f) + +#define AL_EAXREVERB_MIN_LATE_REVERB_DELAY (0.0f) +#define AL_EAXREVERB_MAX_LATE_REVERB_DELAY (0.1f) +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY (0.011f) + +#define AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ (0.0f) + +#define AL_EAXREVERB_MIN_ECHO_TIME (0.075f) +#define AL_EAXREVERB_MAX_ECHO_TIME (0.25f) +#define AL_EAXREVERB_DEFAULT_ECHO_TIME (0.25f) + +#define AL_EAXREVERB_MIN_ECHO_DEPTH (0.0f) +#define AL_EAXREVERB_MAX_ECHO_DEPTH (1.0f) +#define AL_EAXREVERB_DEFAULT_ECHO_DEPTH (0.0f) + +#define AL_EAXREVERB_MIN_MODULATION_TIME (0.04f) +#define AL_EAXREVERB_MAX_MODULATION_TIME (4.0f) +#define AL_EAXREVERB_DEFAULT_MODULATION_TIME (0.25f) + +#define AL_EAXREVERB_MIN_MODULATION_DEPTH (0.0f) +#define AL_EAXREVERB_MAX_MODULATION_DEPTH (1.0f) +#define AL_EAXREVERB_DEFAULT_MODULATION_DEPTH (0.0f) + +#define AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF (0.892f) +#define AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF (1.0f) +#define AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF (0.994f) + +#define AL_EAXREVERB_MIN_HFREFERENCE (1000.0f) +#define AL_EAXREVERB_MAX_HFREFERENCE (20000.0f) +#define AL_EAXREVERB_DEFAULT_HFREFERENCE (5000.0f) + +#define AL_EAXREVERB_MIN_LFREFERENCE (20.0f) +#define AL_EAXREVERB_MAX_LFREFERENCE (1000.0f) +#define AL_EAXREVERB_DEFAULT_LFREFERENCE (250.0f) + +#define AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) + +#define AL_EAXREVERB_MIN_DECAY_HFLIMIT AL_FALSE +#define AL_EAXREVERB_MAX_DECAY_HFLIMIT AL_TRUE +#define AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE + +/* Chorus effect */ +#define AL_CHORUS_WAVEFORM_SINUSOID (0) +#define AL_CHORUS_WAVEFORM_TRIANGLE (1) + +#define AL_CHORUS_MIN_WAVEFORM (0) +#define AL_CHORUS_MAX_WAVEFORM (1) +#define AL_CHORUS_DEFAULT_WAVEFORM (1) + +#define AL_CHORUS_MIN_PHASE (-180) +#define AL_CHORUS_MAX_PHASE (180) +#define AL_CHORUS_DEFAULT_PHASE (90) + +#define AL_CHORUS_MIN_RATE (0.0f) +#define AL_CHORUS_MAX_RATE (10.0f) +#define AL_CHORUS_DEFAULT_RATE (1.1f) + +#define AL_CHORUS_MIN_DEPTH (0.0f) +#define AL_CHORUS_MAX_DEPTH (1.0f) +#define AL_CHORUS_DEFAULT_DEPTH (0.1f) + +#define AL_CHORUS_MIN_FEEDBACK (-1.0f) +#define AL_CHORUS_MAX_FEEDBACK (1.0f) +#define AL_CHORUS_DEFAULT_FEEDBACK (0.25f) + +#define AL_CHORUS_MIN_DELAY (0.0f) +#define AL_CHORUS_MAX_DELAY (0.016f) +#define AL_CHORUS_DEFAULT_DELAY (0.016f) + +/* Distortion effect */ +#define AL_DISTORTION_MIN_EDGE (0.0f) +#define AL_DISTORTION_MAX_EDGE (1.0f) +#define AL_DISTORTION_DEFAULT_EDGE (0.2f) + +#define AL_DISTORTION_MIN_GAIN (0.01f) +#define AL_DISTORTION_MAX_GAIN (1.0f) +#define AL_DISTORTION_DEFAULT_GAIN (0.05f) + +#define AL_DISTORTION_MIN_LOWPASS_CUTOFF (80.0f) +#define AL_DISTORTION_MAX_LOWPASS_CUTOFF (24000.0f) +#define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF (8000.0f) + +#define AL_DISTORTION_MIN_EQCENTER (80.0f) +#define AL_DISTORTION_MAX_EQCENTER (24000.0f) +#define AL_DISTORTION_DEFAULT_EQCENTER (3600.0f) + +#define AL_DISTORTION_MIN_EQBANDWIDTH (80.0f) +#define AL_DISTORTION_MAX_EQBANDWIDTH (24000.0f) +#define AL_DISTORTION_DEFAULT_EQBANDWIDTH (3600.0f) + +/* Echo effect */ +#define AL_ECHO_MIN_DELAY (0.0f) +#define AL_ECHO_MAX_DELAY (0.207f) +#define AL_ECHO_DEFAULT_DELAY (0.1f) + +#define AL_ECHO_MIN_LRDELAY (0.0f) +#define AL_ECHO_MAX_LRDELAY (0.404f) +#define AL_ECHO_DEFAULT_LRDELAY (0.1f) + +#define AL_ECHO_MIN_DAMPING (0.0f) +#define AL_ECHO_MAX_DAMPING (0.99f) +#define AL_ECHO_DEFAULT_DAMPING (0.5f) + +#define AL_ECHO_MIN_FEEDBACK (0.0f) +#define AL_ECHO_MAX_FEEDBACK (1.0f) +#define AL_ECHO_DEFAULT_FEEDBACK (0.5f) + +#define AL_ECHO_MIN_SPREAD (-1.0f) +#define AL_ECHO_MAX_SPREAD (1.0f) +#define AL_ECHO_DEFAULT_SPREAD (-1.0f) + +/* Flanger effect */ +#define AL_FLANGER_WAVEFORM_SINUSOID (0) +#define AL_FLANGER_WAVEFORM_TRIANGLE (1) + +#define AL_FLANGER_MIN_WAVEFORM (0) +#define AL_FLANGER_MAX_WAVEFORM (1) +#define AL_FLANGER_DEFAULT_WAVEFORM (1) + +#define AL_FLANGER_MIN_PHASE (-180) +#define AL_FLANGER_MAX_PHASE (180) +#define AL_FLANGER_DEFAULT_PHASE (0) + +#define AL_FLANGER_MIN_RATE (0.0f) +#define AL_FLANGER_MAX_RATE (10.0f) +#define AL_FLANGER_DEFAULT_RATE (0.27f) + +#define AL_FLANGER_MIN_DEPTH (0.0f) +#define AL_FLANGER_MAX_DEPTH (1.0f) +#define AL_FLANGER_DEFAULT_DEPTH (1.0f) + +#define AL_FLANGER_MIN_FEEDBACK (-1.0f) +#define AL_FLANGER_MAX_FEEDBACK (1.0f) +#define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) + +#define AL_FLANGER_MIN_DELAY (0.0f) +#define AL_FLANGER_MAX_DELAY (0.004f) +#define AL_FLANGER_DEFAULT_DELAY (0.002f) + +/* Frequency shifter effect */ +#define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY (0.0f) +#define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY (24000.0f) +#define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY (0.0f) + +#define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION (0) +#define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION (2) +#define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION (0) + +#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN (0) +#define AL_FREQUENCY_SHIFTER_DIRECTION_UP (1) +#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF (2) + +#define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION (0) +#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION (2) +#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION (0) + +/* Vocal morpher effect */ +#define AL_VOCAL_MORPHER_MIN_PHONEMEA (0) +#define AL_VOCAL_MORPHER_MAX_PHONEMEA (29) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA (0) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24) +#define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING (24) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING (0) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEB (0) +#define AL_VOCAL_MORPHER_MAX_PHONEMEB (29) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB (10) + +#define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24) +#define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING (24) +#define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING (0) + +#define AL_VOCAL_MORPHER_PHONEME_A (0) +#define AL_VOCAL_MORPHER_PHONEME_E (1) +#define AL_VOCAL_MORPHER_PHONEME_I (2) +#define AL_VOCAL_MORPHER_PHONEME_O (3) +#define AL_VOCAL_MORPHER_PHONEME_U (4) +#define AL_VOCAL_MORPHER_PHONEME_AA (5) +#define AL_VOCAL_MORPHER_PHONEME_AE (6) +#define AL_VOCAL_MORPHER_PHONEME_AH (7) +#define AL_VOCAL_MORPHER_PHONEME_AO (8) +#define AL_VOCAL_MORPHER_PHONEME_EH (9) +#define AL_VOCAL_MORPHER_PHONEME_ER (10) +#define AL_VOCAL_MORPHER_PHONEME_IH (11) +#define AL_VOCAL_MORPHER_PHONEME_IY (12) +#define AL_VOCAL_MORPHER_PHONEME_UH (13) +#define AL_VOCAL_MORPHER_PHONEME_UW (14) +#define AL_VOCAL_MORPHER_PHONEME_B (15) +#define AL_VOCAL_MORPHER_PHONEME_D (16) +#define AL_VOCAL_MORPHER_PHONEME_F (17) +#define AL_VOCAL_MORPHER_PHONEME_G (18) +#define AL_VOCAL_MORPHER_PHONEME_J (19) +#define AL_VOCAL_MORPHER_PHONEME_K (20) +#define AL_VOCAL_MORPHER_PHONEME_L (21) +#define AL_VOCAL_MORPHER_PHONEME_M (22) +#define AL_VOCAL_MORPHER_PHONEME_N (23) +#define AL_VOCAL_MORPHER_PHONEME_P (24) +#define AL_VOCAL_MORPHER_PHONEME_R (25) +#define AL_VOCAL_MORPHER_PHONEME_S (26) +#define AL_VOCAL_MORPHER_PHONEME_T (27) +#define AL_VOCAL_MORPHER_PHONEME_V (28) +#define AL_VOCAL_MORPHER_PHONEME_Z (29) + +#define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID (0) +#define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE (1) +#define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH (2) + +#define AL_VOCAL_MORPHER_MIN_WAVEFORM (0) +#define AL_VOCAL_MORPHER_MAX_WAVEFORM (2) +#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM (0) + +#define AL_VOCAL_MORPHER_MIN_RATE (0.0f) +#define AL_VOCAL_MORPHER_MAX_RATE (10.0f) +#define AL_VOCAL_MORPHER_DEFAULT_RATE (1.41f) + +/* Pitch shifter effect */ +#define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12) +#define AL_PITCH_SHIFTER_MAX_COARSE_TUNE (12) +#define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE (12) + +#define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50) +#define AL_PITCH_SHIFTER_MAX_FINE_TUNE (50) +#define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE (0) + +/* Ring modulator effect */ +#define AL_RING_MODULATOR_MIN_FREQUENCY (0.0f) +#define AL_RING_MODULATOR_MAX_FREQUENCY (8000.0f) +#define AL_RING_MODULATOR_DEFAULT_FREQUENCY (440.0f) + +#define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF (0.0f) +#define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF (24000.0f) +#define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF (800.0f) + +#define AL_RING_MODULATOR_SINUSOID (0) +#define AL_RING_MODULATOR_SAWTOOTH (1) +#define AL_RING_MODULATOR_SQUARE (2) + +#define AL_RING_MODULATOR_MIN_WAVEFORM (0) +#define AL_RING_MODULATOR_MAX_WAVEFORM (2) +#define AL_RING_MODULATOR_DEFAULT_WAVEFORM (0) + +/* Autowah effect */ +#define AL_AUTOWAH_MIN_ATTACK_TIME (0.0001f) +#define AL_AUTOWAH_MAX_ATTACK_TIME (1.0f) +#define AL_AUTOWAH_DEFAULT_ATTACK_TIME (0.06f) + +#define AL_AUTOWAH_MIN_RELEASE_TIME (0.0001f) +#define AL_AUTOWAH_MAX_RELEASE_TIME (1.0f) +#define AL_AUTOWAH_DEFAULT_RELEASE_TIME (0.06f) + +#define AL_AUTOWAH_MIN_RESONANCE (2.0f) +#define AL_AUTOWAH_MAX_RESONANCE (1000.0f) +#define AL_AUTOWAH_DEFAULT_RESONANCE (1000.0f) + +#define AL_AUTOWAH_MIN_PEAK_GAIN (0.00003f) +#define AL_AUTOWAH_MAX_PEAK_GAIN (31621.0f) +#define AL_AUTOWAH_DEFAULT_PEAK_GAIN (11.22f) + +/* Compressor effect */ +#define AL_COMPRESSOR_MIN_ONOFF (0) +#define AL_COMPRESSOR_MAX_ONOFF (1) +#define AL_COMPRESSOR_DEFAULT_ONOFF (1) + +/* Equalizer effect */ +#define AL_EQUALIZER_MIN_LOW_GAIN (0.126f) +#define AL_EQUALIZER_MAX_LOW_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_LOW_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_LOW_CUTOFF (50.0f) +#define AL_EQUALIZER_MAX_LOW_CUTOFF (800.0f) +#define AL_EQUALIZER_DEFAULT_LOW_CUTOFF (200.0f) + +#define AL_EQUALIZER_MIN_MID1_GAIN (0.126f) +#define AL_EQUALIZER_MAX_MID1_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_MID1_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_MID1_CENTER (200.0f) +#define AL_EQUALIZER_MAX_MID1_CENTER (3000.0f) +#define AL_EQUALIZER_DEFAULT_MID1_CENTER (500.0f) + +#define AL_EQUALIZER_MIN_MID1_WIDTH (0.01f) +#define AL_EQUALIZER_MAX_MID1_WIDTH (1.0f) +#define AL_EQUALIZER_DEFAULT_MID1_WIDTH (1.0f) + +#define AL_EQUALIZER_MIN_MID2_GAIN (0.126f) +#define AL_EQUALIZER_MAX_MID2_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_MID2_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_MID2_CENTER (1000.0f) +#define AL_EQUALIZER_MAX_MID2_CENTER (8000.0f) +#define AL_EQUALIZER_DEFAULT_MID2_CENTER (3000.0f) + +#define AL_EQUALIZER_MIN_MID2_WIDTH (0.01f) +#define AL_EQUALIZER_MAX_MID2_WIDTH (1.0f) +#define AL_EQUALIZER_DEFAULT_MID2_WIDTH (1.0f) + +#define AL_EQUALIZER_MIN_HIGH_GAIN (0.126f) +#define AL_EQUALIZER_MAX_HIGH_GAIN (7.943f) +#define AL_EQUALIZER_DEFAULT_HIGH_GAIN (1.0f) + +#define AL_EQUALIZER_MIN_HIGH_CUTOFF (4000.0f) +#define AL_EQUALIZER_MAX_HIGH_CUTOFF (16000.0f) +#define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF (6000.0f) + + +/* Source parameter value ranges and defaults. */ +#define AL_MIN_AIR_ABSORPTION_FACTOR (0.0f) +#define AL_MAX_AIR_ABSORPTION_FACTOR (10.0f) +#define AL_DEFAULT_AIR_ABSORPTION_FACTOR (0.0f) + +#define AL_MIN_ROOM_ROLLOFF_FACTOR (0.0f) +#define AL_MAX_ROOM_ROLLOFF_FACTOR (10.0f) +#define AL_DEFAULT_ROOM_ROLLOFF_FACTOR (0.0f) + +#define AL_MIN_CONE_OUTER_GAINHF (0.0f) +#define AL_MAX_CONE_OUTER_GAINHF (1.0f) +#define AL_DEFAULT_CONE_OUTER_GAINHF (1.0f) + +#define AL_MIN_DIRECT_FILTER_GAINHF_AUTO AL_FALSE +#define AL_MAX_DIRECT_FILTER_GAINHF_AUTO AL_TRUE +#define AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO AL_TRUE + +#define AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_FALSE +#define AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE +#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO AL_TRUE + +#define AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_FALSE +#define AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE +#define AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO AL_TRUE + + +/* Listener parameter value ranges and defaults. */ +#define AL_MIN_METERS_PER_UNIT FLT_MIN +#define AL_MAX_METERS_PER_UNIT FLT_MAX +#define AL_DEFAULT_METERS_PER_UNIT (1.0f) + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* AL_EFX_H */ diff --git a/neo/libs/openal-soft/lib/win32/OpenAL32.lib b/neo/libs/openal-soft/lib/win32/OpenAL32.lib new file mode 100644 index 0000000000000000000000000000000000000000..41a074ee0cf2b0e52ec7b9a1889a75dc2236f0c5 GIT binary patch literal 32366 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 TJV?!y_394=(f^?p4MG10+-7`~ literal 0 HcmV?d00001 diff --git a/neo/libs/openal-soft/readme.txt b/neo/libs/openal-soft/readme.txt new file mode 100644 index 00000000..3bc7529e --- /dev/null +++ b/neo/libs/openal-soft/readme.txt @@ -0,0 +1,27 @@ +OpenAL Soft Binary Distribution + +These binaries are provided as a convenience. Users and developers may use it +so they can use OpenAL Soft without having to build it from source. + +Note that it is still expected to install the OpenAL redistributable provided +by Creative Labs (at http://openal.org/), as that will provide the "router" +OpenAL32.dll that applications talk to, and may provide extra drivers for the +user's hardware. The DLLs provided here will simply add additional devices for +applications to select from. If you do not wish to use the redistributable, +then rename soft_oal.dll to OpenAL32.dll (note: even the 64-bit DLL should be +named OpenAL32.dll)... just be aware this will prevent other system-installed +OpenAL implementations from working. + +To use the 32-bit DLL, copy it from the Win32 folder to the folder OpenAL32.dll +is installed in. +For 32-bit Windows, the Win32 DLL will typically go into the system32 folder. +For 64-bit Windows, the Win32 DLL will typically go into the SysWOW64 folder. + +To use the 64-bit DLL, copy it from the Win64 folder to the folder OpenAL32.dll +is installed in. This will typically be the system32 folder. + +The included openal-info32.exe and openal-info64.exe programs can be used to +tell if the OpenAL Soft DLL is being detected. It should be run from a command +shell, as the program will exit as soon as it's done printing information. + +Have fun! diff --git a/neo/libs/openal-soft/win32/OpenAL32.dll b/neo/libs/openal-soft/win32/OpenAL32.dll new file mode 100644 index 0000000000000000000000000000000000000000..8b78b7e98beb07072138c193cc532217c89551d3 GIT binary patch literal 538112 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�e2@`#X8kwoWB7VX9qov+u+SsUcVte;=<+sYcm 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

*e9kyam``Qb6_U{vJe}u+A2d*3fM(zQewrmlmP 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