]> git.jsancho.org Git - lugaru.git/blobdiff - Source/openal_wrapper.h
Add copyright notice and AUTHORS file for open source contributors
[lugaru.git] / Source / openal_wrapper.h
index f31c6c081277da807afc713ab0b9db4080c62e43..51a9f5ca9aa17b67eb4ccc384d9ea50f5619ba48 100644 (file)
@@ -1,3 +1,23 @@
+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+Lugaru 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #ifndef OPENAL_WRAPPER_H
 #define OPENAL_WRAPPER_H
 
 
 
 typedef struct OPENAL_SAMPLE    OPENAL_SAMPLE;
-typedef struct OPENAL_STREAM    OPENAL_STREAM;
+typedef OPENAL_SAMPLE    OPENAL_STREAM;
 typedef struct OPENAL_DSPUNIT   OPENAL_DSPUNIT;
 
-enum OPENAL_OUTPUTTYPES
-{
-       OPENAL_OUTPUT_NOSOUND,    /* NoSound driver, all calls to this succeed but do nothing. */
-       OPENAL_OUTPUT_OSS,        /* Linux/Unix OSS (Open Sound System) driver, i.e. the kernel sound drivers. */
-       OPENAL_OUTPUT_ALSA,       /* Linux Alsa driver. */
+enum OPENAL_OUTPUTTYPES {
+    OPENAL_OUTPUT_NOSOUND,    /* NoSound driver, all calls to this succeed but do nothing. */
+    OPENAL_OUTPUT_OSS,        /* Linux/Unix OSS (Open Sound System) driver, i.e. the kernel sound drivers. */
+    OPENAL_OUTPUT_ALSA,       /* Linux Alsa driver. */
 };
 
 #define OPENAL_LOOP_OFF      0x00000001  /* For non looping samples. */
@@ -65,44 +84,29 @@ enum OPENAL_OUTPUTTYPES
 extern "C" {
 #endif
 
-AL_API void OPENAL_3D_Listener_SetAttributes(const float *pos, const float *vel, float fx, float fy, float fz, float tx, float ty, float tz);
-AL_API signed char OPENAL_3D_SetAttributes(int channel, const float *pos, const float *vel);
-AL_API void OPENAL_3D_SetDopplerFactor(float scale);
-AL_API signed char OPENAL_Init(int mixrate, int maxsoftwarechannels, unsigned int flags);
-AL_API void OPENAL_Close();
-AL_API OPENAL_SAMPLE *OPENAL_GetCurrentSample(int channel);
-AL_API signed char OPENAL_GetPaused(int channel);
-AL_API unsigned int OPENAL_GetLoopMode(int channel);
-AL_API signed char OPENAL_IsPlaying(int channel);
-AL_API int OPENAL_PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
-AL_API OPENAL_SAMPLE *OPENAL_Sample_Load(int index, const char *name_or_data, unsigned int mode, int offset, int length);
-AL_API void OPENAL_Sample_Free(OPENAL_SAMPLE *sptr);
-AL_API signed char OPENAL_Sample_SetMode(OPENAL_SAMPLE *sptr, unsigned int mode);
-AL_API signed char OPENAL_Sample_SetMinMaxDistance(OPENAL_SAMPLE *sptr, float mindist, float maxdist);
-AL_API signed char OPENAL_SetFrequency(int channel, int freq);
-AL_API signed char OPENAL_SetVolume(int channel, int vol);
-AL_API signed char OPENAL_SetPaused(int channel, signed char paused);
-AL_API void OPENAL_SetSFXMasterVolume(int volume);
-AL_API signed char OPENAL_StopSound(int channel);
-AL_API OPENAL_STREAM *OPENAL_Stream_Open(const char *name_or_data, unsigned int mode, int offset, int length);
-AL_API signed char OPENAL_Stream_Close(OPENAL_STREAM *stream);
-AL_API OPENAL_SAMPLE *OPENAL_Stream_GetSample(OPENAL_STREAM *stream);
-AL_API int OPENAL_Stream_PlayEx(int channel, OPENAL_STREAM *stream, OPENAL_DSPUNIT *dsp, signed char startpaused);
-AL_API signed char OPENAL_Stream_Stop(OPENAL_STREAM *stream);
-AL_API signed char OPENAL_Stream_SetMode(OPENAL_STREAM *stream, unsigned int mode);
-AL_API void OPENAL_Update();
-AL_API signed char OPENAL_SetOutput(int outputtype);
+#undef AL_API
+#define AL_API
+
+    AL_API void OPENAL_3D_Listener_SetAttributes(const float *pos, const float *vel, float fx, float fy, float fz, float tx, float ty, float tz);
+    AL_API signed char OPENAL_3D_SetAttributes(int channel, const float *pos, const float *vel);
+    AL_API signed char OPENAL_3D_SetAttributes_(int channel, const XYZ &pos, const float *vel);
+    AL_API signed char OPENAL_Init(int mixrate, int maxsoftwarechannels, unsigned int flags);
+    AL_API void OPENAL_Close();
+    AL_API OPENAL_SAMPLE *OPENAL_Sample_Load(int index, const char *name_or_data, unsigned int mode, int offset, int length);
+    AL_API void OPENAL_Sample_Free(OPENAL_SAMPLE *sptr);
+    AL_API signed char OPENAL_SetFrequency(int channel, int freq);
+    AL_API signed char OPENAL_SetVolume(int channel, int vol);
+    AL_API signed char OPENAL_SetPaused(int channel, signed char paused);
+    AL_API void OPENAL_SetSFXMasterVolume(int volume);
+    AL_API signed char OPENAL_StopSound(int channel);
+    AL_API signed char OPENAL_Stream_SetMode(OPENAL_STREAM *stream, unsigned int mode);
+    AL_API void OPENAL_Update();
+    AL_API signed char OPENAL_SetOutput(int outputtype);
+    void PlaySoundEx(int chan, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
+    void PlayStreamEx(int chan, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
 
 #ifdef __cplusplus
 }
 #endif
 
-#if USE_OPENAL
-#  define OPENAL_Sample_LoadEx(a, b, c, d, e) OPENAL_Sample_Load( a, ConvertFileName( b), c, d, e)
-#  define OPENAL_Stream_OpenEx(a, b, c, d) OPENAL_Stream_Open(ConvertFileName(a), b, c, d)
-#elif !PLATFORM_MACOSX
-#  define OPENAL_Sample_LoadEx(a, b, c, d, e) FSOUND_Sample_Load( a, ConvertFileName( b), c, d, e)
-#  define OPENAL_Stream_OpenEx(a, b, c, d) FSOUND_Stream_Open(ConvertFileName(a), b, c, d)
-#endif
-
 #endif