irrklang Namespace Reference

Everything in the irrKlang Sound Engine can be found in this namespace. More...

Classes

class  IAudioRecorder
 Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder() function. More...
class  ICapturedAudioDataReceiver
 Interface to be implemented by the user if access to the recorded audio data is needed. More...
class  IAudioStream
 Reads and decodes audio data into an usable audio stream for the ISoundEngine. More...
class  IAudioStreamLoader
 Class which is able to create an audio file stream from a file. More...
class  IFileFactory
 Interface to overwrite file access in irrKlang. More...
class  IFileReader
 Interface providing read acess to a file. More...
class  IRefCounted
 Base class of most objects of the irrKlang. More...
class  ISound
 Represents a sound which is currently played. More...
class  ISoundDeviceList
 A list of sound devices for a sound driver. Use irrklang::createSoundDeviceList() to create this list. More...
class  ISoundEffectControl
 Interface to control the active sound effects (echo, reverb,...) of an ISound object, a playing sound. More...
class  ISoundEngine
 Interface to the sound engine, for playing 3d and 2d sound and music. More...
struct  SInternalAudioInterface
 structure for returning pointers to the internal audio interface. More...
class  ISoundMixedOutputReceiver
 Interface to be implemented by the user, which recieves the mixed output when it it played by the sound engine. More...
class  ISoundSource
 A sound source describes an input file (.ogg, .mp3, .wav or similar) and its default settings. More...
class  ISoundStopEventReceiver
 Interface to be implemented by the user, which recieves sound stop events. More...
class  IVirtualRefCounted
 Reference counting base class for objects in the Irrlicht Engine similar to IRefCounted. More...
struct  SAudioStreamFormat
 structure describing an audio stream format with helper functions More...
class  vec3d
 a 3d vector template class for representing vectors and points in 3d More...

Typedefs

typedef unsigned char ik_u8
 8 bit unsigned variable.
typedef signed char ik_s8
 8 bit signed variable.
typedef char ik_c8
 8 bit character variable.
typedef unsigned short ik_u16
 16 bit unsigned variable.
typedef signed short ik_s16
 16 bit signed variable.
typedef unsigned int ik_u32
 32 bit unsigned variable.
typedef signed int ik_s32
 32 bit signed variable.
typedef float ik_f32
 32 bit floating point variable.
typedef double ik_f64
 64 bit floating point variable.
typedef vec3d< ik_f32vec3df
 Typedef for a ik_f32 3d vector, a vector using floats for X, Y and Z.
typedef vec3d< ik_s32vec3di
 Typedef for an integer 3d vector, a vector using ints for X, Y and Z.

Enumerations

enum  E_SOUND_ENGINE_OPTIONS {
  ESEO_MULTI_THREADED = 0x01, ESEO_MUTE_IF_NOT_FOCUSED = 0x02, ESEO_LOAD_PLUGINS = 0x04, ESEO_USE_3D_BUFFERS = 0x08,
  ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER = 0x10, ESEO_PRINT_DEBUG_INFO_TO_STDOUT = 0x20, ESEO_LINEAR_ROLLOFF = 0x40, ESEO_DEFAULT_OPTIONS = ESEO_MULTI_THREADED | ESEO_LOAD_PLUGINS | ESEO_USE_3D_BUFFERS | ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER | ESEO_PRINT_DEBUG_INFO_TO_STDOUT,
  ESEO_FORCE_32_BIT = 0x7fffffff
}
 

An enumeration for all options for starting up the sound engine.

More...
enum  E_SOUND_OUTPUT_DRIVER {
  ESOD_AUTO_DETECT = 0, ESOD_DIRECT_SOUND_8, ESOD_DIRECT_SOUND, ESOD_WIN_MM,
  ESOD_ALSA, ESOD_CORE_AUDIO, ESOD_NULL, ESOD_COUNT,
  ESOD_FORCE_32_BIT = 0x7fffffff
}
 

An enumeration for all types of supported sound drivers.

More...
enum  E_STREAM_MODE { ESM_AUTO_DETECT = 0, ESM_STREAMING, ESM_NO_STREAMING, ESM_FORCE_32_BIT = 0x7fffffff }
 

