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> | |||