This commit is contained in:
commit
9cac8153da
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="Tutorial:2DSound" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="..\..\bin\win32-gcc\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Debug\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="..\..\bin\win32-gcc\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Release\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-O2" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Visual">
|
||||
<Option output="..\..\bin\win32-visual\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\visual" />
|
||||
<Option type="1" />
|
||||
<Option compiler="msvc8" />
|
||||
<Option use_console_runner="0" />
|
||||
<Linker>
|
||||
<Add library="cAudio.lib" />
|
||||
<Add directory="..\..\bin\win32-visual" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="-Wall" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="cAudio" />
|
||||
<Add directory="..\..\bin\win32-gcc" />
|
||||
</Linker>
|
||||
<Unit filename="main.cpp" />
|
||||
<Extensions>
|
||||
<code_completion />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
|
@ -0,0 +1,37 @@
|
|||
#include <iostream>
|
||||
//Include IAudioManager so we can easily work with cAudio
|
||||
#include "../../include/IAudioManager.h"
|
||||
//Include IAudio so we can create cAudio objects
|
||||
#include "../../include/IAudio.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
//To make visual studio happy
|
||||
cAudio::IAudio* mysound;
|
||||
|
||||
//Some fancy text
|
||||
cout <<"cAudio 1.7.1 Tutorial 1: 2DSound\n";
|
||||
|
||||
//Grap the cAudioManager
|
||||
cAudio::IAudioManager* manager = cAudio::getAudioManager();
|
||||
//Init the cAudio Engine
|
||||
manager->init(argc,argv);
|
||||
//Create a IAudio object and load a sound from a file
|
||||
mysound = manager->createFromFile("bling","../../bin/bling.ogg",true);
|
||||
//Set the IAudio Sound to play2d and loop
|
||||
mysound->play2d(true);
|
||||
|
||||
while(mysound->playing()){
|
||||
//Playback sound
|
||||
manager->update();
|
||||
|
||||
}
|
||||
|
||||
//Delete all IAudio sounds
|
||||
manager->release();
|
||||
//Shutdown cAudio
|
||||
manager->shutDown();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="Tutorial:2DSound" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="..\..\bin\win32-gcc\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Debug\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="..\..\bin\win32-gcc\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Release\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-O2" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Visual">
|
||||
<Option output="..\..\bin\win32-visual\Tutorial2DSound" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\visual" />
|
||||
<Option type="1" />
|
||||
<Option compiler="msvc8" />
|
||||
<Option use_console_runner="0" />
|
||||
<Linker>
|
||||
<Add library="cAudio.lib" />
|
||||
<Add directory="..\..\bin\win32-visual" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="-Wall" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="cAudio" />
|
||||
<Add directory="..\..\bin\win32-gcc" />
|
||||
</Linker>
|
||||
<Unit filename="main.cpp" />
|
||||
<Extensions>
|
||||
<code_completion />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
|
@ -0,0 +1,46 @@
|
|||
//****************************************************************
|
||||
//cAudio 1.7.1 Tutorial 2
|
||||
//Basic 3d Audio. Moving Audio source. Must be mono sound source
|
||||
//****************************************************************
|
||||
|
||||
#include <iostream>
|
||||
//Include IAudioManager so we can easily work with cAudio
|
||||
#include "../../include/IAudioManager.h"
|
||||
//Include IAudio so we can create cAudio objects
|
||||
#include "../../include/IAudio.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
//To make visual studio happy
|
||||
cAudio::IAudio* mysound;
|
||||
//Some fancy text
|
||||
cout <<"cAudio 1.7.1 Tutorial 2: 3dSound\n";
|
||||
//Hold audio source x position
|
||||
float x = 0;
|
||||
//Grap the cAudioManager
|
||||
cAudio::IAudioManager* manager = cAudio::getAudioManager();
|
||||
//Init the cAudio Engine
|
||||
manager->init(argc,argv);
|
||||
manager->setListenerPos(0.0,0.0,0.0);
|
||||
//Create a IAudio object and load a sound from a file
|
||||
mysound = manager->createFromFile("bling","bling.ogg",true);
|
||||
//Set the IAudio Sound to play3d and loop
|
||||
//play3d takes 4 arguments play3d(toloop,x,y,z,strength)
|
||||
mysound->play3d(true,0.0,0.0,0.0,0.1);
|
||||
|
||||
while(mysound->playing()){
|
||||
//Playback sound
|
||||
x+=0.0001;
|
||||
mysound->setPosition(x,0.0,0.0);
|
||||
manager->update();
|
||||
|
||||
}
|
||||
|
||||
//Delete all IAudio sounds
|
||||
manager->release();
|
||||
//Shutdown cAudio
|
||||
manager->shutDown();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="Tutorial:MemoryPlayback" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="..\..\bin\win32-gcc\TutorialMemoryPlayback" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Debug\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="..\..\bin\win32-gcc\TutorialMemoryPlayback" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\Release\" />
|
||||
<Option type="1" />
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-O2" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Visual">
|
||||
<Option output="..\..\bin\win32-visual\TutorialMemoryPlayback" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\visual" />
|
||||
<Option type="1" />
|
||||
<Option compiler="msvc8" />
|
||||
<Option use_console_runner="0" />
|
||||
<Linker>
|
||||
<Add library="cAudio.lib" />
|
||||
<Add directory="..\..\bin\win32-visual" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="-Wall" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="cAudio" />
|
||||
<Add directory="..\..\bin\win32-gcc" />
|
||||
</Linker>
|
||||
<Unit filename="main.cpp" />
|
||||
<Extensions>
|
||||
<code_completion />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,46 @@
|
|||
//****************************************************************
|
||||
//cAudio 1.7.1 Tutorial 3
|
||||
//Basic Memory Playback *Virtual file systems*
|
||||
//bling.h created with bin2h http://deadnode.org/sw/bin2h/
|
||||
//****************************************************************
|
||||
|
||||
#include <iostream>
|
||||
//Include IAudioManager so we can easily work with cAudio
|
||||
#include "../../include/IAudioManager.h"
|
||||
//Include IAudio so we can create cAudio objects
|
||||
#include "../../include/IAudio.h"
|
||||
//Our Bling sound
|
||||
#include "bling.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
//Make visual studio happy
|
||||
cAudio::IAudio* mysound;
|
||||
//Some fancy text
|
||||
cout <<"cAudio 1.7.1 Tutorial 3: MemoryPlayback\n";
|
||||
//Grap the cAudioManager
|
||||
cAudio::IAudioManager* manager = cAudio::getAudioManager();
|
||||
//Init the cAudio Engine
|
||||
manager->init(argc,argv);
|
||||
manager->setListenerPos(0.0,0.0,0.0);
|
||||
//Create a IAudio object and load a sound from memory. using the bling array and bling size generated by bin2h.
mysound = manager->createFromMemory("bling",(const char*)bling,bling_size,"wav");
|
||||
//Set the IAudio Sound to play2d and loop
|
||||
mysound->play2d(true);
|
||||
|
||||
|
||||
while(mysound->playing()){
|
||||
|
||||
//Playback sound
|
||||
manager->update();
|
||||
|
||||
}
|
||||
|
||||
//Delete all IAudio sounds
|
||||
manager->release();
|
||||
//Shutdown cAudio
|
||||
manager->shutDown();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
cd Tutorial1_2DSound
|
||||
g++ main.cpp -o ../../bin/linux-x86/2DSound -lcAudio
|
||||
cd ../
|
||||
cd Tutorial2_3DSound
|
||||
g++ main.cpp -o ../../bin/linux-x86/3DSound -lcAudio
|
||||
cd ../
|
||||
cd Tutorial3_MemoryPlayback
|
||||
g++ main.cpp -o ../../bin/linux-x86/MemoryPlayback -lcAudio
|
||||
cd ../
|
|
@ -0,0 +1,91 @@
|
|||
#ifndef CAUDIO_H_INCLUDED
|
||||
#define CAUDIO_H_INCLUDED
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include "AL/al.h"
|
||||
#include "AL/alut.h"
|
||||
#include <vector>
|
||||
|
||||
#define BUFFER_SIZE ( 1024 * 32 )
|
||||
#include "../include/IAudio.h"
|
||||
namespace cAudio
|
||||
{
|
||||
class cAudio : public IAudio
|
||||
{
|
||||
public:
|
||||
//! play with defualts / the last set values
|
||||
void play();
|
||||
//!plays the audio file 2d no distance.
|
||||
void play2d(bool loop = false);
|
||||
//!plays the audio file and sets it to 3d
|
||||
void play3d(bool loop = false, float x = 0.0, float y = 0.0, float z = 0.0, float soundstr = 1.0);
|
||||
//!allows us to set the position or reset the position
|
||||
void setPosition(float posx,float posy,float posz);
|
||||
//!allows you to set the audio objects velocity
|
||||
void setVelocity(float velx,float vely,float velz);
|
||||
//!allows us to set the direction the audio should play in / move
|
||||
void setDirection(float dirx,float diry,float dirz);
|
||||
//! Sets the audios pitch level
|
||||
void setPitch(float pitch);
|
||||
//!allows us to set and reset the sound strenght
|
||||
void setStrength(float soundstrength);
|
||||
//!Set the volume
|
||||
void setVolume(float volume);
|
||||
//!Set the doppler strength
|
||||
void setDopplerStrength(float doop);
|
||||
//!Set doppler velocity
|
||||
void setDopplerVelocity(float doopx,float doopy,float doopz);
|
||||
//!Seek the audio stream
|
||||
void seek(float secs);
|
||||
//!release the file handle
|
||||
void release();
|
||||
//!pauses the audio file
|
||||
void pause();
|
||||
//!controls altering of the looping to make it loop or not to.
|
||||
void loop(bool loop);
|
||||
//!stops the audio file from playing
|
||||
void stop();
|
||||
|
||||
//!returns if playing
|
||||
bool playback();
|
||||
//!check if source is playing
|
||||
bool playing();
|
||||
//!update the stream
|
||||
bool update();
|
||||
//!checks to make sure everything is ready to go
|
||||
bool isvalid();
|
||||
|
||||
cAudio(IAudioDecoder* decoder);
|
||||
~cAudio();
|
||||
|
||||
protected:
|
||||
//!empties the queue
|
||||
void empty();
|
||||
//!checks openal error state
|
||||
void check();
|
||||
//!reloads a buffer
|
||||
bool stream(ALuint buffer);
|
||||
//!stringify an error code
|
||||
std::string errorString(int code);
|
||||
|
||||
private:
|
||||
//! front and back buffers
|
||||
ALuint buffers[3];
|
||||
//! audio source
|
||||
ALuint source;
|
||||
//! decoder pointer
|
||||
IAudioDecoder* Decoder;
|
||||
|
||||
//! if the file to be played is going to be streamed
|
||||
bool streaming;
|
||||
//!if the file is to loop
|
||||
bool toloop;
|
||||
//!if the file should play
|
||||
bool playaudio;
|
||||
//!if to pause audio
|
||||
bool pauseaudio;
|
||||
//!if audio is paused
|
||||
bool paused();
|
||||
};
|
||||
}
|
||||
#endif //! CAUDIO_H_INCLUDED
|
|
@ -0,0 +1,65 @@
|
|||
#ifndef CAUDIOMANAGER_H_INCLUDED
|
||||
#define CAUDIOMANAGER_H_INCLUDED
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "cAudio.h"
|
||||
#include "../include/IAudioDecoderFactory.h"
|
||||
#include "cListener.h"
|
||||
#include "../include/IAudioManager.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
class IAudio;
|
||||
|
||||
class cAudioManager : public IAudioManager
|
||||
{
|
||||
public:
|
||||
//!Inits the audio manager calling the alut/etc start ups
|
||||
void init(int argc,char* argv[]);
|
||||
//!Shuts everything down
|
||||
void shutDown();
|
||||
//!Creates the cAudio object
|
||||
IAudio* createFromFile(const std::string& identifier,const std::string& file,bool stream = false);
|
||||
//!Loads ogg from memory or virtual file system
|
||||
IAudio* createFromMemory(const std::string& identifier, const char* data, size_t length, std::string ext);
|
||||
//!Register Audio Codec
|
||||
void registerAudioDecoder(IAudioDecoderFactory* factory, std::string extension);
|
||||
//!Allows you to set the listener position
|
||||
void setListenerPos(float x,float y,float z);
|
||||
//!Set Listener Orientation
|
||||
void setListenerOrientation(float ux,float uy,float uz);
|
||||
//!Updates the cAudio playback
|
||||
void update();
|
||||
//!Gets you the cAudio object you want
|
||||
IAudio *getSound(std::string identifier);
|
||||
//!Releases "ALL" cAudio objects
|
||||
void release();
|
||||
|
||||
static cAudioManager* Instance()
|
||||
{
|
||||
return &m_cAudioManager;
|
||||
}
|
||||
|
||||
protected:
|
||||
cAudioManager(){ }
|
||||
|
||||
private:
|
||||
//!Global cAudioManager
|
||||
static cAudioManager m_cAudioManager;
|
||||
//!The map that holds the cAudio objects
|
||||
std::map<std::string, IAudio*> audiomap;
|
||||
//!Decoder map that holds all decoders by file extension
|
||||
std::map<std::string, IAudioDecoderFactory*> decodermap;
|
||||
//!The listener object
|
||||
cListener initlistener;
|
||||
//!The listener X Coordinate
|
||||
float listenerX;
|
||||
//!The listener Y Coordinate
|
||||
float listenerY;
|
||||
//!THe listener Z Coordinate
|
||||
float listenerZ;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //! CAUDIOMANAGER_H_INCLUDED
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef CFILESOURCE_H
|
||||
#define CFILESOURCE_H
|
||||
|
||||
#include "../include/IDataSource.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class cFileSource : public IDataSource
|
||||
{
|
||||
public:
|
||||
cFileSource(const std::string& filename);
|
||||
~cFileSource();
|
||||
|
||||
//!Returns whether the source is valid (in case of an error, like the file couldn't be found)
|
||||
virtual bool isValid();
|
||||
|
||||
//!Get the current location in the data stream
|
||||
virtual int getCurrentPos();
|
||||
|
||||
//!Get the total size of the data stream
|
||||
virtual int getSize();
|
||||
|
||||
//!Read out a section of the data stream
|
||||
virtual int read(void* output, int size);
|
||||
|
||||
//!Seek to a position in the data stream
|
||||
virtual bool seek(int amount, bool relative);
|
||||
|
||||
protected:
|
||||
//!File Stream
|
||||
std::ifstream File;
|
||||
//!Hold if valid
|
||||
bool Valid;
|
||||
//!Holds file size
|
||||
int Filesize;
|
||||
private:
|
||||
//!File stream
|
||||
FILE* pFile;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! CFILESOURCE_H
|
|
@ -0,0 +1,84 @@
|
|||
#ifndef CLISTENER_H_INCLUDED
|
||||
#define CLISTENER_H_INCLUDED
|
||||
#include <AL/al.h>
|
||||
#include <AL/alut.h>
|
||||
//!#include <AL/alext.h>
|
||||
//!#include <AL/efx.h>
|
||||
#include <iostream>
|
||||
#define LOAD_AL_FUNC(x) (x = (typeof(x))alGetProcAddress(#x))
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
class cListener
|
||||
{
|
||||
public:
|
||||
cListener static &getInstance()
|
||||
{
|
||||
static cListener This;
|
||||
return This;
|
||||
}
|
||||
|
||||
//!Sets the listeners position
|
||||
void setPosition(ALfloat x,ALfloat y, ALfloat z)
|
||||
{
|
||||
alListener3f(AL_POSITION,x,y,z);
|
||||
}
|
||||
//!Sets the listeners orientation
|
||||
void setOrientation(ALfloat x,ALfloat y,ALfloat z,ALfloat upx,ALfloat upy,ALfloat upz)
|
||||
{
|
||||
ALfloat orientation[6] = {x,y,z,upx,upy,upz};
|
||||
alListenerfv(AL_ORIENTATION,orientation);
|
||||
}
|
||||
//!Inits Openal
|
||||
static void initaudio(int argc,char* argv[])
|
||||
{
|
||||
alutInit(&argc,argv);
|
||||
/*
|
||||
ALCcontext *Context;
|
||||
ALCdevice *Device;
|
||||
ALint attribs[4] = {0};
|
||||
ALCint iSends = 0;
|
||||
LPALGENEFFECTS alGenEffects;
|
||||
LPALDELETEEFFECTS alDeleteEffects;
|
||||
LPALISEFFECT alIsEffect;
|
||||
|
||||
Device = alcOpenDevice(NULL);
|
||||
|
||||
//!Query for effect extention
|
||||
if(alcIsExtensionPresent(Device,"ALC_EXT_EFX") == AL_FALSE){
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//!Use context creation hint to request 4 axiliary sends per source
|
||||
attribs[0] = ALC_MAX_AUXILIARY_SENDS;
|
||||
attribs[1] = 4;
|
||||
attribs[2] = 0;
|
||||
|
||||
Context = alcCreateContext(Device,attribs);
|
||||
|
||||
if(!Context)
|
||||
return;
|
||||
|
||||
//!activate context
|
||||
|
||||
alcMakeContextCurrent(Context);
|
||||
|
||||
//!retrive Actual number aux sends avaliable per source
|
||||
alcGetIntegerv(Device,ALC_MAX_AUXILIARY_SENDS,1,&iSends);
|
||||
|
||||
//!Get the effect extention function pointers
|
||||
LOAD_AL_FUNC(alGenEffects);
|
||||
LOAD_AL_FUNC(alDeleteEffects);
|
||||
LOAD_AL_FUNC(alIsEffect);
|
||||
|
||||
*/
|
||||
}
|
||||
//!Shutsdown openal
|
||||
static void shutdownaudio()
|
||||
{
|
||||
alutExit();
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif //! CLISTENER_H_INCLUDED
|
|
@ -0,0 +1,42 @@
|
|||
#ifndef CMEMORYSOURCE_H
|
||||
#define CMEMORYSOURCE_H
|
||||
|
||||
#include "../include/IDataSource.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
//!Class used to read from a memory source.
|
||||
//!If copy is true, then cMemorySource will make a copy of the data.
|
||||
//!Otherwise, cMemorySource will take care of deleting the data array for you.
|
||||
class cMemorySource : public IDataSource
|
||||
{
|
||||
public:
|
||||
cMemorySource(const void* data, int size, bool copy);
|
||||
~cMemorySource();
|
||||
|
||||
//!Returns whether the source is valid (in case of an error, like the file couldn't be found)
|
||||
virtual bool isValid();
|
||||
|
||||
//!Get the current location in the data stream
|
||||
virtual int getCurrentPos();
|
||||
|
||||
//!Get the total size of the data stream
|
||||
virtual int getSize();
|
||||
|
||||
//!Read out a section of the data stream
|
||||
virtual int read(void* output, int size);
|
||||
|
||||
//!Seek to a position in the data stream
|
||||
virtual bool seek(int amount, bool relative);
|
||||
protected:
|
||||
char* Data;
|
||||
int Size;
|
||||
bool Valid;
|
||||
int Pos;
|
||||
private:
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! CMEMORYSOURCE_H
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef COGGAUDIODECODERFACTORY_H
|
||||
#define COGGAUDIODECODERFACTORY_H
|
||||
|
||||
#include "../include/IAudioDecoderFactory.h"
|
||||
#include "cOggDecoder.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class cOggAudioDecoderFactory : public IAudioDecoderFactory
|
||||
{
|
||||
public:
|
||||
cOggAudioDecoderFactory() {}
|
||||
~cOggAudioDecoderFactory() {}
|
||||
|
||||
IAudioDecoder* CreateAudioDecoder(IDataSource* stream)
|
||||
{
|
||||
return new cOggDecoder(stream);
|
||||
}
|
||||
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! COGGAUDIODECODERFACTORY_H
|
|
@ -0,0 +1,53 @@
|
|||
#ifndef COGGDECODER_H_INCLUDED
|
||||
#define COGGDECODER_H_INCLUDED
|
||||
|
||||
#include "../include/IAudioDecoder.h"
|
||||
#include <ogg/ogg.h>
|
||||
#include <vorbis/codec.h>
|
||||
#include <vorbis/vorbisenc.h>
|
||||
#include <vorbis/vorbisfile.h>
|
||||
#include <iostream>
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class cOggDecoder : public IAudioDecoder
|
||||
{
|
||||
public:
|
||||
|
||||
cOggDecoder(IDataSource* stream);
|
||||
~cOggDecoder();
|
||||
|
||||
//!Retruns the format of the audio data
|
||||
virtual AudioFormats getFormat();
|
||||
|
||||
//!Returns the frequency of the audio data
|
||||
virtual int getFrequency();
|
||||
|
||||
//!Returns whether seeking is supported
|
||||
virtual bool isSeekingSupported();
|
||||
|
||||
//!Reads a section of data out of the audio stream
|
||||
virtual int readAudioData(void* output, int amount);
|
||||
|
||||
//!Sets the position to read data out of
|
||||
virtual bool setPosition(int position, bool relative);
|
||||
|
||||
//!If seeking is supported, will seek the stream to seconds
|
||||
virtual bool seek(int seconds,bool relative);
|
||||
|
||||
protected:
|
||||
//!Callbacks used for read memory
|
||||
ov_callbacks vorbisCallbacks;
|
||||
//!some formatting data
|
||||
vorbis_info* vorbisInfo;
|
||||
//!User Comments
|
||||
vorbis_comment* vorbisComment;
|
||||
//!Stream handle
|
||||
OggVorbis_File oggStream;
|
||||
bool seekable;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //! COGGDECODER_H_INCLUDED
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef CUTILS_H_INCLUDED
|
||||
#define CUTILS_H_INCLUDED
|
||||
#include <string>
|
||||
|
||||
//!Grabs the current extention of a given string.
|
||||
std::string getExt(const std::string& filename){
|
||||
if(filename.find_last_of(".") == std::string::npos) return filename;
|
||||
return filename.substr(filename.find_last_of(".") + 1, filename.length()-filename.find_last_of(".")-1);
|
||||
}
|
||||
|
||||
#endif //! CUTILS_H_INCLUDED
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef CWAVAUDIODECODERFACOTRY_H_INCLUDED
|
||||
#define CWAVAUDIODECODERFACOTRY_H_INCLUDED
|
||||
|
||||
#include "../include/IAudioDecoderFactory.h"
|
||||
#include "cWavDecoder.h"
|
||||
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class cWavAudioDecoderFactory : public IAudioDecoderFactory
|
||||
{
|
||||
public:
|
||||
cWavAudioDecoderFactory() {}
|
||||
~cWavAudioDecoderFactory() {}
|
||||
|
||||
IAudioDecoder* CreateAudioDecoder(IDataSource* stream)
|
||||
{
|
||||
return new cWavDecoder(stream);
|
||||
}
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! CWAVAUDIODECODERFACOTRY_H_INCLUDED
|
|
@ -0,0 +1,52 @@
|
|||
#ifndef CWAVDECODER_H_INCLUDED
|
||||
#define CWAVDECODER_H_INCLUDED
|
||||
|
||||
#include "../include/IAudioDecoder.h"
|
||||
#include <iostream>
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class cWavDecoder : public IAudioDecoder
|
||||
{
|
||||
public:
|
||||
|
||||
cWavDecoder(IDataSource* stream);
|
||||
~cWavDecoder();
|
||||
|
||||
//!Retruns the format of the audio data
|
||||
virtual AudioFormats getFormat();
|
||||
|
||||
//!Returns the frequency of the audio data
|
||||
virtual int getFrequency();
|
||||
|
||||
//!Returns whether seeking is supported
|
||||
virtual bool isSeekingSupported();
|
||||
|
||||
//!Reads a section of data out of the audio stream
|
||||
virtual int readAudioData(void* output, int amount);
|
||||
|
||||
//!Sets the position to read data out of
|
||||
virtual bool setPosition(int position, bool relative);
|
||||
|
||||
//!If seeking is supported, will seek the stream to seconds
|
||||
virtual bool seek(int seconds,bool relative);
|
||||
|
||||
private:
|
||||
int mChunkSize;
|
||||
int mSubChunk1Size;
|
||||
short mFormat;
|
||||
short mChannels;
|
||||
int mSampleRate;
|
||||
int mByteRate;
|
||||
short mBlockAlign;
|
||||
short mBitsPerSample;
|
||||
int mDataSize;
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //! CFLACDECODER_H_INCLUDED
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
The zlib/libpng License
|
||||
|
||||
Copyright (c) <2008> <DeathTocuhStudios>
|
||||
|
||||
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.
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
This is the new cAudio 1.7.1 Source Release. This is a bug fix release for cAudio also better packaged..
|
||||
|
||||
New:
|
||||
Examples Directory:
|
||||
Tutorial1:2dSound - Shows how to play a basic 2dSound
|
||||
Tutorial2:3dSound - Shows how to play a basic 3dSound
|
||||
Tutorial3:MemoryPlayback - Shows how to playback Audio from memory useful for virtual file system.
|
||||
|
||||
Bug fix:
|
||||
You no longer have to create a new object each time you want to play a audio file.
|
||||
|
||||
Source:
|
||||
Cleaned up the source code and fixed the commenting format
|
||||
|
||||
|
||||
To compile:
|
||||
|
||||
Windows: Open up the cAudio codeblocks project and build with your perfered compiler
|
||||
|
||||
Linux/Unix: Cd to the Source directory and run make.
|
||||
|
||||
Mac: Good luck..... Belive running make would work not sure though.
|
||||
|
||||
To compile examples:
|
||||
|
||||
Windows: Open up codeblocks projects in the Examples directory select perfered compiler.
|
||||
|
||||
Linux/Unix: Cd to the Examples directory and run ./buildAll.sh
|
||||
|
||||
Mac: Good luck..... Belive runing ./buildAll.sh would work
|
||||
|
||||
Compiled examples will be in bin/gcc bin/visual bin/linux depending
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
SONAME=libcAudio.so
|
||||
VERSION=1.7
|
||||
DIR=../bin/Linux/x86 #x86_64
|
||||
|
||||
DEPEND=-lmikmod -logg -lopenal -lalut -lvorbis -lvorbisenc -lvorbisfile\
|
||||
-I../dependencies/Headers
|
||||
|
||||
OBJECT=cAudio.o cAudioManager.o cFileSource.o cListener.o cMemorySource.o cOggAudioDecoderFactory.o cOggDecoder.o cWavAudioDecoderFactory.o cWavDecoder.o
|
||||
|
||||
LINK_OPTIONS=-shared
|
||||
COMPILE_OPTIONS=-fPIC
|
||||
|
||||
CC=g++
|
||||
|
||||
all: $(OBJECT)
|
||||
$(CC) -o $(SONAME) $(OBJECT) $(LINK_OPTIONS) $(DEPEND)
|
||||
|
||||
%.o: %.cpp
|
||||
$(CC) -c -o $@ $< $(COMPILE_OPTIONS)
|
|
@ -0,0 +1,293 @@
|
|||
#include "../Headers/cAudio.h"
|
||||
#include <iostream>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
cAudio::cAudio(IAudioDecoder* decoder) : Decoder(decoder)
|
||||
{
|
||||
streaming = false;
|
||||
playaudio = false;
|
||||
pauseaudio = false;
|
||||
toloop = false;
|
||||
|
||||
//Generates 3 buffers for the ogg file
|
||||
alGenBuffers(3, buffers);
|
||||
//Creates one source to be stored.
|
||||
alGenSources(1, &source);
|
||||
}
|
||||
|
||||
cAudio::~cAudio()
|
||||
{
|
||||
delete Decoder;
|
||||
}
|
||||
|
||||
//!Stops all playing sound sources and deletes the sources and buffers
|
||||
void cAudio::release()
|
||||
{
|
||||
//Stops the audio source
|
||||
alSourceStop(source);
|
||||
empty();
|
||||
//Deletes the source
|
||||
alDeleteSources(1, &source);
|
||||
//deletes the last filled buffer
|
||||
alDeleteBuffers(3, buffers);
|
||||
}
|
||||
|
||||
//!Plays back sound source
|
||||
bool cAudio::playback()
|
||||
{
|
||||
return playing();
|
||||
}
|
||||
|
||||
bool cAudio::paused()
|
||||
{
|
||||
ALenum state = 0;
|
||||
|
||||
alGetSourcei(source, AL_SOURCE_STATE, &state);
|
||||
|
||||
return (state == AL_PAUSED);
|
||||
}
|
||||
|
||||
//!checks to see if audio source is playing if it is returns true
|
||||
bool cAudio::playing()
|
||||
{
|
||||
ALenum state = 0;
|
||||
|
||||
alGetSourcei(source, AL_SOURCE_STATE, &state);
|
||||
|
||||
return (state == AL_PLAYING);
|
||||
}
|
||||
|
||||
//!updates the sound source by refilling the buffers with ogg data.
|
||||
bool cAudio::update()
|
||||
{
|
||||
if(!isvalid() || !playing())
|
||||
return false;
|
||||
|
||||
int processed = 0;
|
||||
bool active = true;
|
||||
//gets the sound source processed buffers/
|
||||
alGetSourcei(source, AL_BUFFERS_PROCESSED, &processed);
|
||||
//while there is more data refill buffers with audio data.
|
||||
while (processed--)
|
||||
{
|
||||
ALuint buffer;
|
||||
|
||||
alSourceUnqueueBuffers(source, 1, &buffer);
|
||||
|
||||
active = stream(buffer);
|
||||
|
||||
//if more in stream continue playing.
|
||||
if(active)
|
||||
alSourceQueueBuffers(source, 1, &buffer);
|
||||
|
||||
}
|
||||
return active;
|
||||
|
||||
}
|
||||
|
||||
//!The streaming function
|
||||
bool cAudio::stream(ALuint buffer)
|
||||
{
|
||||
if(Decoder)
|
||||
{
|
||||
//stores the caculated data into buffer that is passed to output.
|
||||
size_t totalread = 0;
|
||||
char tempbuffer[BUFFER_SIZE];
|
||||
while( totalread < BUFFER_SIZE )
|
||||
{
|
||||
char tempbuffer2[BUFFER_SIZE];
|
||||
int actualread = Decoder->readAudioData(tempbuffer2, BUFFER_SIZE-totalread);
|
||||
if(actualread > 0)
|
||||
{
|
||||
memcpy(tempbuffer+totalread,tempbuffer2,actualread);
|
||||
totalread += actualread;
|
||||
}
|
||||
if(actualread < 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if(actualread == 0)
|
||||
{
|
||||
if(toloop)
|
||||
{
|
||||
//If we are to loop, set to the beginning and reload from the start
|
||||
Decoder->setPosition(0,false);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Second check, in case looping is not enabled, we will return false for end of stream
|
||||
if(totalread == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
//std::cout << buffer << std::endl;
|
||||
|
||||
alBufferData(buffer, Decoder->getFormat(), tempbuffer, totalread, Decoder->getFrequency());
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//!clears the sound sources buffers and makes them free to be used by other sound sources.
|
||||
void cAudio::empty()
|
||||
{
|
||||
int queued = 0;
|
||||
//grabs allt he sources buffers.
|
||||
alGetSourcei(source, AL_BUFFERS_QUEUED, &queued);
|
||||
|
||||
while (queued--)
|
||||
{
|
||||
ALuint buffer;
|
||||
//unqueues sources buffers to be used for others.
|
||||
alSourceUnqueueBuffers(source, 1, &buffer);
|
||||
}
|
||||
}
|
||||
|
||||
//!Checks the given functions
|
||||
void cAudio::check()
|
||||
{
|
||||
int error = alGetError();
|
||||
|
||||
if (error != AL_NO_ERROR)
|
||||
{
|
||||
std::cout<<"OpenAL error was Raised.";
|
||||
}
|
||||
}
|
||||
|
||||
//!checks to see if the given ogg file is valid
|
||||
bool cAudio::isvalid()
|
||||
{
|
||||
|
||||
return (Decoder != 0);
|
||||
|
||||
}
|
||||
|
||||
//!Sets the sound source relativity to follow the listener to give the illusion of stereo 2d sound
|
||||
void cAudio::play2d(bool loop)
|
||||
{
|
||||
alSourcei (source, AL_SOURCE_RELATIVE, true);
|
||||
toloop = loop;
|
||||
play();
|
||||
alSourcePlay(source);
|
||||
}
|
||||
|
||||
//!Plays the given audio file with 3d position
|
||||
void cAudio::play3d(bool loop, float x, float y, float z,float soundstr)
|
||||
{
|
||||
alSourcei (source, AL_SOURCE_RELATIVE, false);
|
||||
alSource3f(source, AL_POSITION,x, y, z);
|
||||
alSourcef (source, AL_ROLLOFF_FACTOR, soundstr);
|
||||
toloop = loop;
|
||||
play();
|
||||
alSourcePlay(source);
|
||||
}
|
||||
|
||||
//!Used to tell the soundsource to loop or not
|
||||
void cAudio::loop(bool loop)
|
||||
{
|
||||
toloop = loop;
|
||||
}
|
||||
|
||||
//!Used to move the audio sources position after the initial creation
|
||||
void cAudio::setPosition(float posx,float posy,float posz)
|
||||
{
|
||||
alSource3f(source, AL_POSITION,posx, posy, posz);
|
||||
}
|
||||
|
||||
//!Used to set the velocity of the audio source.
|
||||
void cAudio::setVelocity(float velx,float vely, float velz)
|
||||
{
|
||||
alSource3f(source, AL_VELOCITY,velx, vely, velz);
|
||||
}
|
||||
|
||||
//!Used to set the direction of the audio source
|
||||
void cAudio::setDirection(float dirx,float diry,float dirz)
|
||||
{
|
||||
alSource3f(source, AL_DIRECTION,dirx, diry, dirz);
|
||||
}
|
||||
|
||||
//!Used to set the sound strength or roll off factor
|
||||
void cAudio::setStrength(float soundstrength)
|
||||
{
|
||||
alSourcef (source, AL_ROLLOFF_FACTOR, soundstrength);
|
||||
}
|
||||
|
||||
//!Used to set the pitch of the audio file
|
||||
void cAudio::setPitch(float pitch)
|
||||
{
|
||||
alSourcei (source, AL_PITCH,pitch);
|
||||
}
|
||||
|
||||
//!Used to set the volume of the audio source
|
||||
void cAudio::setVolume(float volume)
|
||||
{
|
||||
alSourcef(source,AL_GAIN,volume);
|
||||
}
|
||||
|
||||
//!Used to set the doppler strength of the audio sources doppler effect
|
||||
void cAudio::setDopplerStrength(float doop)
|
||||
{
|
||||
alSourcef(source,AL_DOPPLER_FACTOR,doop);
|
||||
}
|
||||
|
||||
//!Used to set the doppler velocity of the audio source
|
||||
void cAudio::setDopplerVelocity(float doopx,float doopy,float doopz)
|
||||
{
|
||||
alSource3f(source,AL_DOPPLER_VELOCITY,doopx,doopy,doopz);
|
||||
}
|
||||
|
||||
//!Allows us to seek through a stream
|
||||
void cAudio::seek(float secs)
|
||||
{
|
||||
if(Decoder->isSeekingSupported())
|
||||
{
|
||||
Decoder->seek(secs, false);
|
||||
}
|
||||
}
|
||||
|
||||
//!Used to play the audio source
|
||||
void cAudio::play()
|
||||
{
|
||||
playaudio = true;
|
||||
|
||||
if(!paused()){
|
||||
|
||||
if (!stream(buffers[0]))
|
||||
return;
|
||||
|
||||
if (!stream(buffers[1]))
|
||||
return;
|
||||
|
||||
if (!stream(buffers[2]))
|
||||
return;
|
||||
//Stores the sources 3 buffers to be used in the queue
|
||||
alSourceQueueBuffers(source, 3, buffers);
|
||||
}
|
||||
|
||||
alSourcePlay(source);
|
||||
|
||||
}
|
||||
|
||||
//!Used to stop the audio source
|
||||
void cAudio::stop()
|
||||
{
|
||||
playaudio = false;
|
||||
alSourceStop(source);
|
||||
}
|
||||
|
||||
//!Used to pause the audio source
|
||||
void cAudio::pause()
|
||||
{
|
||||
playaudio = false;
|
||||
alSourcePause(source);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
#include "../Headers/cAudioManager.h"
|
||||
#include "../Headers/cFileSource.h"
|
||||
#include "../Headers/cMemorySource.h"
|
||||
#include "../Headers/cUtils.h"
|
||||
#include "../Headers/cOggAudioDecoderFactory.h"
|
||||
#include "../Headers/cWavAudioDecoderFacotry.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
CAUDIO_API IAudioManager* getAudioManager(void)
|
||||
{
|
||||
return cAudioManager::Instance();
|
||||
}
|
||||
cAudioManager cAudioManager::m_cAudioManager;
|
||||
|
||||
//!Initialize the listener,openal,and mikmod
|
||||
void cAudioManager::init(int argc,char* argv[])
|
||||
{
|
||||
initlistener = cListener::getInstance();
|
||||
initlistener.initaudio(argc,argv);
|
||||
listenerX = 0.0;
|
||||
listenerY = 0.0;
|
||||
listenerZ = 0.0;
|
||||
|
||||
registerAudioDecoder(new cOggAudioDecoderFactory, "ogg");
|
||||
registerAudioDecoder(new cWavAudioDecoderFactory, "wav");
|
||||
}
|
||||
|
||||
//!create a sound source
|
||||
IAudio* cAudioManager::createFromFile(const std::string& identifier,const std::string& file,bool stream)
|
||||
{
|
||||
if(stream){
|
||||
cFileSource* source = new cFileSource(file);
|
||||
if(source->isValid())
|
||||
{
|
||||
std::string ext = getExt(file);
|
||||
std::map<std::string, IAudioDecoderFactory*>::iterator it = decodermap.find(ext);
|
||||
if(it == decodermap.end())
|
||||
{
|
||||
delete source;
|
||||
return NULL;
|
||||
}
|
||||
IAudioDecoder* decoder = it->second->CreateAudioDecoder(source);
|
||||
IAudio* audio = new cAudio(decoder);
|
||||
audiomap[identifier] = audio;
|
||||
return audio;
|
||||
}
|
||||
else
|
||||
{
|
||||
delete source;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cFileSource* tempsource = new cFileSource(file);
|
||||
int length = tempsource->getSize();
|
||||
char *tempbuf = new char[length];
|
||||
tempsource->read(tempbuf,length);
|
||||
|
||||
IAudio* guy = createFromMemory(identifier,tempbuf,length,getExt(file));
|
||||
delete[]tempbuf;
|
||||
delete tempsource;
|
||||
return guy;
|
||||
}
|
||||
}
|
||||
|
||||
//!Loads the ogg file from memory *virtual file systems*
|
||||
IAudio* cAudioManager::createFromMemory(const std::string& identifier, const char* data, size_t length, std::string ext)
|
||||
{
|
||||
cMemorySource* source = new cMemorySource(data,length,true);
|
||||
if(source->isValid())
|
||||
{
|
||||
std::map<std::string, IAudioDecoderFactory*>::iterator it = decodermap.find(ext);
|
||||
if(it == decodermap.end())
|
||||
{
|
||||
delete source;
|
||||
return NULL;
|
||||
}
|
||||
IAudioDecoder* decoder = it->second->CreateAudioDecoder(source);
|
||||
IAudio* audio = new cAudio(decoder);
|
||||
audiomap[identifier] = audio;
|
||||
return audio;
|
||||
}
|
||||
else
|
||||
{
|
||||
delete source;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void cAudioManager::registerAudioDecoder(IAudioDecoderFactory* factory, std::string extension)
|
||||
{
|
||||
decodermap[extension] = factory;
|
||||
}
|
||||
|
||||
//!grabs the selected audio file via the identifier
|
||||
IAudio *cAudioManager::getSound(std::string identifier)
|
||||
{
|
||||
std::map<std::string,IAudio*>::iterator i = audiomap.find(identifier);
|
||||
if (i == audiomap.end()){return NULL;}
|
||||
return i->second;
|
||||
}
|
||||
|
||||
//!Releases the selected audio source
|
||||
void cAudioManager::release()
|
||||
{
|
||||
std::map<std::string,IAudio*>::iterator i = audiomap.begin();
|
||||
while ( i != audiomap.end())
|
||||
{
|
||||
i->second->release();
|
||||
delete i->second;
|
||||
audiomap.erase(i++);
|
||||
}
|
||||
std::map<std::string, IAudioDecoderFactory*>::iterator it = decodermap.begin();
|
||||
while ( it != decodermap.end())
|
||||
{
|
||||
delete it->second;
|
||||
decodermap.erase(it++);
|
||||
}
|
||||
}
|
||||
|
||||
//!Updates all audiosources created
|
||||
void cAudioManager::update()
|
||||
{
|
||||
std::map<std::string,IAudio*>::iterator i = audiomap.begin();
|
||||
for (i = audiomap.begin(); i != audiomap.end() ; i++)
|
||||
{
|
||||
if (i->second->isvalid() == true)
|
||||
{
|
||||
|
||||
if (i->second->update())
|
||||
{
|
||||
|
||||
}
|
||||
if (i->second->playback())
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//!Shuts down cAudio. Deletes all audio sources in process
|
||||
void cAudioManager::shutDown()
|
||||
{
|
||||
initlistener.shutdownaudio;
|
||||
}
|
||||
|
||||
//!Sets the listeners position.
|
||||
void cAudioManager::setListenerPos(float x,float y,float z)
|
||||
{
|
||||
initlistener.setPosition(x,y,z);
|
||||
listenerX = x;
|
||||
listenerY = y;
|
||||
listenerZ = z;
|
||||
}
|
||||
|
||||
//!Sets the listener orientation
|
||||
void cAudioManager::setListenerOrientation(float ux,float uy,float uz)
|
||||
{
|
||||
initlistener.setOrientation(listenerX,listenerY,listenerZ,ux,uy,uz);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
#include "../Headers/cFileSource.h"
|
||||
#include <cstring>
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
//!Init Takes a string for file name
|
||||
cFileSource::cFileSource(const std::string& filename) : pFile(NULL), Valid(false), Filesize(0)
|
||||
{
|
||||
if(filename.length() != 0)
|
||||
{
|
||||
pFile = fopen(filename.c_str(),"rb");
|
||||
if(pFile)
|
||||
Valid = true;
|
||||
}
|
||||
|
||||
if(Valid)
|
||||
{
|
||||
fseek(pFile, 0, SEEK_END);
|
||||
Filesize = ftell(pFile);
|
||||
fseek(pFile, 0, SEEK_SET);
|
||||
}
|
||||
}
|
||||
|
||||
cFileSource::~cFileSource()
|
||||
{
|
||||
fclose(pFile);
|
||||
}
|
||||
|
||||
//!Returns true if the FileSource is valid
|
||||
bool cFileSource::isValid()
|
||||
{
|
||||
return Valid;
|
||||
}
|
||||
|
||||
//!Returns the current position of the file stream.
|
||||
int cFileSource::getCurrentPos()
|
||||
{
|
||||
return ftell(pFile);
|
||||
}
|
||||
|
||||
//!Returns the file size
|
||||
int cFileSource::getSize()
|
||||
{
|
||||
return Filesize;
|
||||
}
|
||||
|
||||
//!Read current FileSource Data
|
||||
int cFileSource::read(void* output, int size)
|
||||
{
|
||||
return fread(output, sizeof(char), size, pFile);
|
||||
}
|
||||
|
||||
//!Seek the file stream
|
||||
bool cFileSource::seek(int amount, bool relative)
|
||||
{
|
||||
if(relative == true)
|
||||
{
|
||||
int oldamount = ftell(pFile);
|
||||
fseek(pFile, amount, SEEK_CUR);
|
||||
|
||||
//check against the absolute position
|
||||
if(oldamount+amount != ftell(pFile))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
fseek(pFile, amount, SEEK_SET);
|
||||
if(amount != ftell(pFile))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
#include "../Headers/cListener.h"
|
|
@ -0,0 +1,95 @@
|
|||
#include "../Headers/cMemorySource.h"
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
cMemorySource::cMemorySource(const void* data, int size, bool copy) : Data(NULL), Size(0), Valid(false), Pos(0)
|
||||
{
|
||||
if(data && size > 0)
|
||||
{
|
||||
Size = size;
|
||||
if(copy)
|
||||
{
|
||||
Data = new char[Size];
|
||||
memcpy(Data, data, Size);
|
||||
}
|
||||
else
|
||||
{
|
||||
Data = (char*)data;
|
||||
}
|
||||
Valid = true;
|
||||
}
|
||||
}
|
||||
|
||||
cMemorySource::~cMemorySource()
|
||||
{
|
||||
delete[] Data;
|
||||
}
|
||||
|
||||
//!Returns true if the DataStream is valid
|
||||
bool cMemorySource::isValid()
|
||||
{
|
||||
return Valid;
|
||||
}
|
||||
|
||||
//!Returns the current position of the data stream.
|
||||
int cMemorySource::getCurrentPos()
|
||||
{
|
||||
return Pos;
|
||||
}
|
||||
|
||||
//!Returns the data stream size
|
||||
int cMemorySource::getSize()
|
||||
{
|
||||
return Size;
|
||||
}
|
||||
|
||||
//!Read current Data Stream Data
|
||||
int cMemorySource::read(void* output, int size)
|
||||
{
|
||||
|
||||
memset(output, 0, size);
|
||||
if(Pos+size <= Size)
|
||||
{
|
||||
memcpy(output, Data+Pos, size);
|
||||
Pos += size;
|
||||
return size;
|
||||
}
|
||||
else
|
||||
{
|
||||
int extra = (Pos+size) - Size;
|
||||
int copied = size - extra;
|
||||
memcpy(output, Data+Pos, copied);
|
||||
Pos = Size;
|
||||
return copied;
|
||||
}
|
||||
}
|
||||
|
||||
//!Seek the data stream
|
||||
bool cMemorySource::seek(int amount, bool relative)
|
||||
{
|
||||
if(relative)
|
||||
{
|
||||
Pos += amount;
|
||||
if(Pos > Size)
|
||||
{
|
||||
Pos = Size;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Pos = amount;
|
||||
if(Pos > Size)
|
||||
{
|
||||
Pos = Size;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
|
@ -0,0 +1,4 @@
|
|||
#include "../Headers/cOggAudioDecoderFactory.h"
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
#include "../Headers/cOggDecoder.h"
|
||||
namespace cAudio
|
||||
{
|
||||
//!Read Vorbis Data
|
||||
size_t VorbisRead(void *ptr, size_t byteSize,size_t sizeToRead, void *datasource)
|
||||
{
|
||||
IDataSource* Stream = (IDataSource*)datasource;
|
||||
return Stream->read(ptr,byteSize*sizeToRead);
|
||||
}
|
||||
|
||||
//!Seek Vorbis Data
|
||||
int VorbisSeek(void *datasource,ogg_int64_t offset,int whence)
|
||||
{
|
||||
IDataSource* Stream = (IDataSource*)datasource;
|
||||
switch (whence)
|
||||
{
|
||||
case SEEK_SET:
|
||||
Stream->seek(offset, false);
|
||||
break;
|
||||
|
||||
case SEEK_CUR:
|
||||
Stream->seek(offset, true);
|
||||
break;
|
||||
|
||||
case SEEK_END:
|
||||
Stream->seek(Stream->getSize()-offset, false);
|
||||
break;
|
||||
};
|
||||
return 0;
|
||||
}
|
||||
|
||||
//!Returns the vorbis data that was stored.
|
||||
long VorbisTell(void *datasource)
|
||||
{
|
||||
return ((IDataSource*)datasource)->getCurrentPos();
|
||||
}
|
||||
|
||||
cOggDecoder::cOggDecoder(IDataSource* stream) : IAudioDecoder(stream)
|
||||
{
|
||||
vorbisCallbacks.read_func = VorbisRead;
|
||||
vorbisCallbacks.close_func = NULL;
|
||||
vorbisCallbacks.seek_func = VorbisSeek;
|
||||
vorbisCallbacks.tell_func = VorbisTell;
|
||||
ov_open_callbacks(Stream,&oggStream,NULL,0,vorbisCallbacks);
|
||||
|
||||
vorbisInfo = ov_info(&oggStream, -1);
|
||||
vorbisComment = ov_comment(&oggStream,-1);
|
||||
}
|
||||
|
||||
cOggDecoder::~cOggDecoder()
|
||||
{
|
||||
ov_clear(&oggStream);
|
||||
}
|
||||
//!Returns given vorbis channel format
|
||||
AudioFormats cOggDecoder::getFormat()
|
||||
{
|
||||
if(vorbisInfo->channels == 1)
|
||||
{
|
||||
return EAF_16BIT_MONO;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return EAF_16BIT_STEREO;
|
||||
}
|
||||
}
|
||||
//!Returns vorbis file frequency
|
||||
int cOggDecoder::getFrequency()
|
||||
{
|
||||
return vorbisInfo->rate;
|
||||
}
|
||||
|
||||
//!Returns if vorbis file is seekable
|
||||
bool cOggDecoder::isSeekingSupported()
|
||||
{
|
||||
return ov_seekable(&oggStream);
|
||||
}
|
||||
|
||||
//!Reads the vorbis data
|
||||
int cOggDecoder::readAudioData(void* output, int amount)
|
||||
{
|
||||
int temp;
|
||||
return ov_read(&oggStream,(char*)output,amount,0,2,1,&temp);
|
||||
}
|
||||
|
||||
//!Sets the postion for vorbis data reader
|
||||
bool cOggDecoder::setPosition(int position, bool relative)
|
||||
{
|
||||
if(ov_seekable(&oggStream))
|
||||
{
|
||||
ov_raw_seek(&oggStream,position);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
//!Seeks the vorbis data
|
||||
bool cOggDecoder::seek(int seconds,bool relative)
|
||||
{
|
||||
int oldamount = ov_time_total(&oggStream,-1);
|
||||
|
||||
if(ov_seekable(&oggStream))
|
||||
{
|
||||
ov_time_seek(&oggStream,seconds);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
#include "../Headers/cWavAudioDecoderFacotry.h"
|
|
@ -0,0 +1,82 @@
|
|||
#include "../Headers/cWavDecoder.h"
|
||||
|
||||
namespace cAudio{
|
||||
|
||||
cWavDecoder::cWavDecoder(IDataSource* stream) : IAudioDecoder(stream)
|
||||
{
|
||||
Stream->seek(4,false);
|
||||
Stream->read(&mChunkSize,4);
|
||||
Stream->seek(16,false);
|
||||
Stream->read(&mSubChunk1Size,4);
|
||||
Stream->read(&mFormat,sizeof(short));
|
||||
Stream->read(&mChannels,sizeof(short));
|
||||
Stream->read(&mSampleRate,sizeof(int));
|
||||
Stream->read(&mByteRate,sizeof(int));
|
||||
Stream->read(&mBlockAlign,sizeof(short));
|
||||
Stream->read(&mBitsPerSample,sizeof(short));
|
||||
Stream->seek(40,false);
|
||||
Stream->read(&mDataSize,sizeof(int));
|
||||
Stream->seek(44,false);
|
||||
mSampleRate += mSampleRate;
|
||||
}
|
||||
|
||||
cWavDecoder::~cWavDecoder()
|
||||
{
|
||||
mChunkSize = NULL;
|
||||
mSubChunk1Size = NULL;
|
||||
mFormat = NULL;
|
||||
mChannels = NULL;
|
||||
mSampleRate = NULL;
|
||||
mByteRate = NULL;
|
||||
mBlockAlign = NULL;
|
||||
mBitsPerSample = NULL;
|
||||
mDataSize = NULL;
|
||||
|
||||
}
|
||||
|
||||
//!Returns wav channel format
|
||||
AudioFormats cWavDecoder::getFormat()
|
||||
{
|
||||
if(mChannels = 1)
|
||||
return EAF_16BIT_MONO;
|
||||
else
|
||||
return EAF_16BIT_STEREO;
|
||||
|
||||
}
|
||||
|
||||
//!Returns wav data frequency
|
||||
int cWavDecoder::getFrequency()
|
||||
{
|
||||
return mSampleRate;
|
||||
}
|
||||
|
||||
//!Returns if seeking is supported
|
||||
bool cWavDecoder::isSeekingSupported()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//!Reads wav data
|
||||
int cWavDecoder::readAudioData(void* output, int amount)
|
||||
{
|
||||
return Stream->read(output,amount);
|
||||
|
||||
}
|
||||
|
||||
//!Sets data reader position
|
||||
bool cWavDecoder::setPosition(int position, bool relative)
|
||||
{
|
||||
Stream->seek(position,relative);
|
||||
return true;
|
||||
}
|
||||
|
||||
//!Seeks wav data
|
||||
bool cWavDecoder::seek(int seconds,bool relative)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,105 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="cAudio" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Release">
|
||||
<Option output="bin\gcc\cAudio" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\gcc\" />
|
||||
<Option type="3" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createStaticLib="1" />
|
||||
<Compiler>
|
||||
<Add option="-O3" />
|
||||
<Add option="-DHAVE_MALLOC_H" />
|
||||
<Add directory="include" />
|
||||
<Add directory="Headers" />
|
||||
<Add directory="dependencies\Headers" />
|
||||
<Add directory="dependencies\Headers\ALUT" />
|
||||
<Add directory="dependencies\Headers\ALUT\AL" />
|
||||
<Add directory="dependencies\Headers\AL" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
<Add library="vorbisfile" />
|
||||
<Add library="vorbisenc" />
|
||||
<Add library="vorbis" />
|
||||
<Add library="ogg" />
|
||||
<Add library="bin\alut.dll" />
|
||||
<Add library="bin\OpenAL32.dll" />
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Release Visual">
|
||||
<Option output="bin\visual\cAudio" prefix_auto="1" extension_auto="1" />
|
||||
<Option object_output="obj\visual\" />
|
||||
<Option type="3" />
|
||||
<Option compiler="msvc8" />
|
||||
<Option createStaticLib="1" />
|
||||
<Compiler>
|
||||
<Add option="/EHc" />
|
||||
<Add option="/EHa" />
|
||||
<Add option="/EHs" />
|
||||
<Add option="/Ot" />
|
||||
<Add option="/O2" />
|
||||
<Add directory="include" />
|
||||
<Add directory="Headers" />
|
||||
<Add directory="dependencies\Headers" />
|
||||
<Add directory="dependencies\Headers\ALUT" />
|
||||
<Add directory="dependencies\Headers\ALUT\AL" />
|
||||
<Add directory="dependencies\Headers\AL" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
<Add library="vorbisfile_static" />
|
||||
<Add library="vorbisenc_static" />
|
||||
<Add library="vorbis_static" />
|
||||
<Add library="ogg_static" />
|
||||
<Add library="alut" />
|
||||
<Add library="OpenAL32" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<VirtualTargets>
|
||||
<Add alias="ALL" targets="Release;Release Visual;" />
|
||||
</VirtualTargets>
|
||||
<Compiler>
|
||||
<Add option="-DCOMPILE_FOR_WINDOWS" />
|
||||
<Add option="-DCAUDIO_EXPORTS" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add directory="dependencies\Libs\windows" />
|
||||
</Linker>
|
||||
<Unit filename="Headers\cAudio.h" />
|
||||
<Unit filename="Headers\cAudioManager.h" />
|
||||
<Unit filename="Headers\cFileSource.h" />
|
||||
<Unit filename="Headers\cListener.h" />
|
||||
<Unit filename="Headers\cMemorySource.h" />
|
||||
<Unit filename="Headers\cOggAudioDecoderFactory.h" />
|
||||
<Unit filename="Headers\cOggDecoder.h" />
|
||||
<Unit filename="Headers\cUtils.h" />
|
||||
<Unit filename="Headers\cWavAudioDecoderFacotry.h" />
|
||||
<Unit filename="Headers\cWavDecoder.h" />
|
||||
<Unit filename="Source\cAudio.cpp" />
|
||||
<Unit filename="Source\cAudioManager.cpp" />
|
||||
<Unit filename="Source\cFileSource.cpp" />
|
||||
<Unit filename="Source\cListener.cpp" />
|
||||
<Unit filename="Source\cMemorySource.cpp" />
|
||||
<Unit filename="Source\cOggAudioDecoderFactory.cpp" />
|
||||
<Unit filename="Source\cOggDecoder.cpp" />
|
||||
<Unit filename="Source\cWavAudioDecoderFactory.cpp" />
|
||||
<Unit filename="Source\cWavDecoder.cpp" />
|
||||
<Unit filename="include\IAudio.h" />
|
||||
<Unit filename="include\IAudioDecoder.h" />
|
||||
<Unit filename="include\IAudioDecoderFactory.h" />
|
||||
<Unit filename="include\IAudioManager.h" />
|
||||
<Unit filename="include\IDataSource.h" />
|
||||
<Unit filename="include\IListener.h" />
|
||||
<Extensions>
|
||||
<code_completion />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_layout_file>
|
||||
<ActiveTarget name="ALL" />
|
||||
</CodeBlocks_layout_file>
|
|
@ -0,0 +1,422 @@
|
|||
/*******************************************************************\
|
||||
* *
|
||||
* EFX-UTIL.H - EFX Utilities functions and Reverb Presets *
|
||||
* *
|
||||
* File revision 1.0 *
|
||||
* *
|
||||
\*******************************************************************/
|
||||
|
||||
#ifndef EAXVECTOR_DEFINED
|
||||
#define EAXVECTOR_DEFINED
|
||||
typedef struct _EAXVECTOR {
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
} EAXVECTOR;
|
||||
#endif
|
||||
|
||||
#ifndef EAXREVERBPROPERTIES_DEFINED
|
||||
#define EAXREVERBPROPERTIES_DEFINED
|
||||
typedef struct _EAXREVERBPROPERTIES
|
||||
{
|
||||
unsigned long ulEnvironment;
|
||||
float flEnvironmentSize;
|
||||
float flEnvironmentDiffusion;
|
||||
long lRoom;
|
||||
long lRoomHF;
|
||||
long lRoomLF;
|
||||
float flDecayTime;
|
||||
float flDecayHFRatio;
|
||||
float flDecayLFRatio;
|
||||
long lReflections;
|
||||
float flReflectionsDelay;
|
||||
EAXVECTOR vReflectionsPan;
|
||||
long lReverb;
|
||||
float flReverbDelay;
|
||||
EAXVECTOR vReverbPan;
|
||||
float flEchoTime;
|
||||
float flEchoDepth;
|
||||
float flModulationTime;
|
||||
float flModulationDepth;
|
||||
float flAirAbsorptionHF;
|
||||
float flHFReference;
|
||||
float flLFReference;
|
||||
float flRoomRolloffFactor;
|
||||
unsigned long ulFlags;
|
||||
} EAXREVERBPROPERTIES, *LPEAXREVERBPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EFXEAXREVERBPROPERTIES_DEFINED
|
||||
#define EFXEAXREVERBPROPERTIES_DEFINED
|
||||
typedef struct
|
||||
{
|
||||
float flDensity;
|
||||
float flDiffusion;
|
||||
float flGain;
|
||||
float flGainHF;
|
||||
float flGainLF;
|
||||
float flDecayTime;
|
||||
float flDecayHFRatio;
|
||||
float flDecayLFRatio;
|
||||
float flReflectionsGain;
|
||||
float flReflectionsDelay;
|
||||
float flReflectionsPan[3];
|
||||
float flLateReverbGain;
|
||||
float flLateReverbDelay;
|
||||
float flLateReverbPan[3];
|
||||
float flEchoTime;
|
||||
float flEchoDepth;
|
||||
float flModulationTime;
|
||||
float flModulationDepth;
|
||||
float flAirAbsorptionGainHF;
|
||||
float flHFReference;
|
||||
float flLFReference;
|
||||
float flRoomRolloffFactor;
|
||||
int iDecayHFLimit;
|
||||
} EFXEAXREVERBPROPERTIES, *LPEFXEAXREVERBPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXOBSTRUCTIONPROPERTIES_DEFINED
|
||||
#define EAXOBSTRUCTIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXOBSTRUCTIONPROPERTIES
|
||||
{
|
||||
long lObstruction;
|
||||
float flObstructionLFRatio;
|
||||
} EAXOBSTRUCTIONPROPERTIES, *LPEAXOBSTRUCTIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXOCCLUSIONPROPERTIES_DEFINED
|
||||
#define EAXOCCLUSIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXOCCLUSIONPROPERTIES
|
||||
{
|
||||
long lOcclusion;
|
||||
float flOcclusionLFRatio;
|
||||
float flOcclusionRoomRatio;
|
||||
float flOcclusionDirectRatio;
|
||||
} EAXOCCLUSIONPROPERTIES, *LPEAXOCCLUSIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EAXEXCLUSIONPROPERTIES_DEFINED
|
||||
#define EAXEXCLUSIONPROPERTIES_DEFINED
|
||||
typedef struct _EAXEXCLUSIONPROPERTIES
|
||||
{
|
||||
long lExclusion;
|
||||
float flExclusionLFRatio;
|
||||
} EAXEXCLUSIONPROPERTIES, *LPEAXEXCLUSIONPROPERTIES;
|
||||
#endif
|
||||
|
||||
#ifndef EFXLOWPASSFILTER_DEFINED
|
||||
#define EFXLOWPASSFILTER_DEFINED
|
||||
typedef struct _EFXLOWPASSFILTER
|
||||
{
|
||||
float flGain;
|
||||
float flGainHF;
|
||||
} EFXLOWPASSFILTER, *LPEFXLOWPASSFILTER;
|
||||
#endif
|
||||
|
||||
void ConvertReverbParameters(EAXREVERBPROPERTIES *pEAXProp, EFXEAXREVERBPROPERTIES *pEFXEAXReverb);
|
||||
void ConvertObstructionParameters(EAXOBSTRUCTIONPROPERTIES *pObProp, EFXLOWPASSFILTER *pDirectLowPassFilter);
|
||||
void ConvertExclusionParameters(EAXEXCLUSIONPROPERTIES *pExProp, EFXLOWPASSFILTER *pSendLowPassFilter);
|
||||
void ConvertOcclusionParameters(EAXOCCLUSIONPROPERTIES *pOcProp, EFXLOWPASSFILTER *pDirectLowPassFilter, EFXLOWPASSFILTER *pSendLowPassFilter);
|
||||
|
||||
|
||||
/***********************************************************************************************\
|
||||
*
|
||||
* EAX Reverb Presets in legacy format - use ConvertReverbParameters() to convert to
|
||||
* EFX EAX Reverb Presets for use with the OpenAL Effects Extension.
|
||||
*
|
||||
************************************************************************************************/
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_GENERIC \
|
||||
{0, 7.5f, 1.000f, -1000, -100, 0, 1.49f, 0.83f, 1.00f, -2602, 0.007f, 0.00f,0.00f,0.00f, 200, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PADDEDCELL \
|
||||
{1, 1.4f, 1.000f, -1000, -6000, 0, 0.17f, 0.10f, 1.00f, -1204, 0.001f, 0.00f,0.00f,0.00f, 207, 0.002f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_ROOM \
|
||||
{2, 1.9f, 1.000f, -1000, -454, 0, 0.40f, 0.83f, 1.00f, -1646, 0.002f, 0.00f,0.00f,0.00f, 53, 0.003f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_BATHROOM \
|
||||
{3, 1.4f, 1.000f, -1000, -1200, 0, 1.49f, 0.54f, 1.00f, -370, 0.007f, 0.00f,0.00f,0.00f, 1030, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_LIVINGROOM \
|
||||
{4, 2.5f, 1.000f, -1000, -6000, 0, 0.50f, 0.10f, 1.00f, -1376, 0.003f, 0.00f,0.00f,0.00f, -1104, 0.004f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_STONEROOM \
|
||||
{5, 11.6f, 1.000f, -1000, -300, 0, 2.31f, 0.64f, 1.00f, -711, 0.012f, 0.00f,0.00f,0.00f, 83, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_AUDITORIUM \
|
||||
{6, 21.6f, 1.000f, -1000, -476, 0, 4.32f, 0.59f, 1.00f, -789, 0.020f, 0.00f,0.00f,0.00f, -289, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CONCERTHALL \
|
||||
{7, 19.6f, 1.000f, -1000, -500, 0, 3.92f, 0.70f, 1.00f, -1230, 0.020f, 0.00f,0.00f,0.00f, -02, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CAVE \
|
||||
{8, 14.6f, 1.000f, -1000, 0, 0, 2.91f, 1.30f, 1.00f, -602, 0.015f, 0.00f,0.00f,0.00f, -302, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_ARENA \
|
||||
{9, 36.2f, 1.000f, -1000, -698, 0, 7.24f, 0.33f, 1.00f, -1166, 0.020f, 0.00f,0.00f,0.00f, 16, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_HANGAR \
|
||||
{10, 50.3f, 1.000f, -1000, -1000, 0, 10.05f, 0.23f, 1.00f, -602, 0.020f, 0.00f,0.00f,0.00f, 198, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CARPETTEDHALLWAY \
|
||||
{11, 1.9f, 1.000f, -1000, -4000, 0, 0.30f, 0.10f, 1.00f, -1831, 0.002f, 0.00f,0.00f,0.00f, -1630, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_HALLWAY \
|
||||
{12, 1.8f, 1.000f, -1000, -300, 0, 1.49f, 0.59f, 1.00f, -1219, 0.007f, 0.00f,0.00f,0.00f, 441, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_STONECORRIDOR \
|
||||
{13, 13.5f, 1.000f, -1000, -237, 0, 2.70f, 0.79f, 1.00f, -1214, 0.013f, 0.00f,0.00f,0.00f, 395, 0.020f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_ALLEY \
|
||||
{14, 7.5f, 0.300f, -1000, -270, 0, 1.49f, 0.86f, 1.00f, -1204, 0.007f, 0.00f,0.00f,0.00f, -4, 0.011f, 0.00f,0.00f,0.00f, 0.125f, 0.950f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_FOREST \
|
||||
{15, 38.0f, 0.300f, -1000, -3300, 0, 1.49f, 0.54f, 1.00f, -2560, 0.162f, 0.00f,0.00f,0.00f, -229, 0.088f, 0.00f,0.00f,0.00f, 0.125f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_CITY \
|
||||
{16, 7.5f, 0.500f, -1000, -800, 0, 1.49f, 0.67f, 1.00f, -2273, 0.007f, 0.00f,0.00f,0.00f, -1691, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_MOUNTAINS \
|
||||
{17, 100.0f, 0.270f, -1000, -2500, 0, 1.49f, 0.21f, 1.00f, -2780, 0.300f, 0.00f,0.00f,0.00f, -1434, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_QUARRY \
|
||||
{18, 17.5f, 1.000f, -1000, -1000, 0, 1.49f, 0.83f, 1.00f, -10000, 0.061f, 0.00f,0.00f,0.00f, 500, 0.025f, 0.00f,0.00f,0.00f, 0.125f, 0.700f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PLAIN \
|
||||
{19, 42.5f, 0.210f, -1000, -2000, 0, 1.49f, 0.50f, 1.00f, -2466, 0.179f, 0.00f,0.00f,0.00f, -1926, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PARKINGLOT \
|
||||
{20, 8.3f, 1.000f, -1000, 0, 0, 1.65f, 1.50f, 1.00f, -1363, 0.008f, 0.00f,0.00f,0.00f, -1153, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_SEWERPIPE \
|
||||
{21, 1.7f, 0.800f, -1000, -1000, 0, 2.81f, 0.14f, 1.00f, 429, 0.014f, 0.00f,0.00f,0.00f, 1023, 0.021f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_UNDERWATER \
|
||||
{22, 1.8f, 1.000f, -1000, -4000, 0, 1.49f, 0.10f, 1.00f, -449, 0.007f, 0.00f,0.00f,0.00f, 1700, 0.011f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 1.180f, 0.348f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_DRUGGED \
|
||||
{23, 1.9f, 0.500f, -1000, 0, 0, 8.39f, 1.39f, 1.00f, -115, 0.002f, 0.00f,0.00f,0.00f, 985, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DIZZY \
|
||||
{24, 1.8f, 0.600f, -1000, -400, 0, 17.23f, 0.56f, 1.00f, -1713, 0.020f, 0.00f,0.00f,0.00f, -613, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.810f, 0.310f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_PSYCHOTIC \
|
||||
{25, 1.0f, 0.500f, -1000, -151, 0, 7.56f, 0.91f, 1.00f, -626, 0.020f, 0.00f,0.00f,0.00f, 774, 0.030f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 4.000f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
|
||||
|
||||
// CASTLE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_CASTLE_SMALLROOM \
|
||||
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 1.22f, 0.83f, 0.31f, -100, 0.022f, 0.00f,0.00f,0.00f, 600, 0.011f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_SHORTPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1000, -2000, 2.32f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 200, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_MEDIUMROOM \
|
||||
{ 26, 8.3f, 0.930f, -1000, -1100, -2000, 2.04f, 0.83f, 0.46f, -400, 0.022f, 0.00f,0.00f,0.00f, 400, 0.011f, 0.00f,0.00f,0.00f, 0.155f, 0.030f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_LONGPASSAGE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -800, -2000, 3.42f, 0.83f, 0.31f, -100, 0.007f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_LARGEROOM \
|
||||
{ 26, 8.3f, 0.820f, -1000, -1100, -1800, 2.53f, 0.83f, 0.50f, -700, 0.034f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.185f, 0.070f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_HALL \
|
||||
{ 26, 8.3f, 0.810f, -1000, -1100, -1500, 3.14f, 0.79f, 0.62f, -1500, 0.056f, 0.00f,0.00f,0.00f, 100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_CUPBOARD \
|
||||
{ 26, 8.3f, 0.890f, -1000, -1100, -2000, 0.67f, 0.87f, 0.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 1100, 0.007f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CASTLE_COURTYARD \
|
||||
{ 26, 8.3f, 0.420f, -1000, -700, -1400, 2.13f, 0.61f, 0.23f, -1300, 0.160f, 0.00f,0.00f,0.00f, -300, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.370f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_CASTLE_ALCOVE \
|
||||
{ 26, 8.3f, 0.890f, -1000, -600, -2000, 1.64f, 0.87f, 0.31f, 00, 0.007f, 0.00f,0.00f,0.00f, 300, 0.034f, 0.00f,0.00f,0.00f, 0.138f, 0.080f, 0.250f, 0.000f, -5.0f, 5168.6f, 139.5f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// FACTORY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_FACTORY_ALCOVE \
|
||||
{ 26, 1.8f, 0.590f, -1200, -200, -600, 3.14f, 0.65f, 1.31f, 300, 0.010f, 0.00f,0.00f,0.00f, 000, 0.038f, 0.00f,0.00f,0.00f, 0.114f, 0.100f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_SHORTPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 2.53f, 0.65f, 1.31f, 0, 0.010f, 0.00f,0.00f,0.00f, 200, 0.038f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_MEDIUMROOM \
|
||||
{ 26, 1.9f, 0.820f, -1200, -200, -600, 2.76f, 0.65f, 1.31f, -1100, 0.022f, 0.00f,0.00f,0.00f, 300, 0.023f, 0.00f,0.00f,0.00f, 0.174f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_LONGPASSAGE \
|
||||
{ 26, 1.8f, 0.640f, -1200, -200, -600, 4.06f, 0.65f, 1.31f, 0, 0.020f, 0.00f,0.00f,0.00f, 200, 0.037f, 0.00f,0.00f,0.00f, 0.135f, 0.230f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_LARGEROOM \
|
||||
{ 26, 1.9f, 0.750f, -1200, -300, -400, 4.24f, 0.51f, 1.31f, -1500, 0.039f, 0.00f,0.00f,0.00f, 100, 0.023f, 0.00f,0.00f,0.00f, 0.231f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_HALL \
|
||||
{ 26, 1.9f, 0.750f, -1000, -300, -400, 7.43f, 0.51f, 1.31f, -2400, 0.073f, 0.00f,0.00f,0.00f, -100, 0.027f, 0.00f,0.00f,0.00f, 0.250f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_CUPBOARD \
|
||||
{ 26, 1.7f, 0.630f, -1200, -200, -600, 0.49f, 0.65f, 1.31f, 200, 0.010f, 0.00f,0.00f,0.00f, 600, 0.032f, 0.00f,0.00f,0.00f, 0.107f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_COURTYARD \
|
||||
{ 26, 1.7f, 0.570f, -1000, -1000, -400, 2.32f, 0.29f, 0.56f, -1300, 0.140f, 0.00f,0.00f,0.00f, -800, 0.039f, 0.00f,0.00f,0.00f, 0.250f, 0.290f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_FACTORY_SMALLROOM \
|
||||
{ 26, 1.8f, 0.820f, -1000, -200, -600, 1.72f, 0.65f, 1.31f, -300, 0.010f, 0.00f,0.00f,0.00f, 500, 0.024f, 0.00f,0.00f,0.00f, 0.119f, 0.070f, 0.250f, 0.000f, -5.0f, 3762.6f, 362.5f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// ICE PALACE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_ICEPALACE_ALCOVE \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 2.76f, 1.46f, 0.28f, 100, 0.010f, 0.00f,0.00f,0.00f, -100, 0.030f, 0.00f,0.00f,0.00f, 0.161f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_SHORTPASSAGE \
|
||||
{ 26, 2.7f, 0.750f, -1000, -500, -1100, 1.79f, 1.46f, 0.28f, -600, 0.010f, 0.00f,0.00f,0.00f, 100, 0.019f, 0.00f,0.00f,0.00f, 0.177f, 0.090f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_MEDIUMROOM \
|
||||
{ 26, 2.7f, 0.870f, -1000, -500, -700, 2.22f, 1.53f, 0.32f, -800, 0.039f, 0.00f,0.00f,0.00f, 100, 0.027f, 0.00f,0.00f,0.00f, 0.186f, 0.120f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_LONGPASSAGE \
|
||||
{ 26, 2.7f, 0.770f, -1000, -500, -800, 3.01f, 1.46f, 0.28f, -200, 0.012f, 0.00f,0.00f,0.00f, 200, 0.025f, 0.00f,0.00f,0.00f, 0.186f, 0.040f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_LARGEROOM \
|
||||
{ 26, 2.9f, 0.810f, -1000, -500, -700, 3.14f, 1.53f, 0.32f, -1200, 0.039f, 0.00f,0.00f,0.00f, 000, 0.027f, 0.00f,0.00f,0.00f, 0.214f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_HALL \
|
||||
{ 26, 2.9f, 0.760f, -1000, -700, -500, 5.49f, 1.53f, 0.38f, -1900, 0.054f, 0.00f,0.00f,0.00f, -400, 0.052f, 0.00f,0.00f,0.00f, 0.226f, 0.110f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_CUPBOARD \
|
||||
{ 26, 2.7f, 0.830f, -1000, -600, -1300, 0.76f, 1.53f, 0.26f, 100, 0.012f, 0.00f,0.00f,0.00f, 600, 0.016f, 0.00f,0.00f,0.00f, 0.143f, 0.080f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_COURTYARD \
|
||||
{ 26, 2.9f, 0.590f, -1000, -1100, -1000, 2.04f, 1.20f, 0.38f, -1000, 0.173f, 0.00f,0.00f,0.00f, -1000, 0.043f, 0.00f,0.00f,0.00f, 0.235f, 0.480f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_ICEPALACE_SMALLROOM \
|
||||
{ 26, 2.7f, 0.840f, -1000, -500, -1100, 1.51f, 1.53f, 0.27f, -100, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.164f, 0.140f, 0.250f, 0.000f, -5.0f, 12428.5f, 99.6f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// SPACE STATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_SPACESTATION_ALCOVE \
|
||||
{ 26, 1.5f, 0.780f, -1000, -300, -100, 1.16f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 000, 0.018f, 0.00f,0.00f,0.00f, 0.192f, 0.210f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_MEDIUMROOM \
|
||||
{ 26, 1.5f, 0.750f, -1000, -400, -100, 3.01f, 0.50f, 0.55f, -800, 0.034f, 0.00f,0.00f,0.00f, 100, 0.035f, 0.00f,0.00f,0.00f, 0.209f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_SHORTPASSAGE \
|
||||
{ 26, 1.5f, 0.870f, -1000, -400, -100, 3.57f, 0.50f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.016f, 0.00f,0.00f,0.00f, 0.172f, 0.200f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_LONGPASSAGE \
|
||||
{ 26, 1.9f, 0.820f, -1000, -400, -100, 4.62f, 0.62f, 0.55f, 0, 0.012f, 0.00f,0.00f,0.00f, 200, 0.031f, 0.00f,0.00f,0.00f, 0.250f, 0.230f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_LARGEROOM \
|
||||
{ 26, 1.8f, 0.810f, -1000, -400, -100, 3.89f, 0.38f, 0.61f, -1000, 0.056f, 0.00f,0.00f,0.00f, -100, 0.035f, 0.00f,0.00f,0.00f, 0.233f, 0.280f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_HALL \
|
||||
{ 26, 1.9f, 0.870f, -1000, -400, -100, 7.11f, 0.38f, 0.61f, -1500, 0.100f, 0.00f,0.00f,0.00f, -400, 0.047f, 0.00f,0.00f,0.00f, 0.250f, 0.250f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_CUPBOARD \
|
||||
{ 26, 1.4f, 0.560f, -1000, -300, -100, 0.79f, 0.81f, 0.55f, 300, 0.007f, 0.00f,0.00f,0.00f, 500, 0.018f, 0.00f,0.00f,0.00f, 0.181f, 0.310f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPACESTATION_SMALLROOM \
|
||||
{ 26, 1.5f, 0.700f, -1000, -300, -100, 1.72f, 0.82f, 0.55f, -200, 0.007f, 0.00f,0.00f,0.00f, 300, 0.013f, 0.00f,0.00f,0.00f, 0.188f, 0.260f, 0.250f, 0.000f, -5.0f, 3316.1f, 458.2f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// WOODEN GALLEON PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_WOODEN_ALCOVE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.22f, 0.62f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, -300, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_SHORTPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1800, -1000, 1.75f, 0.50f, 0.87f, -100, 0.012f, 0.00f,0.00f,0.00f, -400, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_MEDIUMROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2000, -1100, 1.47f, 0.42f, 0.82f, -100, 0.049f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_LONGPASSAGE \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2000, -1000, 1.99f, 0.40f, 0.79f, 000, 0.020f, 0.00f,0.00f,0.00f, -700, 0.036f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_LARGEROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2100, -1100, 2.65f, 0.33f, 0.82f, -100, 0.066f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_HALL \
|
||||
{ 26, 7.5f, 1.000f, -1000, -2200, -1100, 3.45f, 0.30f, 0.82f, -100, 0.088f, 0.00f,0.00f,0.00f, -200, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_CUPBOARD \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1700, -1000, 0.56f, 0.46f, 0.91f, 100, 0.012f, 0.00f,0.00f,0.00f, 100, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_SMALLROOM \
|
||||
{ 26, 7.5f, 1.000f, -1000, -1900, -1000, 0.79f, 0.32f, 0.87f, 00, 0.032f, 0.00f,0.00f,0.00f, -100, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_WOODEN_COURTYARD \
|
||||
{ 26, 7.5f, 0.650f, -1000, -2200, -1000, 1.79f, 0.35f, 0.79f, -500, 0.123f, 0.00f,0.00f,0.00f, -2000, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 4705.0f, 99.6f, 0.00f, 0x3f }
|
||||
|
||||
|
||||
// SPORTS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_SPORT_EMPTYSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1000, -700, -200, 6.26f, 0.51f, 1.10f, -2400, 0.183f, 0.00f,0.00f,0.00f, -800, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_SQUASHCOURT \
|
||||
{ 26, 7.5f, 0.750f, -1000, -1000, -200, 2.22f, 0.91f, 1.16f, -700, 0.007f, 0.00f,0.00f,0.00f, -200, 0.011f, 0.00f,0.00f,0.00f, 0.126f, 0.190f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL \
|
||||
{ 26, 36.2f, 0.700f, -1000, -200, -100, 2.76f, 1.25f, 1.14f, -400, 0.020f, 0.00f,0.00f,0.00f, -200, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_SPORT_LARGESWIMMINGPOOL\
|
||||
{ 26, 36.2f, 0.820f, -1000, -200, 0, 5.49f, 1.31f, 1.14f, -700, 0.039f, 0.00f,0.00f,0.00f, -600, 0.049f, 0.00f,0.00f,0.00f, 0.222f, 0.550f, 1.159f, 0.210f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_SPORT_GYMNASIUM \
|
||||
{ 26, 7.5f, 0.810f, -1000, -700, -100, 3.14f, 1.06f, 1.35f, -800, 0.029f, 0.00f,0.00f,0.00f, -500, 0.045f, 0.00f,0.00f,0.00f, 0.146f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_FULLSTADIUM \
|
||||
{ 26, 7.2f, 1.000f, -1000, -2300, -200, 5.25f, 0.17f, 0.80f, -2000, 0.188f, 0.00f,0.00f,0.00f, -1100, 0.038f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_SPORT_STADIUMTANNOY \
|
||||
{ 26, 3.0f, 0.780f, -1000, -500, -600, 2.53f, 0.88f, 0.68f, -1100, 0.230f, 0.00f,0.00f,0.00f, -600, 0.063f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// PREFAB PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_PREFAB_WORKSHOP \
|
||||
{ 26, 1.9f, 1.000f, -1000, -1700, -800, 0.76f, 1.00f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 100, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PREFAB_SCHOOLROOM \
|
||||
{ 26, 1.86f, 0.690f, -1000, -400, -600, 0.98f, 0.45f, 0.18f, 300, 0.017f, 0.00f,0.00f,0.00f, 300, 0.015f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_PREFAB_PRACTISEROOM \
|
||||
{ 26, 1.86f, 0.870f, -1000, -800, -600, 1.12f, 0.56f, 0.18f, 200, 0.010f, 0.00f,0.00f,0.00f, 300, 0.011f, 0.00f,0.00f,0.00f, 0.095f, 0.140f, 0.250f, 0.000f, -5.0f, 7176.9f, 211.2f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_PREFAB_OUTHOUSE \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1900, -1600, 1.38f, 0.38f, 0.35f, -100, 0.024f, 0.00f,0.00f,-0.00f, -400, 0.044f, 0.00f,0.00f,0.00f, 0.121f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PREFAB_CARAVAN \
|
||||
{ 26, 8.3f, 1.000f, -1000, -2100, -1800, 0.43f, 1.50f, 1.00f, 0, 0.012f, 0.00f,0.00f,0.00f, 600, 0.012f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x1f }
|
||||
// for US developers, a caravan is the same as a trailer =o)
|
||||
|
||||
|
||||
// DOME AND PIPE PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DOME_TOMB \
|
||||
{ 26, 51.8f, 0.790f, -1000, -900, -1300, 4.18f, 0.21f, 0.10f, -825, 0.030f, 0.00f,0.00f,0.00f, 450, 0.022f, 0.00f,0.00f,0.00f, 0.177f, 0.190f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PIPE_SMALL \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 5.04f, 0.10f, 0.10f, -600, 0.032f, 0.00f,0.00f,0.00f, 800, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_DOME_SAINTPAULS \
|
||||
{ 26, 50.3f, 0.870f, -1000, -900, -1300, 10.48f, 0.19f, 0.10f, -1500, 0.090f, 0.00f,0.00f,0.00f, 200, 0.042f, 0.00f,0.00f,0.00f, 0.250f, 0.120f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PIPE_LONGTHIN \
|
||||
{ 26, 1.6f, 0.910f, -1000, -700, -1100, 9.21f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, -300, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_PIPE_LARGE \
|
||||
{ 26, 50.3f, 1.000f, -1000, -900, -1300, 8.45f, 0.10f, 0.10f, -800, 0.046f, 0.00f,0.00f,0.00f, 400, 0.032f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_PIPE_RESONANT \
|
||||
{ 26, 1.3f, 0.910f, -1000, -700, -1100, 6.81f, 0.18f, 0.10f, -300, 0.010f, 0.00f,0.00f,0.00f, 00, 0.022f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 2854.4f, 20.0f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// OUTDOORS PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_OUTDOORS_BACKYARD \
|
||||
{ 26, 80.3f, 0.450f, -1000, -1200, -600, 1.12f, 0.34f, 0.46f, -700, 0.069f, 0.00f,0.00f,-0.00f, -300, 0.023f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_ROLLINGPLAINS \
|
||||
{ 26, 80.3f, 0.000f, -1000, -3900, -400, 2.13f, 0.21f, 0.46f, -1500, 0.300f, 0.00f,0.00f,-0.00f, -700, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_DEEPCANYON \
|
||||
{ 26, 80.3f, 0.740f, -1000, -1500, -400, 3.89f, 0.21f, 0.46f, -1000, 0.223f, 0.00f,0.00f,-0.00f, -900, 0.019f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_CREEK \
|
||||
{ 26, 80.3f, 0.350f, -1000, -1500, -600, 2.13f, 0.21f, 0.46f, -800, 0.115f, 0.00f,0.00f,-0.00f, -1400, 0.031f, 0.00f,0.00f,0.00f, 0.218f, 0.340f, 0.250f, 0.000f, -5.0f, 4399.1f, 242.9f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_OUTDOORS_VALLEY \
|
||||
{ 26, 80.3f, 0.280f, -1000, -3100, -1600, 2.88f, 0.26f, 0.35f, -1700, 0.263f, 0.00f,0.00f,-0.00f, -800, 0.100f, 0.00f,0.00f,0.00f, 0.250f, 0.340f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// MOOD PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_MOOD_HEAVEN \
|
||||
{ 26, 19.6f, 0.940f, -1000, -200, -700, 5.04f, 1.12f, 0.56f, -1230, 0.020f, 0.00f,0.00f,0.00f, 200, 0.029f, 0.00f,0.00f,0.00f, 0.250f, 0.080f, 2.742f, 0.050f, -2.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_MOOD_HELL \
|
||||
{ 26, 100.0f, 0.570f, -1000, -900, -700, 3.57f, 0.49f, 2.00f, -10000, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.110f, 0.040f, 2.109f, 0.520f, -5.0f, 5000.0f, 139.5f, 0.00f, 0x40 }
|
||||
#define REVERB_PRESET_MOOD_MEMORY \
|
||||
{ 26, 8.0f, 0.850f, -1000, -400, -900, 4.06f, 0.82f, 0.56f, -2800, 0.000f, 0.00f,0.00f,0.00f, 100, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.474f, 0.450f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
|
||||
|
||||
// DRIVING SIMULATION PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DRIVING_COMMENTATOR \
|
||||
{ 26, 3.0f, 0.000f, 1000, -500, -600, 2.42f, 0.88f, 0.68f, -1400, 0.093f, 0.00f,0.00f,0.00f, -1200, 0.017f, 0.00f,0.00f,0.00f, 0.250f, 1.000f, 0.250f, 0.000f, -10.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_PITGARAGE \
|
||||
{ 26, 1.9f, 0.590f, -1000, -300, -500, 1.72f, 0.93f, 0.87f, -500, 0.000f, 0.00f,0.00f,0.00f, 200, 0.016f, 0.00f,0.00f,0.00f, 0.250f, 0.110f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_RACER \
|
||||
{ 26, 1.1f, 0.800f, -1000, 0, -200, 0.17f, 2.00f, 0.41f, 500, 0.007f, 0.00f,0.00f,0.00f, -300, 0.015f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_SPORTS \
|
||||
{ 26, 1.1f, 0.800f, -1000, -400, 0, 0.17f, 0.75f, 0.41f, 0, 0.010f, 0.00f,0.00f,0.00f, -500, 0.000f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_INCAR_LUXURY \
|
||||
{ 26, 1.6f, 1.000f, -1000, -2000, -600, 0.13f, 0.41f, 0.46f, -200, 0.010f, 0.00f,0.00f,0.00f, 400, 0.010f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10268.2f, 251.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_DRIVING_FULLGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -1000, -1100, -400, 3.01f, 1.37f, 1.28f, -900, 0.090f, 0.00f,0.00f,0.00f, -1500, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DRIVING_EMPTYGRANDSTAND \
|
||||
{ 26, 8.3f, 1.000f, -1000, 0, -200, 4.62f, 1.75f, 1.40f, -1363, 0.090f, 0.00f,0.00f,0.00f, -1200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.000f, -5.0f, 10420.2f, 250.0f, 0.00f, 0x1f }
|
||||
#define REVERB_PRESET_DRIVING_TUNNEL \
|
||||
{ 26, 3.1f, 0.810f, -1000, -800, -100, 3.42f, 0.94f, 1.31f, -300, 0.051f, 0.00f,0.00f,0.00f, -300, 0.047f, 0.00f,0.00f,0.00f, 0.214f, 0.050f, 0.250f, 0.000f, -5.0f, 5000.0f, 155.3f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// CITY PRESETS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_CITY_STREETS \
|
||||
{ 26, 3.0f, 0.780f, -1000, -300, -100, 1.79f, 1.12f, 0.91f, -1100, 0.046f, 0.00f,0.00f,0.00f, -1400, 0.028f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_SUBWAY \
|
||||
{ 26, 3.0f, 0.740f, -1000, -300, -100, 3.01f, 1.23f, 0.91f, -300, 0.046f, 0.00f,0.00f,0.00f, 200, 0.028f, 0.00f,0.00f,0.00f, 0.125f, 0.210f, 0.250f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_MUSEUM \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1500, -1500, 3.28f, 1.40f, 0.57f, -1200, 0.039f, 0.00f,0.00f,-0.00f, -100, 0.034f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_CITY_LIBRARY \
|
||||
{ 26, 80.3f, 0.820f, -1000, -1100, -2100, 2.76f, 0.89f, 0.41f, -900, 0.029f, 0.00f,0.00f,-0.00f, -100, 0.020f, 0.00f,0.00f,0.00f, 0.130f, 0.170f, 0.250f, 0.000f, -5.0f, 2854.4f, 107.5f, 0.00f, 0x0 }
|
||||
#define REVERB_PRESET_CITY_UNDERPASS \
|
||||
{ 26, 3.0f, 0.820f, -1000, -700, -100, 3.57f, 1.12f, 0.91f, -800, 0.059f, 0.00f,0.00f,0.00f, -100, 0.037f, 0.00f,0.00f,0.00f, 0.250f, 0.140f, 0.250f, 0.000f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CITY_ABANDONED \
|
||||
{ 26, 3.0f, 0.690f, -1000, -200, -100, 3.28f, 1.17f, 0.91f, -700, 0.044f, 0.00f,0.00f,0.00f, -1100, 0.024f, 0.00f,0.00f,0.00f, 0.250f, 0.200f, 0.250f, 0.000f, -3.0f, 5000.0f, 250.0f, 0.00f, 0x20 }
|
||||
|
||||
|
||||
// MISC ROOMS
|
||||
|
||||
// Env Size Diffus Room RoomHF RoomLF DecTm DcHF DcLF Refl RefDel Ref Pan Revb RevDel Rev Pan EchTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff FLAGS
|
||||
#define REVERB_PRESET_DUSTYROOM \
|
||||
{ 26, 1.8f, 0.560f, -1000, -200, -300, 1.79f, 0.38f, 0.21f, -600, 0.002f, 0.00f,0.00f,0.00f, 200, 0.006f, 0.00f,0.00f,0.00f, 0.202f, 0.050f, 0.250f, 0.000f, -10.0f, 13046.0f, 163.3f, 0.00f, 0x20 }
|
||||
#define REVERB_PRESET_CHAPEL \
|
||||
{ 26, 19.6f, 0.840f, -1000, -500, 0, 4.62f, 0.64f, 1.23f, -700, 0.032f, 0.00f,0.00f,0.00f, -200, 0.049f, 0.00f,0.00f,0.00f, 0.250f, 0.000f, 0.250f, 0.110f, -5.0f, 5000.0f, 250.0f, 0.00f, 0x3f }
|
||||
#define REVERB_PRESET_SMALLWATERROOM \
|
||||
{ 26, 36.2f, 0.700f, -1000, -698, 0, 1.51f, 1.25f, 1.14f, -100, 0.020f, 0.00f,0.00f,0.00f, 300, 0.030f, 0.00f,0.00f,0.00f, 0.179f, 0.150f, 0.895f, 0.190f, -7.0f, 5000.0f, 250.0f, 0.00f, 0x0 }
|
|
@ -0,0 +1,732 @@
|
|||
#ifndef AL_AL_H
|
||||
#define AL_AL_H
|
||||
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define AL_API __declspec(dllexport)
|
||||
#else
|
||||
#define AL_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define AL_API extern
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define AL_APIENTRY __cdecl
|
||||
#else
|
||||
#define AL_APIENTRY
|
||||
#endif
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/* The OPENAL, ALAPI, and ALAPIENTRY 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_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 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. */
|
||||
|
||||
/* bad value */
|
||||
#define AL_INVALID -1
|
||||
|
||||
#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, either at source,
|
||||
* or on mixer results, at listener.
|
||||
* 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
|
||||
|
||||
/**
|
||||
* Specify the channel mask. (Creative)
|
||||
* Type: ALuint
|
||||
* Range: [0 - 255]
|
||||
*/
|
||||
#define AL_CHANNEL_MASK 0x3000
|
||||
|
||||
|
||||
/**
|
||||
* 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_ILLEGAL_ENUM 0xA002
|
||||
#define AL_INVALID_ENUM 0xA002
|
||||
|
||||
/**
|
||||
* Invalid enum parameter value.
|
||||
*/
|
||||
#define AL_INVALID_VALUE 0xA003
|
||||
|
||||
/**
|
||||
* Illegal call.
|
||||
*/
|
||||
#define AL_ILLEGAL_COMMAND 0xA004
|
||||
#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
|
||||
|
||||
|
||||
#if !defined(AL_NO_PROTOTYPES)
|
||||
|
||||
/*
|
||||
* 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 );
|
||||
|
||||
#else /* AL_NO_PROTOTYPES */
|
||||
|
||||
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 );
|
||||
|
||||
#endif /* AL_NO_PROTOTYPES */
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AL_AL_H */
|
|
@ -0,0 +1,281 @@
|
|||
#ifndef AL_ALC_H
|
||||
#define AL_ALC_H
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define ALC_API __declspec(dllexport)
|
||||
#else
|
||||
#define ALC_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
|
||||
#define ALC_API __attribute__((visibility("default")))
|
||||
#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 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
|
||||
|
||||
/**
|
||||
* ALC_ENUMERATE_ALL_EXT enums
|
||||
*/
|
||||
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
|
||||
#define ALC_ALL_DEVICES_SPECIFIER 0x1013
|
||||
|
||||
/**
|
||||
* Capture extension
|
||||
*/
|
||||
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
|
||||
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
|
||||
#define ALC_CAPTURE_SAMPLES 0x312
|
||||
|
||||
|
||||
/*
|
||||
* 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,151 @@
|
|||
#ifndef __efxcreative_h_
|
||||
#define __efxcreative_h_
|
||||
|
||||
/**
|
||||
* efx-creative.h - Environmental Audio Extensions
|
||||
* for OpenAL Effects Extension.
|
||||
*
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Effect object definitions to be used with alEffect functions.
|
||||
*
|
||||
* Effect parameter value definitions, ranges, and defaults
|
||||
* appear farther down in this file.
|
||||
*/
|
||||
|
||||
/* AL EAXReverb 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
|
||||
|
||||
/* Effect type definitions to be used with AL_EFFECT_TYPE. */
|
||||
#define AL_EFFECT_EAXREVERB 0x8000
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Effect parameter structures, value definitions, ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* AL reverb effect parameter ranges and defaults
|
||||
*/
|
||||
#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 {0.0f, 0.0f, 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 {0.0f, 0.0f, 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
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* __efxcreative_h_ */
|
|
@ -0,0 +1,737 @@
|
|||
#ifndef __efx_h_
|
||||
#define __efx_h_
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ALC_EXT_EFX_NAME "ALC_EXT_EFX"
|
||||
|
||||
/**
|
||||
* Context definitions to be used with alcCreateContext.
|
||||
* These values must be unique and not conflict with other
|
||||
* al context values.
|
||||
*/
|
||||
#define ALC_EFX_MAJOR_VERSION 0x20001
|
||||
#define ALC_EFX_MINOR_VERSION 0x20002
|
||||
#define ALC_MAX_AUXILIARY_SENDS 0x20003
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Listener definitions to be used with alListener functions.
|
||||
* These values must be unique and not conflict with other
|
||||
* al listener values.
|
||||
*/
|
||||
#define AL_METERS_PER_UNIT 0x20004
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Source definitions to be used with alSource functions.
|
||||
* These values must be unique and not conflict with other
|
||||
* al source values.
|
||||
*/
|
||||
#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 object definitions to be used with alEffect functions.
|
||||
*
|
||||
* Effect parameter value definitions, ranges, and defaults
|
||||
* appear farther down in this file.
|
||||
*/
|
||||
|
||||
/* Reverb 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
|
||||
|
||||
/* Chorus 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 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 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 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
|
||||
|
||||
/* Frequencyshifter Parameters */
|
||||
#define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001
|
||||
#define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002
|
||||
#define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003
|
||||
|
||||
/* Vocalmorpher 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 Parameters */
|
||||
#define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001
|
||||
#define AL_PITCH_SHIFTER_FINE_TUNE 0x0002
|
||||
|
||||
/* Ringmodulator Parameters */
|
||||
#define AL_RING_MODULATOR_FREQUENCY 0x0001
|
||||
#define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002
|
||||
#define AL_RING_MODULATOR_WAVEFORM 0x0003
|
||||
|
||||
/* Autowah 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 Parameters */
|
||||
#define AL_COMPRESSOR_ONOFF 0x0001
|
||||
|
||||
/* Equalizer 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 type definitions to be used with AL_EFFECT_TYPE. */
|
||||
#define AL_EFFECT_NULL 0x0000 /* Can also be used as an Effect Object ID */
|
||||
#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
|
||||
|
||||
/**
|
||||
* Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions.
|
||||
*/
|
||||
#define AL_EFFECTSLOT_EFFECT 0x0001
|
||||
#define AL_EFFECTSLOT_GAIN 0x0002
|
||||
#define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003
|
||||
|
||||
/**
|
||||
* Value to be used as an Auxiliary Slot ID to disable a source send..
|
||||
*/
|
||||
#define AL_EFFECTSLOT_NULL 0x0000
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Filter object definitions to be used with alFilter functions.
|
||||
*/
|
||||
|
||||
/* Lowpass parameters. */
|
||||
#define AL_LOWPASS_GAIN 0x0001
|
||||
#define AL_LOWPASS_GAINHF 0x0002
|
||||
|
||||
/* Highpass Parameters */
|
||||
#define AL_HIGHPASS_GAIN 0x0001
|
||||
#define AL_HIGHPASS_GAINLF 0x0002
|
||||
|
||||
/* Bandpass 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 type definitions to be used with AL_FILTER_TYPE. */
|
||||
#define AL_FILTER_NULL 0x0000 /* Can also be used as a Filter Object ID */
|
||||
#define AL_FILTER_LOWPASS 0x0001
|
||||
#define AL_FILTER_HIGHPASS 0x0002
|
||||
#define AL_FILTER_BANDPASS 0x0003
|
||||
|
||||
|
||||
/**
|
||||
* Effect object functions.
|
||||
*/
|
||||
|
||||
/* Create Effect objects. */
|
||||
typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects );
|
||||
|
||||
/* Delete Effect objects. */
|
||||
typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects );
|
||||
|
||||
/* Verify a handle is a valid Effect. */
|
||||
typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid );
|
||||
|
||||
/* Set an integer parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value);
|
||||
typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value);
|
||||
typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for an Effect object. */
|
||||
typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
/**
|
||||
* Filter object functions
|
||||
*/
|
||||
|
||||
/* Create Filter objects. */
|
||||
typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters );
|
||||
|
||||
/* Delete Filter objects. */
|
||||
typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters );
|
||||
|
||||
/* Verify a handle is a valid Filter. */
|
||||
typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid );
|
||||
|
||||
/* Set an integer parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value );
|
||||
typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Filter object. */
|
||||
typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value);
|
||||
typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for a Filter object. */
|
||||
typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
/**
|
||||
* Auxiliary Slot object functions
|
||||
*/
|
||||
|
||||
/* Create Auxiliary Slot objects. */
|
||||
typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
|
||||
|
||||
/* Delete Auxiliary Slot objects. */
|
||||
typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots );
|
||||
|
||||
/* Verify a handle is a valid Auxiliary Slot. */
|
||||
typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot );
|
||||
|
||||
/* Set an integer parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value );
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values );
|
||||
|
||||
/* Set a floating point parameter for an Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value );
|
||||
typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values );
|
||||
|
||||
/* Get an integer parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value );
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values );
|
||||
|
||||
/* Get a floating point parameter for a Auxiliary Slot object. */
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value );
|
||||
typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values );
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Filter ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Lowpass filter
|
||||
*/
|
||||
|
||||
#define LOWPASS_MIN_GAIN 0.0f
|
||||
#define LOWPASS_MAX_GAIN 1.0f
|
||||
#define LOWPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define LOWPASS_MIN_GAINHF 0.0f
|
||||
#define LOWPASS_MAX_GAINHF 1.0f
|
||||
#define LOWPASS_DEFAULT_GAINHF 1.0f
|
||||
|
||||
/**
|
||||
* Highpass filter
|
||||
*/
|
||||
|
||||
#define HIGHPASS_MIN_GAIN 0.0f
|
||||
#define HIGHPASS_MAX_GAIN 1.0f
|
||||
#define HIGHPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define HIGHPASS_MIN_GAINLF 0.0f
|
||||
#define HIGHPASS_MAX_GAINLF 1.0f
|
||||
#define HIGHPASS_DEFAULT_GAINLF 1.0f
|
||||
|
||||
/**
|
||||
* Bandpass filter
|
||||
*/
|
||||
|
||||
#define BANDPASS_MIN_GAIN 0.0f
|
||||
#define BANDPASS_MAX_GAIN 1.0f
|
||||
#define BANDPASS_DEFAULT_GAIN 1.0f
|
||||
|
||||
#define BANDPASS_MIN_GAINHF 0.0f
|
||||
#define BANDPASS_MAX_GAINHF 1.0f
|
||||
#define BANDPASS_DEFAULT_GAINHF 1.0f
|
||||
|
||||
#define BANDPASS_MIN_GAINLF 0.0f
|
||||
#define BANDPASS_MAX_GAINLF 1.0f
|
||||
#define BANDPASS_DEFAULT_GAINLF 1.0f
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************************************************
|
||||
* Effect parameter structures, value definitions, ranges and defaults.
|
||||
*/
|
||||
|
||||
/**
|
||||
* AL reverb effect parameter ranges and defaults
|
||||
*/
|
||||
#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
|
||||
|
||||
/**
|
||||
* AL chorus effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_CHORUS_MIN_WAVEFORM 0
|
||||
#define AL_CHORUS_MAX_WAVEFORM 1
|
||||
#define AL_CHORUS_DEFAULT_WAVEFORM 1
|
||||
|
||||
#define AL_CHORUS_WAVEFORM_SINUSOID 0
|
||||
#define AL_CHORUS_WAVEFORM_TRIANGLE 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
|
||||
|
||||
/**
|
||||
* AL distortion effect parameter ranges and defaults
|
||||
*/
|
||||
#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
|
||||
|
||||
/**
|
||||
* AL echo effect parameter ranges and defaults
|
||||
*/
|
||||
#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)
|
||||
|
||||
/**
|
||||
* AL flanger effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_FLANGER_MIN_WAVEFORM 0
|
||||
#define AL_FLANGER_MAX_WAVEFORM 1
|
||||
#define AL_FLANGER_DEFAULT_WAVEFORM 1
|
||||
|
||||
#define AL_FLANGER_WAVEFORM_SINUSOID 0
|
||||
#define AL_FLANGER_WAVEFORM_TRIANGLE 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
|
||||
|
||||
/**
|
||||
* AL frequency shifter effect parameter ranges and defaults
|
||||
*/
|
||||
#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_MIN_RIGHT_DIRECTION 0
|
||||
#define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION 2
|
||||
#define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION 0
|
||||
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN 0
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_UP 1
|
||||
#define AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2
|
||||
|
||||
/**
|
||||
* AL vocal morpher effect parameter ranges and defaults
|
||||
*/
|
||||
#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_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_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_MIN_WAVEFORM 0
|
||||
#define AL_VOCAL_MORPHER_MAX_WAVEFORM 2
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM 0
|
||||
|
||||
#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_RATE 0.0f
|
||||
#define AL_VOCAL_MORPHER_MAX_RATE 10.0f
|
||||
#define AL_VOCAL_MORPHER_DEFAULT_RATE 1.41f
|
||||
|
||||
/**
|
||||
* AL pitch shifter effect parameter ranges and defaults
|
||||
*/
|
||||
#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
|
||||
|
||||
/**
|
||||
* AL ring modulator effect parameter ranges and defaults
|
||||
*/
|
||||
#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_MIN_WAVEFORM 0
|
||||
#define AL_RING_MODULATOR_MAX_WAVEFORM 2
|
||||
#define AL_RING_MODULATOR_DEFAULT_WAVEFORM 0
|
||||
|
||||
#define AL_RING_MODULATOR_SINUSOID 0
|
||||
#define AL_RING_MODULATOR_SAWTOOTH 1
|
||||
#define AL_RING_MODULATOR_SQUARE 2
|
||||
|
||||
/**
|
||||
* AL autowah effect parameter ranges and defaults
|
||||
*/
|
||||
#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
|
||||
|
||||
/**
|
||||
* AL compressor effect parameter ranges and defaults
|
||||
*/
|
||||
#define AL_COMPRESSOR_MIN_ONOFF 0
|
||||
#define AL_COMPRESSOR_MAX_ONOFF 1
|
||||
#define AL_COMPRESSOR_DEFAULT_ONOFF 1
|
||||
|
||||
/**
|
||||
* AL equalizer effect parameter ranges and defaults
|
||||
*/
|
||||
#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 definitions, 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 definitions, 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 /* __efx_h_ */
|
|
@ -0,0 +1,94 @@
|
|||
#include <al.h>
|
||||
|
||||
// X-RAM Function pointer definitions
|
||||
typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
|
||||
typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query for X-RAM extension
|
||||
//
|
||||
// if (alIsExtensionPresent("EAX-RAM") == AL_TRUE)
|
||||
// X-RAM Extension found
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// X-RAM enum names
|
||||
//
|
||||
// "AL_EAX_RAM_SIZE"
|
||||
// "AL_EAX_RAM_FREE"
|
||||
// "AL_STORAGE_AUTOMATIC"
|
||||
// "AL_STORAGE_HARDWARE"
|
||||
// "AL_STORAGE_ACCESSIBLE"
|
||||
//
|
||||
// Query enum values using alGetEnumValue, for example
|
||||
//
|
||||
// long lRamSizeEnum = alGetEnumValue("AL_EAX_RAM_SIZE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query total amount of X-RAM
|
||||
//
|
||||
// long lTotalSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_SIZE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query free X-RAM available
|
||||
//
|
||||
// long lFreeSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_FREE")
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Query X-RAM Function pointers
|
||||
//
|
||||
// Use typedefs defined above to get the X-RAM function pointers using
|
||||
// alGetProcAddress
|
||||
//
|
||||
// EAXSetBufferMode eaxSetBufferMode;
|
||||
// EAXGetBufferMode eaxGetBufferMode;
|
||||
//
|
||||
// eaxSetBufferMode = (EAXSetBufferMode)alGetProcAddress("EAXSetBufferMode");
|
||||
// eaxGetBufferMode = (EAXGetBufferMode)alGetProcAddress("EAXGetBufferMode");
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Force an Open AL Buffer into X-RAM (good for non-streaming buffers)
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_HARDWARE"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Force an Open AL Buffer into 'accessible' (currently host) RAM (good for streaming buffers)
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_ACCESSIBLE"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Put an Open AL Buffer into X-RAM if memory is available, otherwise use
|
||||
// host RAM. This is the default mode.
|
||||
//
|
||||
// ALuint uiBuffer;
|
||||
// alGenBuffers(1, &uiBuffer);
|
||||
// eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_AUTOMATIC"));
|
||||
// alBufferData(...);
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
|
@ -0,0 +1,126 @@
|
|||
#if !defined(AL_ALUT_H)
|
||||
#define AL_ALUT_H
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#include <alc.h>
|
||||
#include <al.h>
|
||||
#elif defined(__APPLE__)
|
||||
#include <OpenAL/alc.h>
|
||||
#include <OpenAL/al.h>
|
||||
#else
|
||||
#include <AL/al.h>
|
||||
#include <AL/alc.h>
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
#if defined (ALUT_BUILD_LIBRARY)
|
||||
#define ALUT_API __declspec(dllexport)
|
||||
#else
|
||||
#define ALUT_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(ALUT_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
|
||||
#define ALUT_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define ALUT_API extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define ALUT_APIENTRY __cdecl
|
||||
#else
|
||||
#define ALUT_APIENTRY
|
||||
#endif
|
||||
|
||||
#if defined(__MWERKS_)
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/* Flag deprecated functions if possible (VisualC++ .NET and GCC >= 3.1.1). */
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1300 && !defined(MIDL_PASS)
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED __declspec(deprecated)
|
||||
#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 || (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 1))))
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED __attribute__((deprecated))
|
||||
#else
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED
|
||||
#endif
|
||||
|
||||
#define ALUT_API_MAJOR_VERSION 1
|
||||
#define ALUT_API_MINOR_VERSION 1
|
||||
|
||||
#define ALUT_ERROR_NO_ERROR 0
|
||||
#define ALUT_ERROR_OUT_OF_MEMORY 0x200
|
||||
#define ALUT_ERROR_INVALID_ENUM 0x201
|
||||
#define ALUT_ERROR_INVALID_VALUE 0x202
|
||||
#define ALUT_ERROR_INVALID_OPERATION 0x203
|
||||
#define ALUT_ERROR_NO_CURRENT_CONTEXT 0x204
|
||||
#define ALUT_ERROR_AL_ERROR_ON_ENTRY 0x205
|
||||
#define ALUT_ERROR_ALC_ERROR_ON_ENTRY 0x206
|
||||
#define ALUT_ERROR_OPEN_DEVICE 0x207
|
||||
#define ALUT_ERROR_CLOSE_DEVICE 0x208
|
||||
#define ALUT_ERROR_CREATE_CONTEXT 0x209
|
||||
#define ALUT_ERROR_MAKE_CONTEXT_CURRENT 0x20A
|
||||
#define ALUT_ERROR_DESTROY_CONTEXT 0x20B
|
||||
#define ALUT_ERROR_GEN_BUFFERS 0x20C
|
||||
#define ALUT_ERROR_BUFFER_DATA 0x20D
|
||||
#define ALUT_ERROR_IO_ERROR 0x20E
|
||||
#define ALUT_ERROR_UNSUPPORTED_FILE_TYPE 0x20F
|
||||
#define ALUT_ERROR_UNSUPPORTED_FILE_SUBTYPE 0x210
|
||||
#define ALUT_ERROR_CORRUPT_OR_TRUNCATED_DATA 0x211
|
||||
|
||||
#define ALUT_WAVEFORM_SINE 0x100
|
||||
#define ALUT_WAVEFORM_SQUARE 0x101
|
||||
#define ALUT_WAVEFORM_SAWTOOTH 0x102
|
||||
#define ALUT_WAVEFORM_WHITENOISE 0x103
|
||||
#define ALUT_WAVEFORM_IMPULSE 0x104
|
||||
|
||||
#define ALUT_LOADER_BUFFER 0x300
|
||||
#define ALUT_LOADER_MEMORY 0x301
|
||||
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutInit (int *argcp, char **argv);
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutInitWithoutContext (int *argcp, char **argv);
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutExit (void);
|
||||
|
||||
ALUT_API ALenum ALUT_APIENTRY alutGetError (void);
|
||||
ALUT_API const char *ALUT_APIENTRY alutGetErrorString (ALenum error);
|
||||
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferFromFile (const char *fileName);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferFromFileImage (const ALvoid *data, ALsizei length);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferHelloWorld (void);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferWaveform (ALenum waveshape, ALfloat frequency, ALfloat phase, ALfloat duration);
|
||||
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryFromFile (const char *fileName, ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryFromFileImage (const ALvoid *data, ALsizei length, ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryHelloWorld (ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryWaveform (ALenum waveshape, ALfloat frequency, ALfloat phase, ALfloat duration, ALenum *format, ALsizei *size, ALfloat *freq);
|
||||
|
||||
ALUT_API const char *ALUT_APIENTRY alutGetMIMETypes (ALenum loader);
|
||||
|
||||
ALUT_API ALint ALUT_APIENTRY alutGetMajorVersion (void);
|
||||
ALUT_API ALint ALUT_APIENTRY alutGetMinorVersion (void);
|
||||
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutSleep (ALfloat duration);
|
||||
|
||||
/* Nasty Compatibility stuff, WARNING: THESE FUNCTIONS ARE STRONGLY DEPRECATED */
|
||||
#if defined(__APPLE__)
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVFile (ALbyte *fileName, ALenum *format, void **data, ALsizei *size, ALsizei *frequency);
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVMemory (ALbyte *buffer, ALenum *format, void **data, ALsizei *size, ALsizei *frequency);
|
||||
#else
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVFile (ALbyte *fileName, ALenum *format, void **data, ALsizei *size, ALsizei *frequency, ALboolean *loop);
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVMemory (ALbyte *buffer, ALenum *format, void **data, ALsizei *size, ALsizei *frequency, ALboolean *loop);
|
||||
#endif
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutUnloadWAV (ALenum format, ALvoid *data, ALsizei size, ALsizei frequency);
|
||||
|
||||
#if defined(__MWERKS_)
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -0,0 +1,428 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# include/ogg/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
srcdir = .
|
||||
top_srcdir = ../..
|
||||
|
||||
pkgdatadir = $(datadir)/libogg
|
||||
pkglibdir = $(libdir)/libogg
|
||||
pkgincludedir = $(includedir)/libogg
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = /bin/install -c
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = i686-pc-mingw32
|
||||
host_triplet = i686-pc-mingw32
|
||||
subdir = include/ogg
|
||||
DIST_COMMON = $(ogginclude_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config_types.h.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = config_types.h
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(oggincludedir)" \
|
||||
"$(DESTDIR)$(oggincludedir)"
|
||||
nodist_oggincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
oggincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(nodist_ogginclude_HEADERS) $(ogginclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run aclocal-1.9
|
||||
AMDEP_FALSE = #
|
||||
AMDEP_TRUE =
|
||||
AMTAR = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run tar
|
||||
AR = ar
|
||||
AUTOCONF = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run automake-1.9
|
||||
AWK = gawk
|
||||
CC = gcc
|
||||
CCDEPMODE = depmode=gcc3
|
||||
CFLAGS = -O20 -fsigned-char -g -O2
|
||||
CPP = gcc -E
|
||||
CPPFLAGS =
|
||||
CXX = g++
|
||||
CXXCPP = g++ -E
|
||||
CXXDEPMODE = depmode=gcc3
|
||||
CXXFLAGS = -g -O2
|
||||
CYGPATH_W = echo
|
||||
DEBUG = -g -Wall -fsigned-char -g -O2
|
||||
DEFS = -DHAVE_CONFIG_H
|
||||
DEPDIR = .deps
|
||||
ECHO = echo
|
||||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
EGREP = grep -E
|
||||
EXEEXT = .exe
|
||||
F77 = g77
|
||||
FFLAGS = -g -O2
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
|
||||
LDFLAGS =
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
||||
LIBTOOL_DEPS = ./ltmain.sh
|
||||
LIB_AGE = 5
|
||||
LIB_CURRENT = 5
|
||||
LIB_REVISION = 3
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAINT = #
|
||||
MAINTAINER_MODE_FALSE =
|
||||
MAINTAINER_MODE_TRUE = #
|
||||
MAKEINFO = ${SHELL} /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/missing --run makeinfo
|
||||
OBJEXT = o
|
||||
OPT =
|
||||
PACKAGE = libogg
|
||||
PACKAGE_BUGREPORT =
|
||||
PACKAGE_NAME =
|
||||
PACKAGE_STRING =
|
||||
PACKAGE_TARNAME =
|
||||
PACKAGE_VERSION =
|
||||
PATH_SEPARATOR = :
|
||||
PROFILE = -O20 -g -pg -fsigned-char -g -O2
|
||||
RANLIB = ranlib
|
||||
SET_MAKE =
|
||||
SHELL = /bin/sh
|
||||
SIZE16 = short
|
||||
SIZE32 = int
|
||||
SIZE64 = long long
|
||||
STRIP = strip
|
||||
USIZE16 = unsigned short
|
||||
USIZE32 = unsigned int
|
||||
VERSION = 1.1.3
|
||||
ac_ct_AR = ar
|
||||
ac_ct_CC = gcc
|
||||
ac_ct_CXX = g++
|
||||
ac_ct_F77 = g77
|
||||
ac_ct_RANLIB = ranlib
|
||||
ac_ct_STRIP = strip
|
||||
am__fastdepCC_FALSE = #
|
||||
am__fastdepCC_TRUE =
|
||||
am__fastdepCXX_FALSE = #
|
||||
am__fastdepCXX_TRUE =
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__tar = ${AMTAR} chof - "$$tardir"
|
||||
am__untar = ${AMTAR} xf -
|
||||
bindir = ${exec_prefix}/bin
|
||||
build = i686-pc-mingw32
|
||||
build_alias =
|
||||
build_cpu = i686
|
||||
build_os = mingw32
|
||||
build_vendor = pc
|
||||
datadir = ${prefix}/share
|
||||
exec_prefix = ${prefix}
|
||||
host = i686-pc-mingw32
|
||||
host_alias =
|
||||
host_cpu = i686
|
||||
host_os = mingw32
|
||||
host_vendor = pc
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${prefix}/info
|
||||
install_sh = /c/Users/Sudi/Programmieren/Libs/libogg-1.1.3/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${prefix}/man
|
||||
mkdir_p = mkdir -p --
|
||||
oldincludedir = /usr/include
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
oggincludedir = $(includedir)/ogg
|
||||
ogginclude_HEADERS = ogg.h os_types.h
|
||||
nodist_ogginclude_HEADERS = config_types.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/ogg/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu include/ogg/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: # $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
config_types.h: $(top_builddir)/config.status $(srcdir)/config_types.h.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-nodist_oggincludeHEADERS: $(nodist_ogginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(oggincludedir)" || $(mkdir_p) "$(DESTDIR)$(oggincludedir)"
|
||||
@list='$(nodist_ogginclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(nodist_oggincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
$(nodist_oggincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-nodist_oggincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(nodist_ogginclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
install-oggincludeHEADERS: $(ogginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(oggincludedir)" || $(mkdir_p) "$(DESTDIR)$(oggincludedir)"
|
||||
@list='$(ogginclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(oggincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
$(oggincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-oggincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(ogginclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(oggincludedir)" "$(DESTDIR)$(oggincludedir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-nodist_oggincludeHEADERS \
|
||||
install-oggincludeHEADERS
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am uninstall-nodist_oggincludeHEADERS \
|
||||
uninstall-oggincludeHEADERS
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool ctags distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-nodist_oggincludeHEADERS \
|
||||
install-oggincludeHEADERS install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-info-am \
|
||||
uninstall-nodist_oggincludeHEADERS uninstall-oggincludeHEADERS
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
|
@ -0,0 +1,6 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
oggincludedir = $(includedir)/ogg
|
||||
|
||||
ogginclude_HEADERS = ogg.h os_types.h
|
||||
nodist_ogginclude_HEADERS = config_types.h
|
|
@ -0,0 +1,428 @@
|
|||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = include/ogg
|
||||
DIST_COMMON = $(ogginclude_HEADERS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config_types.h.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES = config_types.h
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(oggincludedir)" \
|
||||
"$(DESTDIR)$(oggincludedir)"
|
||||
nodist_oggincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
oggincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(nodist_ogginclude_HEADERS) $(ogginclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEBUG = @DEBUG@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBTOOL_DEPS = @LIBTOOL_DEPS@
|
||||
LIB_AGE = @LIB_AGE@
|
||||
LIB_CURRENT = @LIB_CURRENT@
|
||||
LIB_REVISION = @LIB_REVISION@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
OBJEXT = @OBJEXT@
|
||||
OPT = @OPT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PROFILE = @PROFILE@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SIZE16 = @SIZE16@
|
||||
SIZE32 = @SIZE32@
|
||||
SIZE64 = @SIZE64@
|
||||
STRIP = @STRIP@
|
||||
USIZE16 = @USIZE16@
|
||||
USIZE32 = @USIZE32@
|
||||
VERSION = @VERSION@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
oggincludedir = $(includedir)/ogg
|
||||
ogginclude_HEADERS = ogg.h os_types.h
|
||||
nodist_ogginclude_HEADERS = config_types.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/ogg/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu include/ogg/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
config_types.h: $(top_builddir)/config.status $(srcdir)/config_types.h.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
install-nodist_oggincludeHEADERS: $(nodist_ogginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(oggincludedir)" || $(mkdir_p) "$(DESTDIR)$(oggincludedir)"
|
||||
@list='$(nodist_ogginclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(nodist_oggincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
$(nodist_oggincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-nodist_oggincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(nodist_ogginclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
install-oggincludeHEADERS: $(ogginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(oggincludedir)" || $(mkdir_p) "$(DESTDIR)$(oggincludedir)"
|
||||
@list='$(ogginclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(oggincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
$(oggincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-oggincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(ogginclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(oggincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(oggincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(oggincludedir)" "$(DESTDIR)$(oggincludedir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-nodist_oggincludeHEADERS \
|
||||
install-oggincludeHEADERS
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am uninstall-nodist_oggincludeHEADERS \
|
||||
uninstall-oggincludeHEADERS
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool ctags distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-nodist_oggincludeHEADERS \
|
||||
install-oggincludeHEADERS install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-info-am \
|
||||
uninstall-nodist_oggincludeHEADERS uninstall-oggincludeHEADERS
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef __CONFIG_TYPES_H__
|
||||
#define __CONFIG_TYPES_H__
|
||||
|
||||
/* these are filled in by configure */
|
||||
typedef short ogg_int16_t;
|
||||
typedef unsigned short ogg_uint16_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef long long ogg_int64_t;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef __CONFIG_TYPES_H__
|
||||
#define __CONFIG_TYPES_H__
|
||||
|
||||
/* these are filled in by configure */
|
||||
typedef @SIZE16@ ogg_int16_t;
|
||||
typedef @USIZE16@ ogg_uint16_t;
|
||||
typedef @SIZE32@ ogg_int32_t;
|
||||
typedef @USIZE32@ ogg_uint32_t;
|
||||
typedef @SIZE64@ ogg_int64_t;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,202 @@
|
|||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: toplevel libogg include
|
||||
last mod: $Id: ogg.h 7188 2004-07-20 07:26:04Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
#ifndef _OGG_H
|
||||
#define _OGG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <ogg/os_types.h>
|
||||
|
||||
typedef struct {
|
||||
long endbyte;
|
||||
int endbit;
|
||||
|
||||
unsigned char *buffer;
|
||||
unsigned char *ptr;
|
||||
long storage;
|
||||
} oggpack_buffer;
|
||||
|
||||
/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/
|
||||
|
||||
typedef struct {
|
||||
unsigned char *header;
|
||||
long header_len;
|
||||
unsigned char *body;
|
||||
long body_len;
|
||||
} ogg_page;
|
||||
|
||||
/* ogg_stream_state contains the current encode/decode state of a logical
|
||||
Ogg bitstream **********************************************************/
|
||||
|
||||
typedef struct {
|
||||
unsigned char *body_data; /* bytes from packet bodies */
|
||||
long body_storage; /* storage elements allocated */
|
||||
long body_fill; /* elements stored; fill mark */
|
||||
long body_returned; /* elements of fill returned */
|
||||
|
||||
|
||||
int *lacing_vals; /* The values that will go to the segment table */
|
||||
ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact
|
||||
this way, but it is simple coupled to the
|
||||
lacing fifo */
|
||||
long lacing_storage;
|
||||
long lacing_fill;
|
||||
long lacing_packet;
|
||||
long lacing_returned;
|
||||
|
||||
unsigned char header[282]; /* working space for header encode */
|
||||
int header_fill;
|
||||
|
||||
int e_o_s; /* set when we have buffered the last packet in the
|
||||
logical bitstream */
|
||||
int b_o_s; /* set after we've written the initial page
|
||||
of a logical bitstream */
|
||||
long serialno;
|
||||
long pageno;
|
||||
ogg_int64_t packetno; /* sequence number for decode; the framing
|
||||
knows where there's a hole in the data,
|
||||
but we need coupling so that the codec
|
||||
(which is in a seperate abstraction
|
||||
layer) also knows about the gap */
|
||||
ogg_int64_t granulepos;
|
||||
|
||||
} ogg_stream_state;
|
||||
|
||||
/* ogg_packet is used to encapsulate the data and metadata belonging
|
||||
to a single raw Ogg/Vorbis packet *************************************/
|
||||
|
||||
typedef struct {
|
||||
unsigned char *packet;
|
||||
long bytes;
|
||||
long b_o_s;
|
||||
long e_o_s;
|
||||
|
||||
ogg_int64_t granulepos;
|
||||
|
||||
ogg_int64_t packetno; /* sequence number for decode; the framing
|
||||
knows where there's a hole in the data,
|
||||
but we need coupling so that the codec
|
||||
(which is in a seperate abstraction
|
||||
layer) also knows about the gap */
|
||||
} ogg_packet;
|
||||
|
||||
typedef struct {
|
||||
unsigned char *data;
|
||||
int storage;
|
||||
int fill;
|
||||
int returned;
|
||||
|
||||
int unsynced;
|
||||
int headerbytes;
|
||||
int bodybytes;
|
||||
} ogg_sync_state;
|
||||
|
||||
/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/
|
||||
|
||||
extern void oggpack_writeinit(oggpack_buffer *b);
|
||||
extern void oggpack_writetrunc(oggpack_buffer *b,long bits);
|
||||
extern void oggpack_writealign(oggpack_buffer *b);
|
||||
extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits);
|
||||
extern void oggpack_reset(oggpack_buffer *b);
|
||||
extern void oggpack_writeclear(oggpack_buffer *b);
|
||||
extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
|
||||
extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits);
|
||||
extern long oggpack_look(oggpack_buffer *b,int bits);
|
||||
extern long oggpack_look1(oggpack_buffer *b);
|
||||
extern void oggpack_adv(oggpack_buffer *b,int bits);
|
||||
extern void oggpack_adv1(oggpack_buffer *b);
|
||||
extern long oggpack_read(oggpack_buffer *b,int bits);
|
||||
extern long oggpack_read1(oggpack_buffer *b);
|
||||
extern long oggpack_bytes(oggpack_buffer *b);
|
||||
extern long oggpack_bits(oggpack_buffer *b);
|
||||
extern unsigned char *oggpack_get_buffer(oggpack_buffer *b);
|
||||
|
||||
extern void oggpackB_writeinit(oggpack_buffer *b);
|
||||
extern void oggpackB_writetrunc(oggpack_buffer *b,long bits);
|
||||
extern void oggpackB_writealign(oggpack_buffer *b);
|
||||
extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits);
|
||||
extern void oggpackB_reset(oggpack_buffer *b);
|
||||
extern void oggpackB_writeclear(oggpack_buffer *b);
|
||||
extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
|
||||
extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits);
|
||||
extern long oggpackB_look(oggpack_buffer *b,int bits);
|
||||
extern long oggpackB_look1(oggpack_buffer *b);
|
||||
extern void oggpackB_adv(oggpack_buffer *b,int bits);
|
||||
extern void oggpackB_adv1(oggpack_buffer *b);
|
||||
extern long oggpackB_read(oggpack_buffer *b,int bits);
|
||||
extern long oggpackB_read1(oggpack_buffer *b);
|
||||
extern long oggpackB_bytes(oggpack_buffer *b);
|
||||
extern long oggpackB_bits(oggpack_buffer *b);
|
||||
extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b);
|
||||
|
||||
/* Ogg BITSTREAM PRIMITIVES: encoding **************************/
|
||||
|
||||
extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
|
||||
extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
|
||||
extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
|
||||
|
||||
/* Ogg BITSTREAM PRIMITIVES: decoding **************************/
|
||||
|
||||
extern int ogg_sync_init(ogg_sync_state *oy);
|
||||
extern int ogg_sync_clear(ogg_sync_state *oy);
|
||||
extern int ogg_sync_reset(ogg_sync_state *oy);
|
||||
extern int ogg_sync_destroy(ogg_sync_state *oy);
|
||||
|
||||
extern char *ogg_sync_buffer(ogg_sync_state *oy, long size);
|
||||
extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes);
|
||||
extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
|
||||
extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
|
||||
extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
|
||||
extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
|
||||
extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);
|
||||
|
||||
/* Ogg BITSTREAM PRIMITIVES: general ***************************/
|
||||
|
||||
extern int ogg_stream_init(ogg_stream_state *os,int serialno);
|
||||
extern int ogg_stream_clear(ogg_stream_state *os);
|
||||
extern int ogg_stream_reset(ogg_stream_state *os);
|
||||
extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno);
|
||||
extern int ogg_stream_destroy(ogg_stream_state *os);
|
||||
extern int ogg_stream_eos(ogg_stream_state *os);
|
||||
|
||||
extern void ogg_page_checksum_set(ogg_page *og);
|
||||
|
||||
extern int ogg_page_version(ogg_page *og);
|
||||
extern int ogg_page_continued(ogg_page *og);
|
||||
extern int ogg_page_bos(ogg_page *og);
|
||||
extern int ogg_page_eos(ogg_page *og);
|
||||
extern ogg_int64_t ogg_page_granulepos(ogg_page *og);
|
||||
extern int ogg_page_serialno(ogg_page *og);
|
||||
extern long ogg_page_pageno(ogg_page *og);
|
||||
extern int ogg_page_packets(ogg_page *og);
|
||||
|
||||
extern void ogg_packet_clear(ogg_packet *op);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _OGG_H */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: #ifdef jail to whip a few platforms into the UNIX ideal.
|
||||
last mod: $Id: os_types.h 7524 2004-08-11 04:20:36Z conrad $
|
||||
|
||||
********************************************************************/
|
||||
#ifndef _OS_TYPES_H
|
||||
#define _OS_TYPES_H
|
||||
|
||||
/* make it easy on the folks that want to compile the libs with a
|
||||
different malloc than stdlib */
|
||||
#define _ogg_malloc malloc
|
||||
#define _ogg_calloc calloc
|
||||
#define _ogg_realloc realloc
|
||||
#define _ogg_free free
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
# if defined(__CYGWIN__)
|
||||
# include <_G_config.h>
|
||||
typedef _G_int64_t ogg_int64_t;
|
||||
typedef _G_int32_t ogg_int32_t;
|
||||
typedef _G_uint32_t ogg_uint32_t;
|
||||
typedef _G_int16_t ogg_int16_t;
|
||||
typedef _G_uint16_t ogg_uint16_t;
|
||||
# elif defined(__MINGW32__)
|
||||
typedef short ogg_int16_t;
|
||||
typedef unsigned short ogg_uint16_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef long long ogg_int64_t;
|
||||
typedef unsigned long long ogg_uint64_t;
|
||||
# elif defined(__MWERKS__)
|
||||
typedef long long ogg_int64_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef short ogg_int16_t;
|
||||
typedef unsigned short ogg_uint16_t;
|
||||
# else
|
||||
/* MSVC/Borland */
|
||||
typedef __int64 ogg_int64_t;
|
||||
typedef __int32 ogg_int32_t;
|
||||
typedef unsigned __int32 ogg_uint32_t;
|
||||
typedef __int16 ogg_int16_t;
|
||||
typedef unsigned __int16 ogg_uint16_t;
|
||||
# endif
|
||||
|
||||
#elif defined(__MACOS__)
|
||||
|
||||
# include <sys/types.h>
|
||||
typedef SInt16 ogg_int16_t;
|
||||
typedef UInt16 ogg_uint16_t;
|
||||
typedef SInt32 ogg_int32_t;
|
||||
typedef UInt32 ogg_uint32_t;
|
||||
typedef SInt64 ogg_int64_t;
|
||||
|
||||
#elif defined(__MACOSX__) /* MacOS X Framework build */
|
||||
|
||||
# include <sys/types.h>
|
||||
typedef int16_t ogg_int16_t;
|
||||
typedef u_int16_t ogg_uint16_t;
|
||||
typedef int32_t ogg_int32_t;
|
||||
typedef u_int32_t ogg_uint32_t;
|
||||
typedef int64_t ogg_int64_t;
|
||||
|
||||
#elif defined(__BEOS__)
|
||||
|
||||
/* Be */
|
||||
# include <inttypes.h>
|
||||
typedef int16_t ogg_int16_t;
|
||||
typedef u_int16_t ogg_uint16_t;
|
||||
typedef int32_t ogg_int32_t;
|
||||
typedef u_int32_t ogg_uint32_t;
|
||||
typedef int64_t ogg_int64_t;
|
||||
|
||||
#elif defined (__EMX__)
|
||||
|
||||
/* OS/2 GCC */
|
||||
typedef short ogg_int16_t;
|
||||
typedef unsigned short ogg_uint16_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef long long ogg_int64_t;
|
||||
|
||||
#elif defined (DJGPP)
|
||||
|
||||
/* DJGPP */
|
||||
typedef short ogg_int16_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef long long ogg_int64_t;
|
||||
|
||||
#elif defined(R5900)
|
||||
|
||||
/* PS2 EE */
|
||||
typedef long ogg_int64_t;
|
||||
typedef int ogg_int32_t;
|
||||
typedef unsigned ogg_uint32_t;
|
||||
typedef short ogg_int16_t;
|
||||
|
||||
#elif defined(__SYMBIAN32__)
|
||||
|
||||
/* Symbian GCC */
|
||||
typedef signed short ogg_int16_t;
|
||||
typedef unsigned short ogg_uint16_t;
|
||||
typedef signed int ogg_int32_t;
|
||||
typedef unsigned int ogg_uint32_t;
|
||||
typedef long long int ogg_int64_t;
|
||||
|
||||
#else
|
||||
|
||||
# include <sys/types.h>
|
||||
# include <ogg/config_types.h>
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _OS_TYPES_H */
|
|
@ -0,0 +1,7 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
vorbisincludedir = $(includedir)/vorbis
|
||||
|
||||
vorbisinclude_HEADERS = codec.h vorbisfile.h vorbisenc.h
|
||||
|
||||
|
|
@ -0,0 +1,426 @@
|
|||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = include/vorbis
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(vorbisinclude_HEADERS)
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(vorbisincludedir)"
|
||||
vorbisincludeHEADERS_INSTALL = $(INSTALL_HEADER)
|
||||
HEADERS = $(vorbisinclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEBUG = @DEBUG@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
GREP = @GREP@
|
||||
HAVE_PKG_CONFIG = @HAVE_PKG_CONFIG@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
OBJEXT = @OBJEXT@
|
||||
OGG_CFLAGS = @OGG_CFLAGS@
|
||||
OGG_LIBS = @OGG_LIBS@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PDFXMLTEX = @PDFXMLTEX@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PROFILE = @PROFILE@
|
||||
RANLIB = @RANLIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VE_LIB_AGE = @VE_LIB_AGE@
|
||||
VE_LIB_CURRENT = @VE_LIB_CURRENT@
|
||||
VE_LIB_REVISION = @VE_LIB_REVISION@
|
||||
VF_LIB_AGE = @VF_LIB_AGE@
|
||||
VF_LIB_CURRENT = @VF_LIB_CURRENT@
|
||||
VF_LIB_REVISION = @VF_LIB_REVISION@
|
||||
VORBIS_LIBS = @VORBIS_LIBS@
|
||||
V_LIB_AGE = @V_LIB_AGE@
|
||||
V_LIB_CURRENT = @V_LIB_CURRENT@
|
||||
V_LIB_REVISION = @V_LIB_REVISION@
|
||||
XSLTPROC = @XSLTPROC@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
pthread_lib = @pthread_lib@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
vorbisincludedir = $(includedir)/vorbis
|
||||
vorbisinclude_HEADERS = codec.h vorbisfile.h vorbisenc.h
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/vorbis/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu include/vorbis/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-vorbisincludeHEADERS: $(vorbisinclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(vorbisincludedir)" || $(MKDIR_P) "$(DESTDIR)$(vorbisincludedir)"
|
||||
@list='$(vorbisinclude_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(vorbisincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(vorbisincludedir)/$$f'"; \
|
||||
$(vorbisincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(vorbisincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-vorbisincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(vorbisinclude_HEADERS)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(vorbisincludedir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(vorbisincludedir)/$$f"; \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(vorbisincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-vorbisincludeHEADERS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-vorbisincludeHEADERS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool ctags distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip \
|
||||
install-vorbisincludeHEADERS installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am tags uninstall uninstall-am \
|
||||
uninstall-vorbisincludeHEADERS
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
|
@ -0,0 +1,241 @@
|
|||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
|
||||
********************************************************************
|
||||
|
||||
function: libvorbis codec headers
|
||||
last mod: $Id: codec.h 13293 2007-07-24 00:09:47Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
#ifndef _vorbis_codec_h_
|
||||
#define _vorbis_codec_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include <ogg/ogg.h>
|
||||
|
||||
typedef struct vorbis_info{
|
||||
int version;
|
||||
int channels;
|
||||
long rate;
|
||||
|
||||
/* The below bitrate declarations are *hints*.
|
||||
Combinations of the three values carry the following implications:
|
||||
|
||||
all three set to the same value:
|
||||
implies a fixed rate bitstream
|
||||
only nominal set:
|
||||
implies a VBR stream that averages the nominal bitrate. No hard
|
||||
upper/lower limit
|
||||
upper and or lower set:
|
||||
implies a VBR bitstream that obeys the bitrate limits. nominal
|
||||
may also be set to give a nominal rate.
|
||||
none set:
|
||||
the coder does not care to speculate.
|
||||
*/
|
||||
|
||||
long bitrate_upper;
|
||||
long bitrate_nominal;
|
||||
long bitrate_lower;
|
||||
long bitrate_window;
|
||||
|
||||
void *codec_setup;
|
||||
} vorbis_info;
|
||||
|
||||
/* vorbis_dsp_state buffers the current vorbis audio
|
||||
analysis/synthesis state. The DSP state belongs to a specific
|
||||
logical bitstream ****************************************************/
|
||||
typedef struct vorbis_dsp_state{
|
||||
int analysisp;
|
||||
vorbis_info *vi;
|
||||
|
||||
float **pcm;
|
||||
float **pcmret;
|
||||
int pcm_storage;
|
||||
int pcm_current;
|
||||
int pcm_returned;
|
||||
|
||||
int preextrapolate;
|
||||
int eofflag;
|
||||
|
||||
long lW;
|
||||
long W;
|
||||
long nW;
|
||||
long centerW;
|
||||
|
||||
ogg_int64_t granulepos;
|
||||
ogg_int64_t sequence;
|
||||
|
||||
ogg_int64_t glue_bits;
|
||||
ogg_int64_t time_bits;
|
||||
ogg_int64_t floor_bits;
|
||||
ogg_int64_t res_bits;
|
||||
|
||||
void *backend_state;
|
||||
} vorbis_dsp_state;
|
||||
|
||||
typedef struct vorbis_block{
|
||||
/* necessary stream state for linking to the framing abstraction */
|
||||
float **pcm; /* this is a pointer into local storage */
|
||||
oggpack_buffer opb;
|
||||
|
||||
long lW;
|
||||
long W;
|
||||
long nW;
|
||||
int pcmend;
|
||||
int mode;
|
||||
|
||||
int eofflag;
|
||||
ogg_int64_t granulepos;
|
||||
ogg_int64_t sequence;
|
||||
vorbis_dsp_state *vd; /* For read-only access of configuration */
|
||||
|
||||
/* local storage to avoid remallocing; it's up to the mapping to
|
||||
structure it */
|
||||
void *localstore;
|
||||
long localtop;
|
||||
long localalloc;
|
||||
long totaluse;
|
||||
struct alloc_chain *reap;
|
||||
|
||||
/* bitmetrics for the frame */
|
||||
long glue_bits;
|
||||
long time_bits;
|
||||
long floor_bits;
|
||||
long res_bits;
|
||||
|
||||
void *internal;
|
||||
|
||||
} vorbis_block;
|
||||
|
||||
/* vorbis_block is a single block of data to be processed as part of
|
||||
the analysis/synthesis stream; it belongs to a specific logical
|
||||
bitstream, but is independant from other vorbis_blocks belonging to
|
||||
that logical bitstream. *************************************************/
|
||||
|
||||
struct alloc_chain{
|
||||
void *ptr;
|
||||
struct alloc_chain *next;
|
||||
};
|
||||
|
||||
/* vorbis_info contains all the setup information specific to the
|
||||
specific compression/decompression mode in progress (eg,
|
||||
psychoacoustic settings, channel setup, options, codebook
|
||||
etc). vorbis_info and substructures are in backends.h.
|
||||
*********************************************************************/
|
||||
|
||||
/* the comments are not part of vorbis_info so that vorbis_info can be
|
||||
static storage */
|
||||
typedef struct vorbis_comment{
|
||||
/* unlimited user comment fields. libvorbis writes 'libvorbis'
|
||||
whatever vendor is set to in encode */
|
||||
char **user_comments;
|
||||
int *comment_lengths;
|
||||
int comments;
|
||||
char *vendor;
|
||||
|
||||
} vorbis_comment;
|
||||
|
||||
|
||||
/* libvorbis encodes in two abstraction layers; first we perform DSP
|
||||
and produce a packet (see docs/analysis.txt). The packet is then
|
||||
coded into a framed OggSquish bitstream by the second layer (see
|
||||
docs/framing.txt). Decode is the reverse process; we sync/frame
|
||||
the bitstream and extract individual packets, then decode the
|
||||
packet back into PCM audio.
|
||||
|
||||
The extra framing/packetizing is used in streaming formats, such as
|
||||
files. Over the net (such as with UDP), the framing and
|
||||
packetization aren't necessary as they're provided by the transport
|
||||
and the streaming layer is not used */
|
||||
|
||||
/* Vorbis PRIMITIVES: general ***************************************/
|
||||
|
||||
extern void vorbis_info_init(vorbis_info *vi);
|
||||
extern void vorbis_info_clear(vorbis_info *vi);
|
||||
extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
|
||||
extern void vorbis_comment_init(vorbis_comment *vc);
|
||||
extern void vorbis_comment_add(vorbis_comment *vc, char *comment);
|
||||
extern void vorbis_comment_add_tag(vorbis_comment *vc,
|
||||
char *tag, char *contents);
|
||||
extern char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
|
||||
extern int vorbis_comment_query_count(vorbis_comment *vc, char *tag);
|
||||
extern void vorbis_comment_clear(vorbis_comment *vc);
|
||||
|
||||
extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
|
||||
extern int vorbis_block_clear(vorbis_block *vb);
|
||||
extern void vorbis_dsp_clear(vorbis_dsp_state *v);
|
||||
extern double vorbis_granule_time(vorbis_dsp_state *v,
|
||||
ogg_int64_t granulepos);
|
||||
|
||||
/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/
|
||||
|
||||
extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
||||
extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
|
||||
extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
||||
vorbis_comment *vc,
|
||||
ogg_packet *op,
|
||||
ogg_packet *op_comm,
|
||||
ogg_packet *op_code);
|
||||
extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
|
||||
extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
|
||||
extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
|
||||
extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
|
||||
|
||||
extern int vorbis_bitrate_addblock(vorbis_block *vb);
|
||||
extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,
|
||||
ogg_packet *op);
|
||||
|
||||
/* Vorbis PRIMITIVES: synthesis layer *******************************/
|
||||
extern int vorbis_synthesis_idheader(ogg_packet *op);
|
||||
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
|
||||
ogg_packet *op);
|
||||
|
||||
extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
||||
extern int vorbis_synthesis_restart(vorbis_dsp_state *v);
|
||||
extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
|
||||
extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op);
|
||||
extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
|
||||
extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
|
||||
extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm);
|
||||
extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
|
||||
extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
|
||||
|
||||
extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag);
|
||||
extern int vorbis_synthesis_halfrate_p(vorbis_info *v);
|
||||
|
||||
/* Vorbis ERRORS and return codes ***********************************/
|
||||
|
||||
#define OV_FALSE -1
|
||||
#define OV_EOF -2
|
||||
#define OV_HOLE -3
|
||||
|
||||
#define OV_EREAD -128
|
||||
#define OV_EFAULT -129
|
||||
#define OV_EIMPL -130
|
||||
#define OV_EINVAL -131
|
||||
#define OV_ENOTVORBIS -132
|
||||
#define OV_EBADHEADER -133
|
||||
#define OV_EVERSION -134
|
||||
#define OV_ENOTAUDIO -135
|
||||
#define OV_EBADPACKET -136
|
||||
#define OV_EBADLINK -137
|
||||
#define OV_ENOSEEK -138
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: vorbis encode-engine setup
|
||||
last mod: $Id: vorbisenc.h 13293 2007-07-24 00:09:47Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
#ifndef _OV_ENC_H_
|
||||
#define _OV_ENC_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include "codec.h"
|
||||
|
||||
extern int vorbis_encode_init(vorbis_info *vi,
|
||||
long channels,
|
||||
long rate,
|
||||
|
||||
long max_bitrate,
|
||||
long nominal_bitrate,
|
||||
long min_bitrate);
|
||||
|
||||
extern int vorbis_encode_setup_managed(vorbis_info *vi,
|
||||
long channels,
|
||||
long rate,
|
||||
|
||||
long max_bitrate,
|
||||
long nominal_bitrate,
|
||||
long min_bitrate);
|
||||
|
||||
extern int vorbis_encode_setup_vbr(vorbis_info *vi,
|
||||
long channels,
|
||||
long rate,
|
||||
|
||||
float quality /* quality level from 0. (lo) to 1. (hi) */
|
||||
);
|
||||
|
||||
extern int vorbis_encode_init_vbr(vorbis_info *vi,
|
||||
long channels,
|
||||
long rate,
|
||||
|
||||
float base_quality /* quality level from 0. (lo) to 1. (hi) */
|
||||
);
|
||||
|
||||
extern int vorbis_encode_setup_init(vorbis_info *vi);
|
||||
|
||||
extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
|
||||
|
||||
/* deprecated rate management supported only for compatability */
|
||||
#define OV_ECTL_RATEMANAGE_GET 0x10
|
||||
#define OV_ECTL_RATEMANAGE_SET 0x11
|
||||
#define OV_ECTL_RATEMANAGE_AVG 0x12
|
||||
#define OV_ECTL_RATEMANAGE_HARD 0x13
|
||||
|
||||
struct ovectl_ratemanage_arg {
|
||||
int management_active;
|
||||
|
||||
long bitrate_hard_min;
|
||||
long bitrate_hard_max;
|
||||
double bitrate_hard_window;
|
||||
|
||||
long bitrate_av_lo;
|
||||
long bitrate_av_hi;
|
||||
double bitrate_av_window;
|
||||
double bitrate_av_window_center;
|
||||
};
|
||||
|
||||
|
||||
/* new rate setup */
|
||||
#define OV_ECTL_RATEMANAGE2_GET 0x14
|
||||
#define OV_ECTL_RATEMANAGE2_SET 0x15
|
||||
|
||||
struct ovectl_ratemanage2_arg {
|
||||
int management_active;
|
||||
|
||||
long bitrate_limit_min_kbps;
|
||||
long bitrate_limit_max_kbps;
|
||||
long bitrate_limit_reservoir_bits;
|
||||
double bitrate_limit_reservoir_bias;
|
||||
|
||||
long bitrate_average_kbps;
|
||||
double bitrate_average_damping;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#define OV_ECTL_LOWPASS_GET 0x20
|
||||
#define OV_ECTL_LOWPASS_SET 0x21
|
||||
|
||||
#define OV_ECTL_IBLOCK_GET 0x30
|
||||
#define OV_ECTL_IBLOCK_SET 0x31
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -0,0 +1,183 @@
|
|||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: stdio-based convenience library for opening/seeking/decoding
|
||||
last mod: $Id: vorbisfile.h 13293 2007-07-24 00:09:47Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
#ifndef _OV_FILE_H_
|
||||
#define _OV_FILE_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "codec.h"
|
||||
|
||||
/* The function prototypes for the callbacks are basically the same as for
|
||||
* the stdio functions fread, fseek, fclose, ftell.
|
||||
* The one difference is that the FILE * arguments have been replaced with
|
||||
* a void * - this is to be used as a pointer to whatever internal data these
|
||||
* functions might need. In the stdio case, it's just a FILE * cast to a void *
|
||||
*
|
||||
* If you use other functions, check the docs for these functions and return
|
||||
* the right values. For seek_func(), you *MUST* return -1 if the stream is
|
||||
* unseekable
|
||||
*/
|
||||
typedef struct {
|
||||
size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource);
|
||||
int (*seek_func) (void *datasource, ogg_int64_t offset, int whence);
|
||||
int (*close_func) (void *datasource);
|
||||
long (*tell_func) (void *datasource);
|
||||
} ov_callbacks;
|
||||
|
||||
/* a few sets of convenient callbacks, especially for use under
|
||||
* Windows where ov_open_callbacks() should always be used instead of
|
||||
* ov_open() to avoid problems with incompatable crt.o version linking
|
||||
* issues. */
|
||||
|
||||
static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){
|
||||
if(f==NULL)return(-1);
|
||||
return fseek(f,off,whence);
|
||||
}
|
||||
|
||||
static ov_callbacks OV_CALLBACKS_DEFAULT = {
|
||||
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
||||
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
|
||||
(int (*)(void *)) fclose,
|
||||
(long (*)(void *)) ftell
|
||||
};
|
||||
|
||||
static ov_callbacks OV_CALLBACKS_NOCLOSE = {
|
||||
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
||||
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
|
||||
(int (*)(void *)) NULL,
|
||||
(long (*)(void *)) ftell
|
||||
};
|
||||
|
||||
static ov_callbacks OV_CALLBACKS_STREAMONLY = {
|
||||
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
||||
(int (*)(void *, ogg_int64_t, int)) NULL,
|
||||
(int (*)(void *)) fclose,
|
||||
(long (*)(void *)) NULL
|
||||
};
|
||||
|
||||
static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = {
|
||||
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
||||
(int (*)(void *, ogg_int64_t, int)) NULL,
|
||||
(int (*)(void *)) NULL,
|
||||
(long (*)(void *)) NULL
|
||||
};
|
||||
|
||||
#define NOTOPEN 0
|
||||
#define PARTOPEN 1
|
||||
#define OPENED 2
|
||||
#define STREAMSET 3
|
||||
#define INITSET 4
|
||||
|
||||
typedef struct OggVorbis_File {
|
||||
void *datasource; /* Pointer to a FILE *, etc. */
|
||||
int seekable;
|
||||
ogg_int64_t offset;
|
||||
ogg_int64_t end;
|
||||
ogg_sync_state oy;
|
||||
|
||||
/* If the FILE handle isn't seekable (eg, a pipe), only the current
|
||||
stream appears */
|
||||
int links;
|
||||
ogg_int64_t *offsets;
|
||||
ogg_int64_t *dataoffsets;
|
||||
long *serialnos;
|
||||
ogg_int64_t *pcmlengths; /* overloaded to maintain binary
|
||||
compatability; x2 size, stores both
|
||||
beginning and end values */
|
||||
vorbis_info *vi;
|
||||
vorbis_comment *vc;
|
||||
|
||||
/* Decoding working state local storage */
|
||||
ogg_int64_t pcm_offset;
|
||||
int ready_state;
|
||||
long current_serialno;
|
||||
int current_link;
|
||||
|
||||
double bittrack;
|
||||
double samptrack;
|
||||
|
||||
ogg_stream_state os; /* take physical pages, weld into a logical
|
||||
stream of packets */
|
||||
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
|
||||
vorbis_block vb; /* local working space for packet->PCM decode */
|
||||
|
||||
ov_callbacks callbacks;
|
||||
|
||||
} OggVorbis_File;
|
||||
|
||||
|
||||
extern int ov_clear(OggVorbis_File *vf);
|
||||
extern int ov_fopen(char *path,OggVorbis_File *vf);
|
||||
extern int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
|
||||
extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf,
|
||||
char *initial, long ibytes, ov_callbacks callbacks);
|
||||
|
||||
extern int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
|
||||
extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf,
|
||||
char *initial, long ibytes, ov_callbacks callbacks);
|
||||
extern int ov_test_open(OggVorbis_File *vf);
|
||||
|
||||
extern long ov_bitrate(OggVorbis_File *vf,int i);
|
||||
extern long ov_bitrate_instant(OggVorbis_File *vf);
|
||||
extern long ov_streams(OggVorbis_File *vf);
|
||||
extern long ov_seekable(OggVorbis_File *vf);
|
||||
extern long ov_serialnumber(OggVorbis_File *vf,int i);
|
||||
|
||||
extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
|
||||
extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
|
||||
extern double ov_time_total(OggVorbis_File *vf,int i);
|
||||
|
||||
extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_time_seek(OggVorbis_File *vf,double pos);
|
||||
extern int ov_time_seek_page(OggVorbis_File *vf,double pos);
|
||||
|
||||
extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
extern int ov_time_seek_lap(OggVorbis_File *vf,double pos);
|
||||
extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos);
|
||||
|
||||
extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
|
||||
extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
|
||||
extern double ov_time_tell(OggVorbis_File *vf);
|
||||
|
||||
extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
|
||||
extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
|
||||
|
||||
extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples,
|
||||
int *bitstream);
|
||||
extern long ov_read(OggVorbis_File *vf,char *buffer,int length,
|
||||
int bigendianp,int word,int sgned,int *bitstream);
|
||||
extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2);
|
||||
|
||||
extern int ov_halfrate(OggVorbis_File *vf,int flag);
|
||||
extern int ov_halfrate_p(OggVorbis_File *vf);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,46 @@
|
|||
EXPORTS
|
||||
ogg_packet_clear
|
||||
ogg_page_bos
|
||||
ogg_page_continued
|
||||
ogg_page_eos
|
||||
ogg_page_granulepos
|
||||
ogg_page_packets
|
||||
ogg_page_pageno
|
||||
ogg_page_serialno
|
||||
ogg_page_version
|
||||
ogg_stream_clear
|
||||
ogg_stream_destroy
|
||||
ogg_stream_eos
|
||||
ogg_stream_flush
|
||||
ogg_stream_init
|
||||
ogg_stream_packetin
|
||||
ogg_stream_packetout
|
||||
ogg_stream_packetpeek
|
||||
ogg_stream_pagein
|
||||
ogg_stream_pageout
|
||||
ogg_stream_reset
|
||||
ogg_stream_reset_serialno
|
||||
ogg_sync_buffer
|
||||
ogg_sync_clear
|
||||
ogg_sync_destroy
|
||||
ogg_sync_init
|
||||
ogg_sync_pageout
|
||||
ogg_sync_pageseek
|
||||
ogg_sync_reset
|
||||
ogg_sync_wrote
|
||||
oggpack_adv
|
||||
oggpack_adv1
|
||||
oggpack_bits
|
||||
oggpack_bytes
|
||||
oggpack_get_buffer
|
||||
oggpack_look
|
||||
oggpack_look1
|
||||
oggpack_read
|
||||
oggpack_read1
|
||||
oggpack_readinit
|
||||
oggpack_reset
|
||||
oggpack_write
|
||||
oggpack_writealign
|
||||
oggpack_writeclear
|
||||
oggpack_writeinit
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
EXPORTS
|
||||
EAXGet
|
||||
EAXSet
|
||||
alBufferData
|
||||
alDeleteBuffers
|
||||
alDeleteSources
|
||||
alDisable
|
||||
alDistanceModel
|
||||
alDopplerFactor
|
||||
alDopplerVelocity
|
||||
alEAXAC3GetFunctionTable
|
||||
alEnable
|
||||
alGenBuffers
|
||||
alGenSources
|
||||
alGetBoolean
|
||||
alGetBooleanv
|
||||
alGetBufferf
|
||||
alGetBufferi
|
||||
alGetDouble
|
||||
alGetDoublev
|
||||
alGetEnumValue
|
||||
alGetError
|
||||
alGetFloat
|
||||
alGetFloatv
|
||||
alGetInteger
|
||||
alGetIntegerv
|
||||
alGetListener3f
|
||||
alGetListenerf
|
||||
alGetListenerfv
|
||||
alGetListeneri
|
||||
alGetProcAddress
|
||||
alGetSource3f
|
||||
alGetSourcef
|
||||
alGetSourcefv
|
||||
alGetSourcei
|
||||
alGetString
|
||||
alIsBuffer
|
||||
alIsEnabled
|
||||
alIsExtensionPresent
|
||||
alIsSource
|
||||
alListener3f
|
||||
alListenerf
|
||||
alListenerfv
|
||||
alListeneri
|
||||
alSetError
|
||||
alSource3f
|
||||
alSourcePause
|
||||
alSourcePausev
|
||||
alSourcePlay
|
||||
alSourcePlayv
|
||||
alSourceQueueBuffers
|
||||
alSourceRewind
|
||||
alSourceRewindv
|
||||
alSourceStop
|
||||
alSourceStopv
|
||||
alSourceUnqueueBuffers
|
||||
alSourcef
|
||||
alSourcefv
|
||||
alSourcei
|
||||
alcCloseDevice
|
||||
alcCreateContext
|
||||
alcDestroyContext
|
||||
alcExitContext
|
||||
alcGetContextsDevice
|
||||
alcGetCurrentContext
|
||||
alcGetEnumValue
|
||||
alcGetError
|
||||
alcGetIntegerv
|
||||
alcGetProcAddress
|
||||
alcGetString
|
||||
alcInitContext
|
||||
alcIsExtensionPresent
|
||||
alcMakeContextCurrent
|
||||
alcOpenDevice
|
||||
alcProcessContext
|
||||
alcSetError
|
||||
alcSuspendContext
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
EXPORTS
|
||||
_floor_P
|
||||
_mapping_P
|
||||
_residue_P
|
||||
vorbis_analysis
|
||||
vorbis_analysis_blockout
|
||||
vorbis_analysis_buffer
|
||||
vorbis_analysis_headerout
|
||||
vorbis_analysis_init
|
||||
vorbis_analysis_wrote
|
||||
vorbis_bitrate_addblock
|
||||
vorbis_bitrate_flushpacket
|
||||
vorbis_block_clear
|
||||
vorbis_block_init
|
||||
vorbis_comment_add
|
||||
vorbis_comment_add_tag
|
||||
vorbis_comment_clear
|
||||
vorbis_comment_init
|
||||
vorbis_comment_query
|
||||
vorbis_comment_query_count
|
||||
vorbis_commentheader_out
|
||||
vorbis_dsp_clear
|
||||
vorbis_encode_setup_init
|
||||
vorbis_encode_setup_managed
|
||||
vorbis_encode_setup_vbr
|
||||
vorbis_info_blocksize
|
||||
vorbis_info_clear
|
||||
vorbis_info_init
|
||||
vorbis_packet_blocksize
|
||||
vorbis_synthesis
|
||||
vorbis_synthesis_blockin
|
||||
vorbis_synthesis_headerin
|
||||
vorbis_synthesis_init
|
||||
vorbis_synthesis_pcmout
|
||||
vorbis_synthesis_read
|
||||
vorbis_synthesis_trackonly
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
EXPORTS
|
||||
vorbis_encode_ctl
|
||||
vorbis_encode_init
|
||||
vorbis_encode_init_vbr
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
EXPORTS
|
||||
ov_bitrate
|
||||
ov_bitrate_instant
|
||||
ov_clear
|
||||
ov_comment
|
||||
ov_info
|
||||
ov_open
|
||||
ov_open_callbacks
|
||||
ov_pcm_seek
|
||||
ov_pcm_seek_page
|
||||
ov_pcm_tell
|
||||
ov_pcm_total
|
||||
ov_raw_seek
|
||||
ov_raw_tell
|
||||
ov_raw_total
|
||||
ov_read
|
||||
ov_seekable
|
||||
ov_serialnumber
|
||||
ov_streams
|
||||
ov_test
|
||||
ov_test_callbacks
|
||||
ov_test_open
|
||||
ov_time_seek
|
||||
ov_time_seek_page
|
||||
ov_time_tell
|
||||
ov_time_total
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,59 @@
|
|||
#ifndef IAUDIO_H
|
||||
#define IAUDIO_H
|
||||
|
||||
#include "IAudioDecoder.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
class IAudio
|
||||
{
|
||||
public:
|
||||
IAudio() {}
|
||||
virtual ~IAudio() {}
|
||||
//! play with defualts / the last set values
|
||||
virtual void play() = 0;
|
||||
//!plays the audio file 2d no distance.
|
||||
virtual void play2d(bool loop = false) = 0;
|
||||
//!plays the audio file and sets it to 3d
|
||||
virtual void play3d(bool loop = false, float x = 0.0, float y = 0.0, float z = 0.0, float soundstr = 1.0) = 0;
|
||||
//!allows us to set the position or reset the position
|
||||
virtual void setPosition(float posx,float posy,float posz) = 0;
|
||||
//!allows you to set the audio objects velocity
|
||||
virtual void setVelocity(float velx,float vely,float velz) = 0;
|
||||
//!allows us to set the direction the audio should play in / move
|
||||
virtual void setDirection(float dirx,float diry,float dirz) = 0;
|
||||
//! Sets the audios pitch level
|
||||
virtual void setPitch(float pitch) = 0;
|
||||
//!allows us to set and reset the sound strength
|
||||
virtual void setStrength(float soundstrength) = 0;
|
||||
//! Set the volume
|
||||
virtual void setVolume(float volume) = 0;
|
||||
//!Set the doppler strength
|
||||
virtual void setDopplerStrength(float doop) = 0;
|
||||
//!Set the doppler velocity
|
||||
virtual void setDopplerVelocity(float doopx,float doopy,float doopz) = 0;
|
||||
//!Seek through the audio stream
|
||||
virtual void seek(float secs) = 0;
|
||||
|
||||
//!release the file handle
|
||||
virtual void release() = 0;
|
||||
//!pauses the audio file
|
||||
virtual void pause() = 0;
|
||||
//!controls altering of the looping to make it loop or not to.
|
||||
virtual void loop(bool loop) = 0;
|
||||
//!stops the audio file from playing
|
||||
virtual void stop() = 0;
|
||||
|
||||
//!play file
|
||||
virtual bool playback() = 0;
|
||||
//!check if source is playing
|
||||
virtual bool playing() = 0;
|
||||
//!update the stream
|
||||
virtual bool update() = 0;
|
||||
//!checks to make sure everything is ready to go
|
||||
virtual bool isvalid() = 0;
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
}
|
||||
#endif //! IAUDIO_H
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef IAUDIODECODER_H
|
||||
#define IAUDIODECODER_H
|
||||
|
||||
#include "IDataSource.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
enum AudioFormats
|
||||
{
|
||||
EAF_8BIT_MONO = 0x1100,
|
||||
EAF_8BIT_STEREO = 0x1102,
|
||||
EAF_16BIT_MONO = 0x1101,
|
||||
EAF_16BIT_STEREO = 0x1103,
|
||||
EAF_COUNT
|
||||
};
|
||||
|
||||
class IAudioDecoder
|
||||
{
|
||||
public:
|
||||
IAudioDecoder(IDataSource* stream) : Stream(stream) {}
|
||||
virtual ~IAudioDecoder() { delete Stream; }
|
||||
|
||||
//!Returns the format of the audio data
|
||||
virtual AudioFormats getFormat() = 0;
|
||||
|
||||
//!Returns the frequency of the audio data
|
||||
virtual int getFrequency() = 0;
|
||||
|
||||
//!Returns whether seeking is supported
|
||||
virtual bool isSeekingSupported() = 0;
|
||||
|
||||
//!Reads a section of data out of the audio stream
|
||||
virtual int readAudioData(void* output, int amount) = 0;
|
||||
|
||||
//!Sets the position to read data out of
|
||||
virtual bool setPosition(int position, bool relative) = 0;
|
||||
|
||||
//!If seeking is supported, will seek the stream to seconds
|
||||
virtual bool seek(int seconds, bool relative) = 0;
|
||||
protected:
|
||||
IDataSource* Stream;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! IAUDIODECODER_H
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef IAUDIODECODERFACTORY_H
|
||||
#define IAUDIODECODERFACTORY_H
|
||||
|
||||
#include "IAudioDecoder.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class IAudioDecoderFactory
|
||||
{
|
||||
public:
|
||||
IAudioDecoderFactory() {}
|
||||
virtual ~IAudioDecoderFactory() {}
|
||||
|
||||
virtual IAudioDecoder* CreateAudioDecoder(IDataSource* stream) = 0;
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! IAUDIODECODERFACTORY_H
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
#ifndef IAUDIOMANAGER_H
|
||||
#define IAUDIOMANAGER_H
|
||||
#include <string>
|
||||
|
||||
#ifdef COMPILE_FOR_WINDOWS
|
||||
#ifndef CAUDIO_STATIC_LIB
|
||||
#ifdef CAUDIO_EXPORTS
|
||||
#define CAUDIO_API __declspec(dllexport)
|
||||
#else
|
||||
#define CAUDIO_API//! __declspec(dllimport)
|
||||
#endif //! CAUDIO_API_EXPORT
|
||||
#else
|
||||
#define CAUDIO_API
|
||||
#endif _CAUDIO_API_STATIC_LIB_
|
||||
#else
|
||||
#define CAUDIO_API
|
||||
#endif
|
||||
namespace cAudio
|
||||
{
|
||||
class IAudio;
|
||||
class IAudioDecoderFactory;
|
||||
|
||||
class IAudioManager
|
||||
{
|
||||
public:
|
||||
//!Inits the audio manager calling the alut/etc start ups
|
||||
virtual void init(int argc,char* argv[]) = 0;
|
||||
//!Shuts everything down
|
||||
virtual void shutDown() = 0;
|
||||
//!Creates the cAudio object
|
||||
virtual IAudio* createFromFile(const std::string& identifier,const std::string& file,bool stream = false) = 0;
|
||||
//!Loads audio from memory or virtual file system
|
||||
virtual IAudio* createFromMemory(const std::string& identifier,const char* data, size_t length, std::string ext) = 0;
|
||||
//!Register Audio Codec
|
||||
virtual void registerAudioDecoder(IAudioDecoderFactory* factory, std::string extension) = 0;
|
||||
//!Allows you to set the listener position
|
||||
virtual void setListenerPos(float x,float y,float z) = 0;
|
||||
//!set the listeners orientation
|
||||
virtual void setListenerOrientation(float ux,float uy,float uz) = 0;
|
||||
//!Updates the cAudio playback
|
||||
virtual void update() = 0;
|
||||
//!Gets you the cAudio object you want
|
||||
virtual IAudio *getSound(std::string identifier) = 0;
|
||||
//!Releases "ALL" cAudio objects
|
||||
virtual void release() = 0;
|
||||
virtual ~IAudioManager() {}
|
||||
protected:
|
||||
private:
|
||||
};
|
||||
|
||||
CAUDIO_API IAudioManager* getAudioManager(void);
|
||||
}
|
||||
#endif //! IAUDIOMANAGER_H
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef IDATASOURCE_H
|
||||
#define IDATASOURCE_H
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
||||
class IDataSource
|
||||
{
|
||||
public:
|
||||
IDataSource() { }
|
||||
virtual ~IDataSource() { }
|
||||
|
||||
//!Returns whether the source is valid (in case of an error, like the file couldn't be found)
|
||||
virtual bool isValid() = 0;
|
||||
|
||||
//!Get the current location in the data stream
|
||||
virtual int getCurrentPos() = 0;
|
||||
|
||||
//!Get the total size of the data stream
|
||||
virtual int getSize() = 0;
|
||||
|
||||
//!Read out a section of the data stream
|
||||
virtual int read(void* output, int size) = 0;
|
||||
|
||||
//!Seek to a position in the data stream
|
||||
virtual bool seek(int amount, bool relative) = 0;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif //! IDATASOURCE_H
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
#ifndef ILISTENER_H
|
||||
#define ILISTENER_H
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
class IListener
|
||||
{
|
||||
public:
|
||||
virtual ~IListener() {}
|
||||
|
||||
//!Sets the listeners position
|
||||
virtual void setPosition(ALfloat x,ALfloat y, ALfloat z) = 0;
|
||||
//!Sets the listeners orientation
|
||||
virtual void setOrientation(ALfloat x,ALfloat y,ALfloat z,ALfloat upx,ALfloat upy,ALfloat upz) = 0;
|
||||
protected:
|
||||
IListener() {}
|
||||
private:
|
||||
};
|
||||
}
|
||||
#endif //! ILISTENER_H
|
Loading…
Reference in New Issue