An enumeration for all types of supported stream modes.

More...
enum  E_STOP_EVENT_CAUSE { ESEC_SOUND_FINISHED_PLAYING = 0, ESEC_SOUND_STOPPED_BY_USER, ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL, ESEC_FORCE_32_BIT = 0x7fffffff }
 

An enumeration listing all reasons for a fired sound stop event.

More...
enum  ESampleFormat { ESF_U8, ESF_S16 }
 

audio sample data format enumeration for supported formats

More...

Functions

bool equalsfloat (const ik_f32 a, const ik_f32 b, const ik_f32 tolerance=IK_ROUNDING_ERROR_32)
template<class S , class T >
vec3d< T > operator* (const S scalar, const vec3d< T > &vector)
IRRKLANG_API ISoundEngine
*IRRKLANGCALLCONV 
createIrrKlangDevice (E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, int options=ESEO_DEFAULT_OPTIONS, const char *deviceID=0, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)
 Creates an irrKlang device. The irrKlang device is the root object for using the sound engine.
IRRKLANG_API ISoundDeviceList
*IRRKLANGCALLCONV 
createSoundDeviceList (E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)
 Creates a list of available sound devices for the driver type.
IRRKLANG_API IAudioRecorder
*IRRKLANGCALLCONV 
createIrrKlangAudioRecorder (ISoundEngine *irrKlangDeviceForPlayback, E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *deviceID=0, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)
 Creates an irrKlang audio recording device. The IAudioRecorder is the root object for recording audio.
IRRKLANG_API ISoundDeviceList
*IRRKLANGCALLCONV 
createAudioRecorderDeviceList (E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)
 Creates a list of available recording devices for the driver type.
IRRKLANG_API bool IRRKLANGCALLCONV makeUTF8fromUTF16string (const wchar_t *pInputString, char *pOutputBuffer, int outputBufferSize)
 Converts a wchar_t string to an utf8 string, useful when using Windows in unicode mode.

Variables

const ik_f32 IK_ROUNDING_ERROR_32 = 0.000001f
const ik_f64 IK_PI64 = 3.1415926535897932384626433832795028841971693993751
const ik_f32 IK_PI32 = 3.14159265359f
const ik_f32 IK_RADTODEG = 180.0f / IK_PI32
const ik_f32 IK_DEGTORAD = IK_PI32 / 180.0f
const ik_f64 IK_RADTODEG64 = 180.0 / IK_PI64
const ik_f64 IK_DEGTORAD64 = IK_PI64 / 180.0

Detailed Description

Everything in the irrKlang Sound Engine can be found in this namespace.


Typedef Documentation

typedef char irrklang::ik_c8

8 bit character variable.

This is a typedef for char, it ensures portability of the engine.

typedef float irrklang::ik_f32

32 bit floating point variable.

This is a typedef for float, it ensures portability of the engine.

typedef double irrklang::ik_f64

64 bit floating point variable.

This is a typedef for double, it ensures portability of the engine.

typedef signed short irrklang::ik_s16

16 bit signed variable.

This is a typedef for signed short, it ensures portability of the engine.

typedef signed int irrklang::ik_s32

32 bit signed variable.

This is a typedef for signed int, it ensures portability of the engine.

typedef signed char irrklang::ik_s8

8 bit signed variable.

This is a typedef for signed char, it ensures portability of the engine.

typedef unsigned short irrklang::ik_u16

16 bit unsigned variable.

This is a typedef for unsigned short, it ensures portability of the engine.

typedef unsigned int irrklang::ik_u32

32 bit unsigned variable.

This is a typedef for unsigned int, it ensures portability of the engine.

typedef unsigned char irrklang::ik_u8

8 bit unsigned variable.

This is a typedef for unsigned char, it ensures portability of the engine.

Typedef for a ik_f32 3d vector, a vector using floats for X, Y and Z.

Typedef for an integer 3d vector, a vector using ints for X, Y and Z.


Enumeration Type Documentation

An enumeration for all options for starting up the sound engine.

