A basic Android template is provided to start a gamepull/3/head
@ -0,0 +1,36 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- | |||
* raylib Android project template | |||
* | |||
* This template has been created using raylib 1.2 (www.raylib.com) | |||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||
* | |||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
* | |||
--> | |||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||
package="com.raysan5.raylib_test" | |||
android:versionCode="1" | |||
android:versionName="1.0" > | |||
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" /> | |||
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> | |||
<!--<supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" android:required="true"/>--> | |||
<application android:allowBackup="false" android:hasCode="false" | |||
android:label="@string/app_name" | |||
android:icon="@drawable/icon" | |||
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" > | |||
<activity android:name="android.app.NativeActivity" | |||
android:configChanges="orientation|keyboardHidden" | |||
android:screenOrientation="landscape" | |||
android:clearTaskOnLaunch="true" > | |||
<!-- android:screenOrientation="portrait" --> | |||
<meta-data android:name="android.app.lib_name" android:value="@string/app_name" /> | |||
<intent-filter> | |||
<action android:name="android.intent.action.MAIN" /> | |||
<category android:name="android.intent.category.LAUNCHER" /> | |||
</intent-filter> | |||
</activity> | |||
</application> | |||
</manifest> |
@ -0,0 +1,92 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project name="nativeGame" default="help"> | |||
<!-- The local.properties file is created and updated by the 'android' tool. | |||
It contains the path to the SDK. It should *NOT* be checked into | |||
Version Control Systems. --> | |||
<property file="local.properties" /> | |||
<!-- The ant.properties file can be created by you. It is only edited by the | |||
'android' tool to add properties to it. | |||
This is the place to change some Ant specific build properties. | |||
Here are some properties you may want to change/update: | |||
source.dir | |||
The name of the source directory. Default is 'src'. | |||
out.dir | |||
The name of the output directory. Default is 'bin'. | |||
For other overridable properties, look at the beginning of the rules | |||
files in the SDK, at tools/ant/build.xml | |||
Properties related to the SDK location or the project target should | |||
be updated using the 'android' tool with the 'update' action. | |||
This file is an integral part of the build system for your | |||
application and should be checked into Version Control Systems. | |||
--> | |||
<property file="ant.properties" /> | |||
<!-- if sdk.dir was not set from one of the property file, then | |||
get it from the ANDROID_HOME env var. | |||
This must be done before we load project.properties since | |||
the proguard config can use sdk.dir --> | |||
<property environment="env" /> | |||
<condition property="sdk.dir" value="${env.ANDROID_HOME}"> | |||
<isset property="env.ANDROID_HOME" /> | |||
</condition> | |||
<!-- The project.properties file is created and updated by the 'android' | |||
tool, as well as ADT. | |||
This contains project specific properties such as project target, and library | |||
dependencies. Lower level build properties are stored in ant.properties | |||
(or in .classpath for Eclipse projects). | |||
This file is an integral part of the build system for your | |||
application and should be checked into Version Control Systems. --> | |||
<loadproperties srcFile="project.properties" /> | |||
<!-- quick check on sdk.dir --> | |||
<fail | |||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable." | |||
unless="sdk.dir" | |||
/> | |||
<!-- | |||
Import per project custom build rules if present at the root of the project. | |||
This is the place to put custom intermediary targets such as: | |||
-pre-build | |||
-pre-compile | |||
-post-compile (This is typically used for code obfuscation. | |||
Compiled code location: ${out.classes.absolute.dir} | |||
If this is not done in place, override ${out.dex.input.absolute.dir}) | |||
-post-package | |||
-post-build | |||
-pre-clean | |||
--> | |||
<import file="custom_rules.xml" optional="true" /> | |||
<!-- Import the actual build file. | |||
To customize existing targets, there are two options: | |||
- Customize only one target: | |||
- copy/paste the target into this file, *before* the | |||
<import> task. | |||
- customize it to your needs. | |||
- Customize the whole content of build.xml | |||
- copy/paste the content of the rules files (minus the top node) | |||
into this file, replacing the <import> task. | |||
- customize to your needs. | |||
*********************** | |||
****** IMPORTANT ****** | |||
*********************** | |||
In all cases you must update the value of version-tag below to read 'custom' instead of an integer, | |||
in order to avoid having your file be overridden by tools such as "android update project" | |||
--> | |||
<!-- version-tag: 1 --> | |||
<import file="${sdk.dir}/tools/ant/build.xml" /> | |||
</project> |
@ -0,0 +1,102 @@ | |||
#************************************************************************************************** | |||
# | |||
# raylib for Android | |||
# | |||
# Game template makefile | |||
# | |||
# Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
# | |||
# This software is provided "as-is", without any express or implied warranty. In no event | |||
# will the authors be held liable for any damages arising from the use of this software. | |||
# | |||
# Permission is granted to anyone to use this software for any purpose, including commercial | |||
# applications, and to alter it and redistribute it freely, subject to the following restrictions: | |||
# | |||
# 1. The origin of this software must not be misrepresented; you must not claim that you | |||
# wrote the original software. If you use this software in a product, an acknowledgment | |||
# in the product documentation would be appreciated but is not required. | |||
# | |||
# 2. Altered source versions must be plainly marked as such, and must not be misrepresented | |||
# as being the original software. | |||
# | |||
# 3. This notice may not be removed or altered from any source distribution. | |||
# | |||
#************************************************************************************************** | |||
# Path of the current directory (i.e. the directory containing the Android.mk file itself) | |||
LOCAL_PATH := $(call my-dir) | |||
# OpenAL module (prebuilt static library) | |||
# NOTE: Shared library brokes the build! Why? | |||
#-------------------------------------------------------------------- | |||
include $(CLEAR_VARS) | |||
# Module name | |||
LOCAL_MODULE := openal | |||
# Precompiled lib | |||
LOCAL_SRC_FILES := libs/libopenal.a | |||
# Export headers | |||
LOCAL_EXPORT_C_INCLUDES := include | |||
# Build static library | |||
#include $(PREBUILT_SHARED_LIBRARY) | |||
include $(PREBUILT_STATIC_LIBRARY) | |||
#-------------------------------------------------------------------- | |||
# raylib module (prebuilt static library) | |||
#-------------------------------------------------------------------- | |||
include $(CLEAR_VARS) | |||
# Module name | |||
LOCAL_MODULE := raylib | |||
# Precompiled lib | |||
LOCAL_SRC_FILES := libs/libraylib.a | |||
# Export headers | |||
LOCAL_EXPORT_C_INCLUDES := include | |||
# Static library dependency | |||
LOCAL_STATIC_LIBRARIES := android_native_app_glue | |||
# Build static library | |||
include $(PREBUILT_STATIC_LIBRARY) | |||
#-------------------------------------------------------------------- | |||
# raylib game module (shared library) | |||
#-------------------------------------------------------------------- | |||
# Makefile that will clear many LOCAL_XXX variables for you | |||
include $(CLEAR_VARS) | |||
# Module name | |||
LOCAL_MODULE := raylibGame | |||
# Module source files | |||
LOCAL_SRC_FILES := basic_game.c | |||
# Required includes paths (.h) | |||
# NOTE: raylib header and openal headers are included using LOCAL_EXPORT_C_INCLUDES | |||
LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/include | |||
# Required flags for compilation: defines PLATFORM_ANDROID | |||
LOCAL_CFLAGS := -Wall -std=c99 -g -DPLATFORM_ANDROID | |||
# Linker required libraries (not many...) | |||
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2 -lOpenSLES | |||
# Required static library | |||
LOCAL_STATIC_LIBRARIES := android_native_app_glue raylib openal | |||
# Required shared library | |||
# NOTE: It brokes the build, using static library instead | |||
#LOCAL_SHARED_LIBRARIES := openal | |||
# Build the shared library libraylibGame.so | |||
include $(BUILD_SHARED_LIBRARY) | |||
$(call import-module,android/native_app_glue) | |||
#-------------------------------------------------------------------- |
@ -0,0 +1,165 @@ | |||
/******************************************************************************************* | |||
* | |||
* raylib - Android Basic Game template | |||
* | |||
* <Game title> | |||
* <Game description> | |||
* | |||
* This game has been created using raylib v1.2 (www.raylib.com) | |||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||
* | |||
* Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
* | |||
********************************************************************************************/ | |||
#include "raylib.h" | |||
//---------------------------------------------------------------------------------- | |||
// Types and Structures Definition | |||
//---------------------------------------------------------------------------------- | |||
typedef enum GameScreen { LOGO, TITLE, GAMEPLAY, ENDING } GameScreen; | |||
//---------------------------------------------------------------------------------- | |||
// Android Main entry point | |||
//---------------------------------------------------------------------------------- | |||
void android_main(struct android_app *app) | |||
{ | |||
// Initialization | |||
//-------------------------------------------------------------------------------------- | |||
const int screenWidth = 800; | |||
const int screenHeight = 450; | |||
GameScreen currentScreen = LOGO; | |||
InitWindow(screenWidth, screenHeight, app); | |||
// TODO: Initialize all required variables and load all required data here! | |||
InitAudioDevice(); // Initialize audio device | |||
Sound fx = LoadSound("coin.wav"); // Load WAV audio file (placed on assets folder) | |||
Texture2D texture = LoadTexture("raylib_logo.png"); // Load texture (placed on assets folder) | |||
int framesCounter = 0; // Used to count frames | |||
//SetTargetFPS(60); // Not required on Android, already locked to 60 fps | |||
//-------------------------------------------------------------------------------------- | |||
// Main game loop | |||
while (!WindowShouldClose()) // Detect window close button or ESC key | |||
{ | |||
// Update | |||
//---------------------------------------------------------------------------------- | |||
switch(currentScreen) | |||
{ | |||
case LOGO: | |||
{ | |||
// TODO: Update LOGO screen variables here! | |||
framesCounter++; // Count frames | |||
// Wait for 4 seconds (240 frames) before jumping to TITLE screen | |||
if (framesCounter > 240) | |||
{ | |||
currentScreen = TITLE; | |||
} | |||
} break; | |||
case TITLE: | |||
{ | |||
// TODO: Update TITLE screen variables here! | |||
// Press enter to change to GAMEPLAY screen | |||
if (IsScreenTouched()) | |||
{ | |||
PlaySound(fx); | |||
currentScreen = GAMEPLAY; | |||
} | |||
} break; | |||
case GAMEPLAY: | |||
{ | |||
// TODO: Update GAMEPLAY screen variables here! | |||
// Press enter to change to ENDING screen | |||
if (IsScreenTouched()) | |||
{ | |||
PlaySound(fx); | |||
currentScreen = ENDING; | |||
} | |||
} break; | |||
case ENDING: | |||
{ | |||
// TODO: Update ENDING screen variables here! | |||
// Press enter to return to TITLE screen | |||
if (IsScreenTouched()) | |||
{ | |||
PlaySound(fx); | |||
currentScreen = TITLE; | |||
} | |||
} break; | |||
default: break; | |||
} | |||
//---------------------------------------------------------------------------------- | |||
// Draw | |||
//---------------------------------------------------------------------------------- | |||
BeginDrawing(); | |||
ClearBackground(RAYWHITE); | |||
switch(currentScreen) | |||
{ | |||
case LOGO: | |||
{ | |||
// TODO: Draw LOGO screen here! | |||
DrawText("LOGO SCREEN", 20, 20, 40, LIGHTGRAY); | |||
DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); | |||
DrawText("WAIT for 4 SECONDS...", 290, 400, 20, GRAY); | |||
} break; | |||
case TITLE: | |||
{ | |||
// TODO: Draw TITLE screen here! | |||
DrawRectangle(0, 0, screenWidth, screenHeight, GREEN); | |||
DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN); | |||
DrawText("TAP SCREEN to JUMP to GAMEPLAY SCREEN", 160, 220, 20, DARKGREEN); | |||
} break; | |||
case GAMEPLAY: | |||
{ | |||
// TODO: Draw GAMEPLAY screen here! | |||
DrawRectangle(0, 0, screenWidth, screenHeight, PURPLE); | |||
DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON); | |||
DrawText("TAP SCREEN to JUMP to ENDING SCREEN", 170, 220, 20, MAROON); | |||
} break; | |||
case ENDING: | |||
{ | |||
// TODO: Draw ENDING screen here! | |||
DrawRectangle(0, 0, screenWidth, screenHeight, BLUE); | |||
DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE); | |||
DrawText("TAP SCREEN to RETURN to TITLE SCREEN", 160, 220, 20, DARKBLUE); | |||
} break; | |||
default: break; | |||
} | |||
EndDrawing(); | |||
//---------------------------------------------------------------------------------- | |||
} | |||
// De-Initialization | |||
//-------------------------------------------------------------------------------------- | |||
// TODO: Unload all loaded data (textures, fonts, audio) here! | |||
UnloadSound(fx); // Unload sound data | |||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) | |||
UnloadTexture(texture); // Unload texture data | |||
CloseWindow(); // Close window and OpenGL context | |||
//-------------------------------------------------------------------------------------- | |||
} |
@ -0,0 +1,718 @@ | |||
#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 | |||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC | |||
#pragma export on | |||
#endif | |||
/* | |||
* The OPENAL, ALAPI, ALAPIENTRY, AL_INVALID, AL_ILLEGAL_ENUM, and | |||
* AL_ILLEGAL_COMMAND macros are deprecated, but are included for | |||
* applications porting code from AL 1.0 | |||
*/ | |||
#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 | |||
#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 | |||
/** Indicate Source has relative coordinates. */ | |||
#define AL_SOURCE_RELATIVE 0x202 | |||
/** | |||
* Directional source, inner cone angle, in degrees. | |||
* Range: [0-360] | |||
* Default: 360 | |||
*/ | |||
#define AL_CONE_INNER_ANGLE 0x1001 | |||
/** | |||
* Directional source, outer cone angle, in degrees. | |||
* Range: [0-360] | |||
* Default: 360 | |||
*/ | |||
#define AL_CONE_OUTER_ANGLE 0x1002 | |||
/** | |||
* Specify the pitch to be applied at source. | |||
* Range: [0.5-2.0] | |||
* Default: 1.0 | |||
*/ | |||
#define AL_PITCH 0x1003 | |||
/** | |||
* Specify the current 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. | |||
* Listener position is always in the world coordinate system. | |||
*/ | |||
#define AL_POSITION 0x1004 | |||
/** Specify the current direction. */ | |||
#define AL_DIRECTION 0x1005 | |||
/** Specify the current velocity in three dimensional space. */ | |||
#define AL_VELOCITY 0x1006 | |||
/** | |||
* Indicate whether source is looping. | |||
* Type: ALboolean? | |||
* Range: [AL_TRUE, AL_FALSE] | |||
* Default: FALSE. | |||
*/ | |||
#define AL_LOOPING 0x1007 | |||
/** | |||
* Indicate the buffer to provide sound samples. | |||
* Type: ALuint. | |||
* Range: any valid Buffer id. | |||
*/ | |||
#define AL_BUFFER 0x1009 | |||
/** | |||
* Indicate the gain (volume amplification) applied. | |||
* Type: ALfloat. | |||
* Range: ]0.0- ] | |||
* A value of 1.0 means un-attenuated/unchanged. | |||
* Each division by 2 equals an attenuation of -6dB. | |||
* Each multiplicaton with 2 equals an amplification of +6dB. | |||
* A value of 0.0 is meaningless with respect to a logarithmic | |||
* scale; it is interpreted as zero volume - the channel | |||
* is effectively disabled. | |||
*/ | |||
#define AL_GAIN 0x100A | |||
/* | |||
* Indicate minimum source attenuation | |||
* Type: ALfloat | |||
* Range: [0.0 - 1.0] | |||
* | |||
* Logarthmic | |||
*/ | |||
#define AL_MIN_GAIN 0x100D | |||
/** | |||
* Indicate maximum source attenuation | |||
* Type: ALfloat | |||
* Range: [0.0 - 1.0] | |||
* | |||
* Logarthmic | |||
*/ | |||
#define AL_MAX_GAIN 0x100E | |||
/** | |||
* Indicate listener orientation. | |||
* | |||
* at/up | |||
*/ | |||
#define AL_ORIENTATION 0x100F | |||
/** | |||
* Source state information. | |||
*/ | |||
#define AL_SOURCE_STATE 0x1010 | |||
#define AL_INITIAL 0x1011 | |||
#define AL_PLAYING 0x1012 | |||
#define AL_PAUSED 0x1013 | |||
#define AL_STOPPED 0x1014 | |||
/** | |||
* Buffer Queue params | |||
*/ | |||
#define AL_BUFFERS_QUEUED 0x1015 | |||
#define AL_BUFFERS_PROCESSED 0x1016 | |||
/** | |||
* Source buffer position information | |||
*/ | |||
#define AL_SEC_OFFSET 0x1024 | |||
#define AL_SAMPLE_OFFSET 0x1025 | |||
#define AL_BYTE_OFFSET 0x1026 | |||
/* | |||
* Source type (Static, Streaming or undetermined) | |||
* Source is Static if a Buffer has been attached using AL_BUFFER | |||
* Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers | |||
* Source is undetermined when it has the NULL buffer attached | |||
*/ | |||
#define AL_SOURCE_TYPE 0x1027 | |||
#define AL_STATIC 0x1028 | |||
#define AL_STREAMING 0x1029 | |||
#define AL_UNDETERMINED 0x1030 | |||
/** Sound samples: format specifier. */ | |||
#define AL_FORMAT_MONO8 0x1100 | |||
#define AL_FORMAT_MONO16 0x1101 | |||
#define AL_FORMAT_STEREO8 0x1102 | |||
#define AL_FORMAT_STEREO16 0x1103 | |||
/** | |||
* source specific reference distance | |||
* Type: ALfloat | |||
* Range: 0.0 - +inf | |||
* | |||
* At 0.0, no distance attenuation occurs. Default is | |||
* 1.0. | |||
*/ | |||
#define AL_REFERENCE_DISTANCE 0x1020 | |||
/** | |||
* source specific rolloff factor | |||
* Type: ALfloat | |||
* Range: 0.0 - +inf | |||
* | |||
*/ | |||
#define AL_ROLLOFF_FACTOR 0x1021 | |||
/** | |||
* Directional source, outer cone gain. | |||
* | |||
* Default: 0.0 | |||
* Range: [0.0 - 1.0] | |||
* Logarithmic | |||
*/ | |||
#define AL_CONE_OUTER_GAIN 0x1022 | |||
/** | |||
* Indicate distance above which sources are not | |||
* attenuated using the inverse clamped distance model. | |||
* | |||
* Default: +inf | |||
* Type: ALfloat | |||
* Range: 0.0 - +inf | |||
*/ | |||
#define AL_MAX_DISTANCE 0x1023 | |||
/** | |||
* Sound samples: frequency, in units of Hertz [Hz]. | |||
* This is the number of samples per second. Half of the | |||
* sample frequency marks the maximum significant | |||
* frequency component. | |||
*/ | |||
#define AL_FREQUENCY 0x2001 | |||
#define AL_BITS 0x2002 | |||
#define AL_CHANNELS 0x2003 | |||
#define AL_SIZE 0x2004 | |||
/** | |||
* Buffer state. | |||
* | |||
* Not supported for public use (yet). | |||
*/ | |||
#define AL_UNUSED 0x2010 | |||
#define AL_PENDING 0x2011 | |||
#define AL_PROCESSED 0x2012 | |||
/** Errors: No Error. */ | |||
#define AL_NO_ERROR AL_FALSE | |||
/** | |||
* Invalid Name paramater passed to AL call. | |||
*/ | |||
#define AL_INVALID_NAME 0xA001 | |||
/** | |||
* Invalid parameter passed to AL call. | |||
*/ | |||
#define AL_INVALID_ENUM 0xA002 | |||
/** | |||
* Invalid enum parameter value. | |||
*/ | |||
#define AL_INVALID_VALUE 0xA003 | |||
/** | |||
* Illegal call. | |||
*/ | |||
#define AL_INVALID_OPERATION 0xA004 | |||
/** | |||
* No mojo. | |||
*/ | |||
#define AL_OUT_OF_MEMORY 0xA005 | |||
/** Context strings: Vendor Name. */ | |||
#define AL_VENDOR 0xB001 | |||
#define AL_VERSION 0xB002 | |||
#define AL_RENDERER 0xB003 | |||
#define AL_EXTENSIONS 0xB004 | |||
/** Global tweakage. */ | |||
/** | |||
* Doppler scale. Default 1.0 | |||
*/ | |||
#define AL_DOPPLER_FACTOR 0xC000 | |||
/** | |||
* Tweaks speed of propagation. | |||
*/ | |||
#define AL_DOPPLER_VELOCITY 0xC001 | |||
/** | |||
* Speed of Sound in units per second | |||
*/ | |||
#define AL_SPEED_OF_SOUND 0xC003 | |||
/** | |||
* Distance models | |||
* | |||
* used in conjunction with DistanceModel | |||
* | |||
* implicit: NONE, which disances distance attenuation. | |||
*/ | |||
#define AL_DISTANCE_MODEL 0xD000 | |||
#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* data ); | |||
AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data ); | |||
AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data ); | |||
AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data ); | |||
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 support. | |||
* Obtain the most recent error generated in the AL state machine. | |||
*/ | |||
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 ); | |||
/* | |||
* LISTENER | |||
* Listener represents the location and orientation of the | |||
* 'user' in 3D-space. | |||
* | |||
* Properties include: - | |||
* | |||
* Gain AL_GAIN ALfloat | |||
* Position AL_POSITION ALfloat[3] | |||
* Velocity AL_VELOCITY ALfloat[3] | |||
* Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors) | |||
*/ | |||
/* | |||
* 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 ); | |||
/** | |||
* SOURCE | |||
* Sources represent individual sound objects in 3D-space. | |||
* Sources take the PCM data provided in the specified Buffer, | |||
* apply Source-specific modifications, and then | |||
* submit them to be mixed according to spatial arrangement etc. | |||
* | |||
* Properties include: - | |||
* | |||
* Gain AL_GAIN ALfloat | |||
* Min Gain AL_MIN_GAIN ALfloat | |||
* Max Gain AL_MAX_GAIN ALfloat | |||
* Position AL_POSITION ALfloat[3] | |||
* Velocity AL_VELOCITY ALfloat[3] | |||
* Direction AL_DIRECTION ALfloat[3] | |||
* Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE) | |||
* Reference Distance AL_REFERENCE_DISTANCE ALfloat | |||
* Max Distance AL_MAX_DISTANCE ALfloat | |||
* RollOff Factor AL_ROLLOFF_FACTOR ALfloat | |||
* Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat | |||
* Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat | |||
* Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat | |||
* Pitch AL_PITCH ALfloat | |||
* Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE) | |||
* MS Offset AL_MSEC_OFFSET ALint or ALfloat | |||
* Byte Offset AL_BYTE_OFFSET ALint or ALfloat | |||
* Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat | |||
* Attached Buffer AL_BUFFER ALint | |||
* State (Query only) AL_SOURCE_STATE ALint | |||
* Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint | |||
* Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint | |||
*/ | |||
/* 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 sid ); | |||
/* | |||
* Set Source parameters | |||
*/ | |||
AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ); | |||
AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); | |||
AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values ); | |||
AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value ); | |||
AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); | |||
AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values ); | |||
/* | |||
* Get Source parameters | |||
*/ | |||
AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value ); | |||
AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); | |||
AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values ); | |||
AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value ); | |||
AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); | |||
AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values ); | |||
/* | |||
* Source vector based playback calls | |||
*/ | |||
/* Play, replay, or resume (if paused) a list of Sources */ | |||
AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids ); | |||
/* Stop a list of Sources */ | |||
AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids ); | |||
/* Rewind a list of Sources */ | |||
AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids ); | |||
/* Pause a list of Sources */ | |||
AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids ); | |||
/* | |||
* Source based playback calls | |||
*/ | |||
/* Play, replay, or resume a Source */ | |||
AL_API void AL_APIENTRY alSourcePlay( ALuint sid ); | |||
/* Stop a Source */ | |||
AL_API void AL_APIENTRY alSourceStop( ALuint sid ); | |||
/* Rewind a Source (set playback postiton to beginning) */ | |||
AL_API void AL_APIENTRY alSourceRewind( ALuint sid ); | |||
/* Pause a Source */ | |||
AL_API void AL_APIENTRY alSourcePause( ALuint sid ); | |||
/* | |||
* Source Queuing | |||
*/ | |||
AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids ); | |||
AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids ); | |||
/** | |||
* BUFFER | |||
* Buffer objects are storage space for sample data. | |||
* Buffers are referred to by Sources. One Buffer can be used | |||
* by multiple Sources. | |||
* | |||
* Properties include: - | |||
* | |||
* Frequency (Query only) AL_FREQUENCY ALint | |||
* Size (Query only) AL_SIZE ALint | |||
* Bits (Query only) AL_BITS ALint | |||
* Channels (Query only) AL_CHANNELS ALint | |||
*/ | |||
/* 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 bid ); | |||
/* Specify the data to be copied into a buffer */ | |||
AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); | |||
/* | |||
* Set Buffer parameters | |||
*/ | |||
AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value ); | |||
AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); | |||
AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values ); | |||
AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value ); | |||
AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); | |||
AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values ); | |||
/* | |||
* Get Buffer parameters | |||
*/ | |||
AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value ); | |||
AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); | |||
AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values ); | |||
AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value ); | |||
AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); | |||
AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values ); | |||
/* | |||
* Global Parameters | |||
*/ | |||
AL_API void AL_APIENTRY alDopplerFactor( ALfloat value ); | |||
AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value ); | |||
AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value ); | |||
AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel ); | |||
/* | |||
* Pointer-to-function types, 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* data ); | |||
typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data ); | |||
typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data ); | |||
typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data ); | |||
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 sid ); | |||
typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value); | |||
typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); | |||
typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values ); | |||
typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value); | |||
typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 ); | |||
typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values ); | |||
typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value ); | |||
typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); | |||
typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values ); | |||
typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value ); | |||
typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3); | |||
typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values ); | |||
typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids ); | |||
typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids ); | |||
typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids ); | |||
typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids ); | |||
typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid ); | |||
typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid ); | |||
typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid ); | |||
typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid ); | |||
typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids ); | |||
typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids ); | |||
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 bid ); | |||
typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq ); | |||
typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value); | |||
typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 ); | |||
typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values ); | |||
typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value); | |||
typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 ); | |||
typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values ); | |||
typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value ); | |||
typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3); | |||
typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values ); | |||
typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value ); | |||
typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3); | |||
typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, 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(TARGET_OS_MAC) && TARGET_OS_MAC | |||
#pragma export off | |||
#endif | |||
#if defined(__cplusplus) | |||
} /* extern "C" */ | |||
#endif | |||
#endif /* AL_AL_H */ |
@ -0,0 +1,280 @@ | |||
#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 | |||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC | |||
#pragma export on | |||
#endif | |||
/* | |||
* The ALCAPI, ALCAPIENTRY, and ALC_INVALID macros are deprecated, but are | |||
* included for applications porting code from AL 1.0 | |||
*/ | |||
#define ALCAPI ALC_API | |||
#define ALCAPIENTRY ALC_APIENTRY | |||
#define ALC_INVALID 0 | |||
#define ALC_VERSION_0_1 1 | |||
typedef struct ALCdevice_struct ALCdevice; | |||
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 | |||
/** | |||
* followed by <int> Hz | |||
*/ | |||
#define ALC_FREQUENCY 0x1007 | |||
/** | |||
* followed by <int> Hz | |||
*/ | |||
#define ALC_REFRESH 0x1008 | |||
/** | |||
* followed by AL_TRUE, AL_FALSE | |||
*/ | |||
#define ALC_SYNC 0x1009 | |||
/** | |||
* followed by <int> Num of requested Mono (3D) Sources | |||
*/ | |||
#define ALC_MONO_SOURCES 0x1010 | |||
/** | |||
* followed by <int> Num of requested Stereo Sources | |||
*/ | |||
#define ALC_STEREO_SOURCES 0x1011 | |||
/** | |||
* errors | |||
*/ | |||
/** | |||
* No error | |||
*/ | |||
#define ALC_NO_ERROR ALC_FALSE | |||
/** | |||
* No device | |||
*/ | |||
#define ALC_INVALID_DEVICE 0xA001 | |||
/** | |||
* invalid context ID | |||
*/ | |||
#define ALC_INVALID_CONTEXT 0xA002 | |||
/** | |||
* bad enum | |||
*/ | |||
#define ALC_INVALID_ENUM 0xA003 | |||
/** | |||
* bad value | |||
*/ | |||
#define ALC_INVALID_VALUE 0xA004 | |||
/** | |||
* Out of memory. | |||
*/ | |||
#define ALC_OUT_OF_MEMORY 0xA005 | |||
/** | |||
* The Specifier string for default device | |||
*/ | |||
#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004 | |||
#define ALC_DEVICE_SPECIFIER 0x1005 | |||
#define ALC_EXTENSIONS 0x1006 | |||
#define ALC_MAJOR_VERSION 0x1000 | |||
#define ALC_MINOR_VERSION 0x1001 | |||
#define ALC_ATTRIBUTES_SIZE 0x1002 | |||
#define ALC_ALL_ATTRIBUTES 0x1003 | |||
/** | |||
* Capture extension | |||
*/ | |||
#define ALC_EXT_CAPTURE 1 | |||
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310 | |||
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311 | |||
#define ALC_CAPTURE_SAMPLES 0x312 | |||
/** | |||
* ALC_ENUMERATE_ALL_EXT enums | |||
*/ | |||
#define ALC_ENUMERATE_ALL_EXT 1 | |||
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012 | |||
#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 Context 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 functions | |||
*/ | |||
ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param ); | |||
ALC_API void ALC_APIENTRY alcGetIntegerv( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data ); | |||
/* | |||
* Capture functions | |||
*/ | |||
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 types, 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 *dest ); | |||
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(TARGET_OS_MAC) && TARGET_OS_MAC | |||
#pragma export off | |||
#endif | |||
#if defined(__cplusplus) | |||
} | |||
#endif | |||
#endif /* AL_ALC_H */ |
@ -0,0 +1,195 @@ | |||
/** | |||
* 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 <stddef.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 | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif |
@ -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. */ |
@ -0,0 +1,758 @@ | |||
#ifndef AL_EFX_H | |||
#define AL_EFX_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 */ |
@ -0,0 +1,467 @@ | |||
/********************************************************************************************** | |||
* | |||
* raylib 1.2 (www.raylib.com) | |||
* | |||
* A simple and easy-to-use library to learn videogames programming | |||
* | |||
* Features: | |||
* Library written in plain C code (C99) | |||
* Uses C# PascalCase/camelCase notation | |||
* Hardware accelerated with OpenGL (1.1, 3.3+ or ES2) | |||
* Unique OpenGL abstraction layer [rlgl] | |||
* Powerful fonts module with SpriteFonts support | |||
* Multiple textures support, including DDS and mipmaps generation | |||
* Basic 3d support for Shapes, Models, Heightmaps and Billboards | |||
* Powerful math module for Vector and Matrix operations [raymath] | |||
* Audio loading and playing with streaming support (WAV and OGG) | |||
* Multiplatform support, including Android devices and Raspberry Pi | |||
* | |||
* Used external libs: | |||
* GLFW3 (www.glfw.org) for window/context management and input | |||
* GLEW for OpenGL extensions loading (3.3+ and ES2) | |||
* stb_image (Sean Barret) for images loading (JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC) | |||
* stb_image_write (Sean Barret) for image writting (PNG) | |||
* stb_vorbis (Sean Barret) for ogg audio loading | |||
* OpenAL Soft for audio device/context management | |||
* tinfl for data decompression (DEFLATE algorithm) | |||
* | |||
* Some design decisions: | |||
* 32bit Colors - All defined color are always RGBA | |||
* 32bit Textures - All loaded images are converted automatically to RGBA textures | |||
* SpriteFonts - All loaded sprite-font images are converted to RGBA and POT textures | |||
* One custom default font is loaded automatically when InitWindow() | |||
* If using OpenGL 3.3+ or ES2, one default shader is loaded automatically (internally defined) | |||
* | |||
* -- LICENSE (raylib v1.2, September 2014) -- | |||
* | |||
* raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, | |||
* BSD-like license that allows static linking with closed source software: | |||
* | |||
* Copyright (c) 2013 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
* | |||
* This software is provided "as-is", without any express or implied warranty. In no event | |||
* will the authors be held liable for any damages arising from the use of this software. | |||
* | |||
* Permission is granted to anyone to use this software for any purpose, including commercial | |||
* applications, and to alter it and redistribute it freely, subject to the following restrictions: | |||
* | |||
* 1. The origin of this software must not be misrepresented; you must not claim that you | |||
* wrote the original software. If you use this software in a product, an acknowledgment | |||
* in the product documentation would be appreciated but is not required. | |||
* | |||
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented | |||
* as being the original software. | |||
* | |||
* 3. This notice may not be removed or altered from any source distribution. | |||
* | |||
**********************************************************************************************/ | |||
#ifndef RAYLIB_H | |||
#define RAYLIB_H | |||
// Choose your platform here or just define it at compile time: -DPLATFORM_DESKTOP | |||
//#define PLATFORM_DESKTOP // Windows, Linux or OSX | |||
//#define PLATFORM_ANDROID // Android device | |||
//#define PLATFORM_RPI // Raspberry Pi | |||
#if defined(PLATFORM_ANDROID) | |||
#include <android_native_app_glue.h> // Defines android_app struct | |||
#endif | |||
//---------------------------------------------------------------------------------- | |||
// Some basic Defines | |||
//---------------------------------------------------------------------------------- | |||
#ifndef PI | |||
#define PI 3.14159265358979323846 | |||
#endif | |||
#define DEG2RAD (PI / 180.0f) | |||
#define RAD2DEG (180.0f / PI) | |||
// Keyboard Function Keys | |||
#define KEY_SPACE 32 | |||
#define KEY_ESCAPE 256 | |||
#define KEY_ENTER 257 | |||
#define KEY_BACKSPACE 259 | |||
#define KEY_RIGHT 262 | |||
#define KEY_LEFT 263 | |||
#define KEY_DOWN 264 | |||
#define KEY_UP 265 | |||
#define KEY_F1 290 | |||
#define KEY_F2 291 | |||
#define KEY_F3 292 | |||
#define KEY_F4 293 | |||
#define KEY_F5 294 | |||
#define KEY_F6 295 | |||
#define KEY_F7 296 | |||
#define KEY_F8 297 | |||
#define KEY_F9 298 | |||
#define KEY_F10 299 | |||
#define KEY_LEFT_SHIFT 340 | |||
#define KEY_LEFT_CONTROL 341 | |||
#define KEY_LEFT_ALT 342 | |||
#define KEY_RIGHT_SHIFT 344 | |||
#define KEY_RIGHT_CONTROL 345 | |||
#define KEY_RIGHT_ALT 346 | |||
// Mouse Buttons | |||
#define MOUSE_LEFT_BUTTON 0 | |||
#define MOUSE_RIGHT_BUTTON 1 | |||
#define MOUSE_MIDDLE_BUTTON 2 | |||
// Gamepad Number | |||
#define GAMEPAD_PLAYER1 0 | |||
#define GAMEPAD_PLAYER2 1 | |||
#define GAMEPAD_PLAYER3 2 | |||
#define GAMEPAD_PLAYER4 3 | |||
// Gamepad Buttons | |||
// NOTE: Adjusted for a PS3 USB Controller | |||
#define GAMEPAD_BUTTON_A 2 | |||
#define GAMEPAD_BUTTON_B 1 | |||
#define GAMEPAD_BUTTON_X 3 | |||
#define GAMEPAD_BUTTON_Y 4 | |||
#define GAMEPAD_BUTTON_R1 7 | |||
#define GAMEPAD_BUTTON_R2 5 | |||
#define GAMEPAD_BUTTON_L1 6 | |||
#define GAMEPAD_BUTTON_L2 8 | |||
#define GAMEPAD_BUTTON_SELECT 9 | |||
#define GAMEPAD_BUTTON_START 10 | |||
// TODO: Review Xbox360 USB Controller Buttons | |||
// Some Basic Colors | |||
// NOTE: Custom raylib color palette for amazing visuals on WHITE background | |||
#define LIGHTGRAY (Color){ 200, 200, 200, 255 } // Light Gray | |||
#define GRAY (Color){ 130, 130, 130, 255 } // Gray | |||
#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray | |||
#define YELLOW (Color){ 253, 249, 0, 255 } // Yellow | |||
#define GOLD (Color){ 255, 203, 0, 255 } // Gold | |||
#define ORANGE (Color){ 255, 161, 0, 255 } // Orange | |||
#define PINK (Color){ 255, 109, 194, 255 } // Pink | |||
#define RED (Color){ 230, 41, 55, 255 } // Red | |||
#define MAROON (Color){ 190, 33, 55, 255 } // Maroon | |||
#define GREEN (Color){ 0, 228, 48, 255 } // Green | |||
#define LIME (Color){ 0, 158, 47, 255 } // Lime | |||
#define DARKGREEN (Color){ 0, 117, 44, 255 } // Dark Green | |||
#define SKYBLUE (Color){ 102, 191, 255, 255 } // Sky Blue | |||
#define BLUE (Color){ 0, 121, 241, 255 } // Blue | |||
#define DARKBLUE (Color){ 0, 82, 172, 255 } // Dark Blue | |||
#define PURPLE (Color){ 200, 122, 255, 255 } // Purple | |||
#define VIOLET (Color){ 135, 60, 190, 255 } // Violet | |||
#define DARKPURPLE (Color){ 112, 31, 126, 255 } // Dark Purple | |||
#define BEIGE (Color){ 211, 176, 131, 255 } // Beige | |||
#define BROWN (Color){ 127, 106, 79, 255 } // Brown | |||
#define DARKBROWN (Color){ 76, 63, 47, 255 } // Dark Brown | |||
#define WHITE (Color){ 255, 255, 255, 255 } // White | |||
#define BLACK (Color){ 0, 0, 0, 255 } // Black | |||
#define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) | |||
#define MAGENTA (Color){ 255, 0, 255, 255 } // Magenta | |||
#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) | |||
//---------------------------------------------------------------------------------- | |||
// Types and Structures Definition | |||
//---------------------------------------------------------------------------------- | |||
// Boolean type | |||
typedef enum { false, true } bool; | |||
// Vector2 type | |||
typedef struct Vector2 { | |||
float x; | |||
float y; | |||
} Vector2; | |||
// Vector3 type | |||
typedef struct Vector3 { | |||
float x; | |||
float y; | |||
float z; | |||
} Vector3; | |||
// Color type, RGBA (32bit) | |||
typedef struct Color { | |||
unsigned char r; | |||
unsigned char g; | |||
unsigned char b; | |||
unsigned char a; | |||
} Color; | |||
// Rectangle type | |||
typedef struct Rectangle { | |||
int x; | |||
int y; | |||
int width; | |||
int height; | |||
} Rectangle; | |||
// Image type, bpp always RGBA (32bit) | |||
// NOTE: Data stored in CPU memory (RAM) | |||
typedef struct Image { | |||
Color *pixels; | |||
int width; | |||
int height; | |||
} Image; | |||
// Texture2D type, bpp always RGBA (32bit) | |||
// NOTE: Data stored in GPU memory | |||
typedef struct Texture2D { | |||
unsigned int id; // OpenGL id | |||
int width; | |||
int height; | |||
} Texture2D; | |||
// Character type (one font glyph) | |||
// NOTE: Defined in module: text | |||
typedef struct Character Character; | |||
// SpriteFont type, includes texture and charSet array data | |||
typedef struct SpriteFont { | |||
Texture2D texture; | |||
int numChars; | |||
Character *charSet; | |||
} SpriteFont; | |||
// Camera type, defines a camera position/orientation in 3d space | |||
typedef struct Camera { | |||
Vector3 position; | |||
Vector3 target; | |||
Vector3 up; | |||
} Camera; | |||
// Vertex data definning a mesh | |||
typedef struct VertexData { | |||
int vertexCount; | |||
float *vertices; // 3 components per vertex | |||
float *texcoords; // 2 components per vertex | |||
float *normals; // 3 components per vertex | |||
unsigned char *colors; // 4 components per vertex | |||
} VertexData; | |||
// 3d Model type | |||
// NOTE: If using OpenGL 1.1, loaded in CPU (mesh); if OpenGL 3.3+ loaded in GPU (vaoId) | |||
typedef struct Model { | |||
VertexData mesh; | |||
unsigned int vaoId; | |||
unsigned int vboId[4]; | |||
unsigned int textureId; | |||
//Matrix transform; | |||
} Model; | |||
// Sound source type | |||
typedef struct Sound { | |||
unsigned int source; | |||
unsigned int buffer; | |||
} Sound; | |||
#ifdef __cplusplus | |||
extern "C" { // Prevents name mangling of functions | |||
#endif | |||
//------------------------------------------------------------------------------------ | |||
// Global Variables Definition | |||
//------------------------------------------------------------------------------------ | |||
// It's lonely here... | |||
//------------------------------------------------------------------------------------ | |||
// Window and Graphics Device Functions (Module: core) | |||
//------------------------------------------------------------------------------------ | |||
#if defined(PLATFORM_ANDROID) | |||
void InitWindow(int width, int height, struct android_app *state); // Init Android activity | |||
#elif defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) | |||
void InitWindow(int width, int height, const char *title); // Initialize Window and OpenGL Graphics | |||
#endif | |||
void CloseWindow(void); // Close Window and Terminate Context | |||
bool WindowShouldClose(void); // Detect if KEY_ESCAPE pressed or Close icon pressed | |||
void ToggleFullscreen(void); // Fullscreen toggle (only PLATFORM_DESKTOP) | |||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) | |||
void SetCustomCursor(const char *cursorImage); // Set a custom cursor icon/image | |||
void SetExitKey(int key); // Set a custom key to exit program (default is ESC) | |||
#endif | |||
int GetScreenWidth(void); // Get current screen width | |||
int GetScreenHeight(void); // Get current screen height | |||
void ClearBackground(Color color); // Sets Background Color | |||
void BeginDrawing(void); // Setup drawing canvas to start drawing | |||
void EndDrawing(void); // End canvas drawing and Swap Buffers (Double Buffering) | |||
void Begin3dMode(Camera cam); // Initializes 3D mode for drawing (Camera setup) | |||
void End3dMode(void); // Ends 3D mode and returns to default 2D orthographic mode | |||
void SetTargetFPS(int fps); // Set target FPS (maximum) | |||
float GetFPS(void); // Returns current FPS | |||
float GetFrameTime(void); // Returns time in seconds for one frame | |||
Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value | |||
int GetHexValue(Color color); // Returns hexadecimal value for a Color | |||
int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) | |||
Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f | |||
void ShowLogo(void); // Activates raylib logo at startup | |||
//------------------------------------------------------------------------------------ | |||
// Input Handling Functions (Module: core) | |||
//------------------------------------------------------------------------------------ | |||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) | |||
bool IsKeyPressed(int key); // Detect if a key has been pressed once | |||
bool IsKeyDown(int key); // Detect if a key is being pressed | |||
bool IsKeyReleased(int key); // Detect if a key has been released once | |||
bool IsKeyUp(int key); // Detect if a key is NOT being pressed | |||
bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once | |||
bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed | |||
bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once | |||
bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed | |||
int GetMouseX(void); // Returns mouse position X | |||
int GetMouseY(void); // Returns mouse position Y | |||
Vector2 GetMousePosition(void); // Returns mouse position XY | |||
int GetMouseWheelMove(void); // Returns mouse wheel movement Y | |||
bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available | |||
Vector2 GetGamepadMovement(int gamepad); // Return axis movement vector for a gamepad | |||
bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once | |||
bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed | |||
bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once | |||
bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed | |||
#endif | |||
#if defined(PLATFORM_ANDROID) | |||
bool IsScreenTouched(void); // Detect screen touch event | |||
int GetTouchX(void); // Returns touch position X | |||
int GetTouchY(void); // Returns touch position Y | |||
Vector2 GetTouchPosition(void); // Returns touch position XY | |||
#endif | |||
//------------------------------------------------------------------------------------ | |||
// Basic Shapes Drawing Functions (Module: shapes) | |||
//------------------------------------------------------------------------------------ | |||
void DrawPixel(int posX, int posY, Color color); // Draw a pixel | |||
void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version) | |||
void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line | |||
void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version) | |||
void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle | |||
void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle | |||
void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version) | |||
void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline | |||
void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle | |||
void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle | |||
void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2); // Draw a gradient-filled rectangle | |||
void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version) | |||
void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline | |||
void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle | |||
void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline | |||
void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version) | |||
void DrawPolyEx(Vector2 *points, int numPoints, Color color); // Draw a closed polygon defined by points | |||
void DrawPolyExLines(Vector2 *points, int numPoints, Color color); // Draw polygon lines | |||
bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles | |||
bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles | |||
bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle | |||
Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision | |||
bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle | |||
bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle | |||
bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle | |||
//------------------------------------------------------------------------------------ | |||
// Texture Loading and Drawing Functions (Module: textures) | |||
//------------------------------------------------------------------------------------ | |||
Image LoadImage(const char *fileName); // Load an image into CPU memory (RAM) | |||
Image LoadImageFromRES(const char *rresName, int resId); // Load an image from rRES file (raylib Resource) | |||
Texture2D LoadTexture(const char *fileName); // Load an image as texture into GPU memory | |||
Texture2D LoadTextureFromRES(const char *rresName, int resId); // Load an image as texture from rRES file (raylib Resource) | |||
Texture2D CreateTexture(Image image, bool genMipmaps); // Create a Texture2D from Image data (and generate mipmaps) | |||
void UnloadImage(Image image); // Unload image from CPU memory (RAM) | |||
void UnloadTexture(Texture2D texture); // Unload texture from GPU memory | |||
void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D | |||
void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2 | |||
void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters | |||
void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle | |||
void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, // Draw a part of a texture defined by a rectangle with 'pro' parameters | |||
float rotation, Color tint); | |||
//------------------------------------------------------------------------------------ | |||
// Font Loading and Text Drawing Functions (Module: text) | |||
//------------------------------------------------------------------------------------ | |||
SpriteFont GetDefaultFont(void); // Get the default SpriteFont | |||
SpriteFont LoadSpriteFont(const char *fileName); // Load a SpriteFont image into GPU memory | |||
void UnloadSpriteFont(SpriteFont spriteFont); // Unload SpriteFont from GPU memory | |||
void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font) | |||
void DrawTextEx(SpriteFont spriteFont, const char* text, Vector2 position, // Draw text using SpriteFont and additional parameters | |||
int fontSize, int spacing, Color tint); | |||
int MeasureText(const char *text, int fontSize); // Measure string width for default font | |||
Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, int fontSize, int spacing); // Measure string size for SpriteFont | |||
int GetFontBaseSize(SpriteFont spriteFont); // Returns the base size for a SpriteFont (chars height) | |||
void DrawFPS(int posX, int posY); // Shows current FPS on top-left corner | |||
const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' | |||
//------------------------------------------------------------------------------------ | |||
// Basic 3d Shapes Drawing Functions (Module: models) | |||
//------------------------------------------------------------------------------------ | |||
void DrawCube(Vector3 position, float width, float height, float lenght, Color color); // Draw cube | |||
void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version) | |||
void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color); // Draw cube wires | |||
void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float lenght, Color color); // Draw cube textured | |||
void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere | |||
void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters | |||
void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires | |||
void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone | |||
void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires | |||
void DrawPlane(Vector3 centerPos, Vector2 size, Vector3 rotation, Color color); // Draw a plane | |||
void DrawPlaneEx(Vector3 centerPos, Vector2 size, Vector3 rotation, int slicesX, int slicesZ, Color color); // Draw a plane with divisions | |||
void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) | |||
void DrawGizmo(Vector3 position); // Draw simple gizmo | |||
void DrawGizmoEx(Vector3 position, Vector3 rotation, float scale); // Draw gizmo with extended parameters | |||
//DrawTorus(), DrawTeapot() are useless... | |||
//------------------------------------------------------------------------------------ | |||
// Model 3d Loading and Drawing Functions (Module: models) | |||
//------------------------------------------------------------------------------------ | |||
Model LoadModel(const char *fileName); // Load a 3d model (.OBJ) | |||
//Model LoadModelFromRES(const char *rresName, int resId); // TODO: Load a 3d model from rRES file (raylib Resource) | |||
Model LoadHeightmap(Image heightmap, float maxHeight); // Load a heightmap image as a 3d model | |||
Model LoadCubesmap(Image cubesmap); // Load a map image as a 3d model (cubes based) | |||
void UnloadModel(Model model); // Unload 3d model from memory | |||
void SetModelTexture(Model *model, Texture2D texture); // Link a texture to a model | |||
void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set) | |||
void DrawModelEx(Model model, Vector3 position, Vector3 rotation, Vector3 scale, Color tint); // Draw a model with extended parameters | |||
void DrawModelWires(Model model, Vector3 position, float scale, Color color); // Draw a model wires (with texture if set) | |||
void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture | |||
void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec | |||
//------------------------------------------------------------------------------------ | |||
// Audio Loading and Playing Functions (Module: audio) | |||
//------------------------------------------------------------------------------------ | |||
void InitAudioDevice(void); // Initialize audio device and context | |||
void CloseAudioDevice(void); // Close the audio device and context (and music stream) | |||
Sound LoadSound(char *fileName); // Load sound to memory | |||
Sound LoadSoundFromRES(const char *rresName, int resId); // Load sound to memory from rRES file (raylib Resource) | |||
void UnloadSound(Sound sound); // Unload sound | |||
void PlaySound(Sound sound); // Play a sound | |||
void PauseSound(Sound sound); // Pause a sound | |||
void StopSound(Sound sound); // Stop playing a sound | |||
bool SoundIsPlaying(Sound sound); // Check if a sound is currently playing | |||
void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level) | |||
void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level) | |||
void PlayMusicStream(char *fileName); // Start music playing (open stream) | |||
void StopMusicStream(void); // Stop music playing (close stream) | |||
void PauseMusicStream(void); // Pause music playing | |||
void ResumeMusicStream(void); // Resume playing paused music | |||
bool MusicIsPlaying(void); // Check if music is playing | |||
void SetMusicVolume(float volume); // Set volume for music (1.0 is max level) | |||
float GetMusicTimeLength(void); // Get current music time length (in seconds) | |||
float GetMusicTimePlayed(void); // Get current music time played (in seconds) | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif // RAYLIB_H |
@ -0,0 +1,10 @@ | |||
# This file is automatically generated by Android Tools. | |||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | |||
# | |||
# This file must *NOT* be checked into Version Control Systems, | |||
# as it contains information specific to your local configuration. | |||
# location of the SDK. This is only used by Ant | |||
# For customization when using a Version Control System, please read the | |||
# header note. | |||
sdk.dir=C:\\android-sdk |
@ -0,0 +1,14 @@ | |||
# This file is automatically generated by Android Tools. | |||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | |||
# | |||
# This file must be checked in Version Control Systems. | |||
# | |||
# To customize properties used by the Ant build system edit | |||
# "ant.properties", and override values to adapt the script to your | |||
# project structure. | |||
# | |||
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): | |||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt | |||
# Project target. | |||
target=android-19 |
@ -0,0 +1,4 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<resources> | |||
<string name="app_name">raylibGame</string> | |||
</resources> |