lwjgl/src/native/common/extal.h

163 lines
4.2 KiB
C
Raw Normal View History

2002-08-30 17:30:40 -04:00
/*
* Copyright (c) 2002 Light Weight Java Game Library Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'Light Weight Java Game Library' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _AL_TEST_H
#define _AL_TEST_H
2002-12-14 08:37:46 -05:00
#ifdef _WIN32
2002-08-30 17:30:40 -04:00
#include <windows.h>
2002-12-14 08:37:46 -05:00
#endif
2003-09-07 09:28:19 -04:00
#ifdef _X11
2002-12-14 07:49:16 -05:00
#include <AL/altypes.h>
#include <AL/alctypes.h>
2003-09-08 10:40:46 -04:00
#endif
#ifdef _WIN32
2003-09-07 09:28:19 -04:00
#include <altypes.h>
#include <alctypes.h>
#endif
2003-09-08 10:40:46 -04:00
#ifdef _AGL
#include <OpenAL/alctypes.h>
#include <OpenAL/altypes.h>
#endif
#include <jni.h>
#include "common_tools.h"
bool extal_InitializeClass(JNIEnv *env, jclass clazz, jobject ext_set, const char *ext_name, int num_functions, JavaMethodAndExtFunction *functions);
2002-12-14 07:49:16 -05:00
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#ifdef _OPENAL32LIB
#define ALCAPI __declspec(dllexport)
#else
#define ALCAPI __declspec(dllimport)
#endif
2002-12-14 08:52:25 -05:00
typedef struct ALCdevice_struct ALCdevice;
typedef struct ALCcontext_struct ALCcontext;
2002-12-14 07:49:16 -05:00
#define ALCAPIENTRY __cdecl
#else
2003-09-07 12:11:15 -04:00
#ifdef _AGL
#if _AGL
2003-05-16 22:50:51 -04:00
typedef struct ALCdevice_struct ALCdevice;
typedef struct ALCcontext_struct ALCcontext;
2002-12-14 07:49:16 -05:00
#endif
#endif
#define ALCAPI
2002-12-14 08:37:46 -05:00
#define ALCAPIENTRY
2002-12-14 08:52:25 -05:00
/** ALC boolean type. */
typedef char ALCboolean;
/** ALC 8bit signed byte. */
typedef char ALCbyte;
/** ALC 8bit unsigned byte. */
typedef unsigned char ALCubyte;
/** ALC 16bit signed short integer type. */
typedef short ALCshort;
/** ALC 16bit unsigned short integer type. */
typedef unsigned short ALCushort;
/** ALC 32bit unsigned integer type. */
typedef unsigned ALCuint;
/** ALC 32bit signed integer type. */
typedef int ALCint;
/** ALC 32bit floating point type. */
typedef float ALCfloat;
/** ALC 64bit double point type. */
typedef double ALCdouble;
/** ALC 32bit type. */
typedef unsigned int ALCsizei;
/** ALC void type */
typedef void ALCvoid;
#endif
2002-12-14 07:49:16 -05:00
#ifdef _WIN32
#ifdef _OPENAL32LIB
#define ALAPI __declspec(dllexport)
#else
#define ALAPI __declspec(dllimport)
#endif
#define ALAPIENTRY __cdecl
#define AL_CALLBACK
#else
#define ALAPI
2002-12-14 08:37:46 -05:00
#define ALAPIENTRY
2002-12-14 07:49:16 -05:00
#define AL_CALLBACK
2002-11-28 14:36:09 -05:00
#endif
2002-12-14 07:49:16 -05:00
2002-12-14 08:37:46 -05:00
#ifdef _WIN32
// EAX 2.0 GUIDs
const GUID DSPROPSETID_EAX20_ListenerProperties
= { 0x306a6a8, 0xb224, 0x11d2, { 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } };
const GUID DSPROPSETID_EAX20_BufferProperties
= { 0x306a6a7, 0xb224, 0x11d2, {0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22 } };
2002-12-14 08:37:46 -05:00
#endif
2002-12-14 07:49:16 -05:00
#define INITGUID
#define OPENAL
2003-10-22 06:57:19 -04:00
void InitializeOpenAL(JNIEnv *env, jobjectArray oalPaths);
2002-12-14 07:49:16 -05:00
void DeInitializeOpenAL();
2002-12-14 08:37:46 -05:00
#ifdef _WIN32
2002-12-14 07:49:16 -05:00
typedef ALenum (*EAXSet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
typedef ALenum (*EAXGet)(const GUID*, ALuint, ALuint, ALvoid*, ALuint);
extern EAXSet eaxSet;
extern EAXGet eaxGet;
2002-12-14 08:37:46 -05:00
#endif
2002-12-14 07:49:16 -05:00
typedef ALvoid (ALAPIENTRY *alEnablePROC)( ALenum capability );
extern alEnablePROC alEnable;
2002-12-14 07:49:16 -05:00
#ifdef __cplusplus
}
#endif
2002-12-14 08:37:46 -05:00
#endif