When using createIrrKlangDevice, use a combination of this these as 'options' parameter to start up the engine. By default, irrKlang uses ESEO_DEFAULT_OPTIONS, which is set to the combination ESEO_MULTI_THREADED | ESEO_LOAD_PLUGINS | ESEO_USE_3D_BUFFERS | ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER | ESEO_PRINT_DEBUG_INFO_TO_STDOUT.

Enumerator:
ESEO_MULTI_THREADED 

If specified (default), it will make irrKlang run in a separate thread.

Using this flag, irrKlang will update all streams, sounds, 3d positions and whatever automaticly. You also don't need to call ISoundEngine::update() if irrKlang is running multithreaded. However, if you want to run irrKlang in the same thread as your application (for easier debugging for example), don't set this. But you need to call ISoundEngine::update() as often as you can (at least about 2-3 times per second) to make irrKlang update everything correctly then.

ESEO_MUTE_IF_NOT_FOCUSED 

If the window of the application doesn't have the focus, irrKlang will be silent if this has been set.

This will only work when irrKlang is using the DirectSound output driver.

ESEO_LOAD_PLUGINS 

Automaticly loads external plugins when starting up.

Plugins usually are .dll, .so or .dylib files named for example ikpMP3.dll (= short for irrKlangPluginMP3) which are executed after the startup of the sound engine and modify it for example to make it possible to play back mp3 files. Plugins are being loaded from the current working directory as well as from the position where the .exe using the irrKlang library resides. It is also possible to load the plugins after the engine has started up using ISoundEngine::loadPlugins().

ESEO_USE_3D_BUFFERS 

Uses 3D sound buffers instead of emulating them when playing 3d sounds (default).

If this flag is not specified, all buffers will by created in 2D only and 3D positioning will be emulated in software, making the engine run faster if hardware 3d audio is slow on the system.

ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER 

Prints debug messages to the debugger window.

irrKlang will print debug info and status messages to any windows debugger supporting OutputDebugString() (like VisualStudio). This is useful if your application does not capture any console output (see ESEO_PRINT_DEBUG_INFO_TO_STDOUT).

ESEO_PRINT_DEBUG_INFO_TO_STDOUT 

Prints debug messages to stdout (the ConsoleWindow).

irrKlang will print debug info and status messages stdout, the console window in Windows.

ESEO_LINEAR_ROLLOFF 

Uses linear rolloff for 3D sound.

If specified, instead of the default logarithmic one, irrKlang will use a linear rolloff model which influences the attenuation of the sounds over distance. The volume is interpolated linearly between the MinDistance and MaxDistance, making it possible to adjust sounds more easily although this is not physically correct. Note that this option may not work when used together with the ESEO_USE_3D_BUFFERS option when using Direct3D for example, irrKlang will then turn off ESEO_USE_3D_BUFFERS automaticly to be able to use this option and write out a warning.

ESEO_DEFAULT_OPTIONS 

Default parameters when starting up the engine.

ESEO_FORCE_32_BIT 

Never used, it only forces the compiler to compile these enumeration values to 32 bit.

Don't use this.

An enumeration for all types of supported sound drivers.

Values of this enumeration can be used as parameter when calling createIrrKlangDevice().

Enumerator:
ESOD_AUTO_DETECT 

Autodetects the best sound driver for the system.

ESOD_DIRECT_SOUND_8 

DirectSound8 sound output driver, windows only.

In contrast to ESOD_DIRECT_SOUND, this supports sophisticated sound effects but may not be available on old windows versions. It behaves very similar to ESOD_DIRECT_SOUND but also supports DX8 sound effects.

ESOD_DIRECT_SOUND 

DirectSound sound output driver, windows only.

This uses DirectSound 3 or above, if available. If DX8 sound effects are needed, use ESOD_DIRECT_SOUND_8 instead. The ESOD_DIRECT_SOUND driver may be available on more and older windows versions than ESOD_DIRECT_SOUND_8.

ESOD_WIN_MM 

WinMM sound output driver, windows only.

Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver.

ESOD_ALSA 

ALSA sound output driver, linux only.

When using ESOD_ALSA in createIrrKlangDevice(), it is possible to set the third parameter, 'deviceID' to the name of specific ALSA pcm device, to the irrKlang force to use this one. Set it to 'default', or 'plug:hw' or whatever you need it to be. Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver.

ESOD_CORE_AUDIO 

Core Audio sound output driver, mac os only.

Supports the ISoundMixedOutputReceiver interface using setMixedDataOutputReceiver.

ESOD_NULL 

Null driver, creating no sound output.

ESOD_COUNT 

Amount of built-in sound output drivers.

ESOD_FORCE_32_BIT 

This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit.

An enumeration listing all reasons for a fired sound stop event.

Enumerator:
ESEC_SOUND_FINISHED_PLAYING 

The sound stop event was fired because the sound finished playing.

ESEC_SOUND_STOPPED_BY_USER 

The sound stop event was fired because the sound was stopped by the user, calling ISound::stop().

ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL 

The sound stop event was fired because the source of the sound was removed, for example because irrKlang was shut down or the user called ISoundEngine::removeSoundSource().

ESEC_FORCE_32_BIT 

This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit.

An enumeration for all types of supported stream modes.

Enumerator:
ESM_AUTO_DETECT 

Autodetects the best stream mode for a specified audio data.

ESM_STREAMING 

Streams the audio data when needed.

ESM_NO_STREAMING 

Loads the whole audio data into the memory.

ESM_FORCE_32_BIT 

This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit.

audio sample data format enumeration for supported formats

Enumerator:
ESF_U8 

one unsigned byte (0;255)

ESF_S16 

16 bit, signed (-32k;32k)


Function Documentation

IRRKLANG_API ISoundDeviceList* IRRKLANGCALLCONV irrklang::createAudioRecorderDeviceList ( E_SOUND_OUTPUT_DRIVER  driver = ESOD_AUTO_DETECT,
const char *  sdk_version_do_not_use = IRR_KLANG_VERSION 
)

Creates a list of available recording devices for the driver type.

The device IDs in this list can be used as parameter to createIrrKlangAudioRecorder() to make irrKlang use a special recording device.

Parameters:
driver The sound output driver of which the list is generated. Set it irrklang::ESOD_AUTO_DETECT to let this function use the same device as createIrrKlangDevice() would choose.
sdk_version_do_not_use Don't use or change this parameter. Always set it to IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks.
Returns:
Returns a pointer to the list of enumerated recording devices for the selected sound driver. The device IDs in this list can be used as parameter to createIrrKlangAudioRecorder() to make irrKlang use a special sound device. After you don't need the list anymore, call ISoundDeviceList::drop() in order to free its memory.
IRRKLANG_API IAudioRecorder* IRRKLANGCALLCONV irrklang::createIrrKlangAudioRecorder ( ISoundEngine *  irrKlangDeviceForPlayback,
E_SOUND_OUTPUT_DRIVER  driver = ESOD_AUTO_DETECT,
const char *  deviceID = 0,
const char *  sdk_version_do_not_use = IRR_KLANG_VERSION 
)

Creates an irrKlang audio recording device. The IAudioRecorder is the root object for recording audio.

If you want to play back recorded audio as well, create the ISoundEngine first using createIrrKlangDevice() and then the IAudioRecorder using createIrrKlangAudioRecorder(), where you set the ISoundEngine as first parameter. See Recording Audio for an example on how to use this. Note: audio recording is a very new feature a still beta in irrKlang. It currently only works in Windows and with DirectSound (subject to change).

Parameters:
irrKlangDeviceForPlayback A pointer to the already existing sound device used for playback of audio. Sound sources recorded with the IAudioRecorder will be added into that device so that they can be played back there.
driver The sound output driver to be used for recording audio. Use irrklang::ESOD_AUTO_DETECT to let irrKlang decide which driver will be best.
deviceID Some additional optional deviceID for the audio driver. If not needed, simple set this to 0. Use createAudioRecorderDeviceList() to get a list of all deviceIDs.
sdk_version_do_not_use Don't use or change this parameter. Always set it to IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks.
Returns:
Returns pointer to the created irrKlang device or null if the device could not be created. If you don't need the device, use ISoundEngine::drop() to delete it. See IRefCounted::drop() for details.
IRRKLANG_API ISoundEngine* IRRKLANGCALLCONV irrklang::createIrrKlangDevice ( E_SOUND_OUTPUT_DRIVER  driver = ESOD_AUTO_DETECT,
int  options = ESEO_DEFAULT_OPTIONS,
const char *  deviceID = 0,
const char *  sdk_version_do_not_use = IRR_KLANG_VERSION 
)

Creates an irrKlang device. The irrKlang device is the root object for using the sound engine.

Parameters:
driver The sound output driver to be used for sound output. Use irrklang::ESOD_AUTO_DETECT to let irrKlang decide which driver will be best.
options A combination of irrklang::E_SOUND_ENGINE_OPTIONS literals. Default value is irrklang::ESEO_DEFAULT_OPTIONS.
deviceID Some additional optional deviceID for the audio driver. If not needed, simple set this to 0. This can be used for example to set a specific ALSA output pcm device for output ("default" or "hw", for example). For most driver types, available deviceIDs can be enumerated using createSoundDeviceList(). See Enumerating sound devices for an example or ISoundDeviceList or details.
sdk_version_do_not_use Don't use or change this parameter. Always set it to IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks.
Returns:
Returns pointer to the created irrKlang device or null if the device could not be created. If you don't need the device, use ISoundEngine::drop() to delete it. See IRefCounted::drop() for details.
IRRKLANG_API ISoundDeviceList* IRRKLANGCALLCONV irrklang::createSoundDeviceList ( E_SOUND_OUTPUT_DRIVER  driver = ESOD_AUTO_DETECT,
const char *  sdk_version_do_not_use = IRR_KLANG_VERSION 
)

Creates a list of available sound devices for the driver type.

The device IDs in this list can be used as parameter to createIrrKlangDevice() to make irrKlang use a special sound device. See Enumerating sound devices for an example on how to use this.

Parameters:
driver The sound output driver of which the list is generated. Set it irrklang::ESOD_AUTO_DETECT to let this function use the same device as createIrrKlangDevice() would choose.
sdk_version_do_not_use Don't use or change this parameter. Always set it to IRRKLANG_SDK_VERSION, which is done by default. This is needed for sdk version checks.
Returns:
Returns a pointer to the list of enumerated sound devices for the selected sound driver. The device IDs in this list can be used as parameter to createIrrKlangDevice() to make irrKlang use a special sound device. After you don't need the list anymore, call ISoundDeviceList::drop() in order to free its memory.
bool irrklang::equalsfloat ( const ik_f32  a,
const ik_f32  b,
const ik_f32  tolerance = IK_ROUNDING_ERROR_32 
) [inline]

returns if a float equals the other one, taking floating point rounding errors into account

IRRKLANG_API bool IRRKLANGCALLCONV irrklang::makeUTF8fromUTF16string ( const wchar_t *  pInputString,
char *  pOutputBuffer,
int  outputBufferSize 
)

Converts a wchar_t string to an utf8 string, useful when using Windows in unicode mode.

irrKlang works with unicode file names, and accepts char* strings as parameters for names and filenames. If you are running irrKlang in Windows, and working with wchar_t* pointers instead of char* ones, you can use this function to create a char* (UTF8) representation of your wchar_t* (UTF16) string. Works for filenames and other strings.

Parameters:
pInputString zero terminated input string.
pOutputBuffer the buffer where the converted string is written to. Be sure that this buffer has a big enough size. A good size would be three times the string length of your input buffer, like wcslen(yourInputBuffer)*3. Because each wchar_t can be represented by up to 3 chars.
outputBufferSize size of your output buffer.
Returns:
Returns true if successful, and false if not. If 'false' is returned, maybe your buffer was too small.
template<class S , class T >
vec3d<T> irrklang::operator* ( const S  scalar,
const vec3d< T > &  vector 
) [inline]

Variable Documentation

const ik_f32 irrklang::IK_PI32 = 3.14159265359f
const ik_f64 irrklang::IK_PI64 = 3.1415926535897932384626433832795028841971693993751
const ik_f32 irrklang::IK_RADTODEG = 180.0f / IK_PI32
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines

irrKlang Audio Library
The irrKlang Engine Documentation © 2003-2018 by Nikolaus Gebhardt. Generated by Doxygen (1.6.1)