SQCSimulator2023/SQCSim2021/external/irrKlang-64bit-1.6.0/doc/cpp/namespaceirrklang.html

974 lines
81 KiB
HTML

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>irrKlang: irrklang Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="namespaces.html"><span>Namespace&nbsp;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>irrklang Namespace Reference</h1>
<p>Everything in the irrKlang Sound Engine can be found in this namespace.
<a href="#_details">More...</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_audio_recorder.html">IAudioRecorder</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to an audio recorder. Create it using the <a class="el" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec" title="Creates an irrKlang audio recording device. The IAudioRecorder is the root object...">createIrrKlangAudioRecorder()</a> function. <a href="classirrklang_1_1_i_audio_recorder.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_captured_audio_data_receiver.html">ICapturedAudioDataReceiver</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to be implemented by the user if access to the recorded audio data is needed. <a href="classirrklang_1_1_i_captured_audio_data_receiver.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_audio_stream.html">IAudioStream</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads and decodes audio data into an usable audio stream for the <a class="el" href="classirrklang_1_1_i_sound_engine.html" title="Interface to the sound engine, for playing 3d and 2d sound and music.">ISoundEngine</a>. <a href="classirrklang_1_1_i_audio_stream.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_audio_stream_loader.html">IAudioStreamLoader</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class which is able to create an audio file stream from a file. <a href="classirrklang_1_1_i_audio_stream_loader.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_file_factory.html">IFileFactory</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to overwrite file access in irrKlang. <a href="classirrklang_1_1_i_file_factory.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_file_reader.html">IFileReader</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface providing read acess to a file. <a href="classirrklang_1_1_i_file_reader.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_ref_counted.html">IRefCounted</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base class of most objects of the irrKlang. <a href="classirrklang_1_1_i_ref_counted.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound.html">ISound</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Represents a sound which is currently played. <a href="classirrklang_1_1_i_sound.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_device_list.html">ISoundDeviceList</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A list of sound devices for a sound driver. Use <a class="el" href="namespaceirrklang.html#a38d9a69bf54fd60e76e80e199e44faee" title="Creates a list of available sound devices for the driver type.">irrklang::createSoundDeviceList()</a> to create this list. <a href="classirrklang_1_1_i_sound_device_list.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_effect_control.html">ISoundEffectControl</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to control the active sound effects (echo, reverb,...) of an <a class="el" href="classirrklang_1_1_i_sound.html" title="Represents a sound which is currently played.">ISound</a> object, a playing sound. <a href="classirrklang_1_1_i_sound_effect_control.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_engine.html">ISoundEngine</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to the sound engine, for playing 3d and 2d sound and music. <a href="classirrklang_1_1_i_sound_engine.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structirrklang_1_1_s_internal_audio_interface.html">SInternalAudioInterface</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">structure for returning pointers to the internal audio interface. <a href="structirrklang_1_1_s_internal_audio_interface.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_mixed_output_receiver.html">ISoundMixedOutputReceiver</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to be implemented by the user, which recieves the mixed output when it it played by the sound engine. <a href="classirrklang_1_1_i_sound_mixed_output_receiver.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_source.html">ISoundSource</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A sound source describes an input file (.ogg, .mp3, .wav or similar) and its default settings. <a href="classirrklang_1_1_i_sound_source.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_sound_stop_event_receiver.html">ISoundStopEventReceiver</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to be implemented by the user, which recieves sound stop events. <a href="classirrklang_1_1_i_sound_stop_event_receiver.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1_i_virtual_ref_counted.html">IVirtualRefCounted</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference counting base class for objects in the Irrlicht Engine similar to <a class="el" href="classirrklang_1_1_i_ref_counted.html" title="Base class of most objects of the irrKlang.">IRefCounted</a>. <a href="classirrklang_1_1_i_virtual_ref_counted.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structirrklang_1_1_s_audio_stream_format.html">SAudioStreamFormat</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">structure describing an audio stream format with helper functions <a href="structirrklang_1_1_s_audio_stream_format.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classirrklang_1_1vec3d.html">vec3d</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">a 3d vector template class for representing vectors and points in 3d <a href="classirrklang_1_1vec3d.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#af1928ef855711d24f793f841013f000e">ik_u8</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8 bit unsigned variable. <a href="#af1928ef855711d24f793f841013f000e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef signed char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a703d5c51092cc0731dd302f9c8d83613">ik_s8</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8 bit signed variable. <a href="#a703d5c51092cc0731dd302f9c8d83613"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#af179ad966eb79d01f6d1cf8927087449">ik_c8</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8 bit character variable. <a href="#af179ad966eb79d01f6d1cf8927087449"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a16e9eaf54fbe344a86cb9b93290d59d9">ik_u16</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">16 bit unsigned variable. <a href="#a16e9eaf54fbe344a86cb9b93290d59d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef signed short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#ab884b7693f13e37d94fcbbff6b93adcf">ik_s16</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">16 bit signed variable. <a href="#ab884b7693f13e37d94fcbbff6b93adcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#adf9f75b6ca98aff6843fb294125571e0">ik_u32</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">32 bit unsigned variable. <a href="#adf9f75b6ca98aff6843fb294125571e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef signed int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#af8028b1c477e50d479270611ecb76e92">ik_s32</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">32 bit signed variable. <a href="#af8028b1c477e50d479270611ecb76e92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">32 bit floating point variable. <a href="#a6fa5a4dd85b476308461136072ef4e0f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">64 bit floating point variable. <a href="#a1c98510aa3989b1780723e2fb15f7c3d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt; <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a592332840fd1799b7c73bcc4c0c4a5af">vec3df</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Typedef for a ik_f32 3d vector, a vector using floats for X, Y and Z. <a href="#a592332840fd1799b7c73bcc4c0c4a5af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt; <a class="el" href="namespaceirrklang.html#af8028b1c477e50d479270611ecb76e92">ik_s32</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a96ca718557ff7197905483b21f781d26">vec3di</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Typedef for an integer 3d vector, a vector using ints for X, Y and Z. <a href="#a96ca718557ff7197905483b21f781d26"></a><br/></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7f">E_SOUND_ENGINE_OPTIONS</a> { <br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fa83d61c032b77336f4a4a2b506e1c9e24">ESEO_MULTI_THREADED</a> = 0x01,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7faf7a3169d7e1fa394035639eaf1bd5b1e">ESEO_MUTE_IF_NOT_FOCUSED</a> = 0x02,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fafda608a17564b562a9a43b7934a387e8">ESEO_LOAD_PLUGINS</a> = 0x04,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fa76f687a07c0fe42e0af47098a6c58286">ESEO_USE_3D_BUFFERS</a> = 0x08,
<br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7faa5b12b3061e7ba5898e9a502de47bb8e">ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER</a> = 0x10,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fa6a103ac05a294aea210fd0bb14dd8241">ESEO_PRINT_DEBUG_INFO_TO_STDOUT</a> = 0x20,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fa4600bc37a0bf0b999562d59bec094c05">ESEO_LINEAR_ROLLOFF</a> = 0x40,
<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7facca58ad3ee7e3c2e874bc4015f36f2a9">ESEO_DEFAULT_OPTIONS</a> = ESEO_MULTI_THREADED | ESEO_LOAD_PLUGINS | ESEO_USE_3D_BUFFERS | ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER | ESEO_PRINT_DEBUG_INFO_TO_STDOUT,
<br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7fada32d5c6ec9eb5cfa818184faf87eb6a">ESEO_FORCE_32_BIT</a> = 0x7fffffff
<br/>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>An enumeration for all options for starting up the sound engine. </p>
<a href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7f">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">E_SOUND_OUTPUT_DRIVER</a> { <br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec">ESOD_AUTO_DETECT</a> = 0,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea6fcd5ec6152066313ef04d97ea5582ee">ESOD_DIRECT_SOUND_8</a>,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea41cdbf2b330293f9c8be2c5a53197258">ESOD_DIRECT_SOUND</a>,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea618f53c155e92cca2b3b69865b48335a">ESOD_WIN_MM</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea776337cd0b6eeb6cbf171889ca4100c1">ESOD_ALSA</a>,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea0b3dfa7418df1cf47c77ad2370533332">ESOD_CORE_AUDIO</a>,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea942ffa317debc447cae5bfab10b67c9c">ESOD_NULL</a>,
<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afeaf4138be4b36d3e0c5a7a09bc1422c9bf">ESOD_COUNT</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea6dc399ba0785f1435c2e2c9cd5478c3f">ESOD_FORCE_32_BIT</a> = 0x7fffffff
<br/>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>An enumeration for all types of supported sound drivers. </p>
<a href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06e">E_STREAM_MODE</a> { <a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06ea9ccdf79afdb2961edf97edf4575d1717">ESM_AUTO_DETECT</a> = 0,
<a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06ea2d72368b13fbbb1ce9708d829198a24b">ESM_STREAMING</a>,
<a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06ea415ca3d09a13b086c078de0096430a07">ESM_NO_STREAMING</a>,
<a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06eabbfef2fbcff24a58a55051d9a7ff7b19">ESM_FORCE_32_BIT</a> = 0x7fffffff
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>An enumeration for all types of supported stream modes. </p>
<a href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06e">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522">E_STOP_EVENT_CAUSE</a> { <a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522ac77937ae9e225a3a42775bc086e93158">ESEC_SOUND_FINISHED_PLAYING</a> = 0,
<a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522a5d688aec69b83583382e370a332cdb45">ESEC_SOUND_STOPPED_BY_USER</a>,
<a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522a1d582aee4156ea2b5952a314f03a78ca">ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL</a>,
<a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522a3ebc8c5fc80207284388d61d2644bd31">ESEC_FORCE_32_BIT</a> = 0x7fffffff
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>An enumeration listing all reasons for a fired sound stop event. </p>
<a href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a2b85d1e9288cb552fceef8e8a726a80e">ESampleFormat</a> { <a class="el" href="namespaceirrklang.html#a2b85d1e9288cb552fceef8e8a726a80ea0de880c8a4d615e152bde20ec8444c44">ESF_U8</a>,
<a class="el" href="namespaceirrklang.html#a2b85d1e9288cb552fceef8e8a726a80eaa3dc63221ae7c396d6b32431da872104">ESF_S16</a>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>audio sample data format enumeration for supported formats </p>
<a href="namespaceirrklang.html#a2b85d1e9288cb552fceef8e8a726a80e">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a6ce1a12052cdee7b6d81a053a73a4f86">equalsfloat</a> (const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> a, const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> b, const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> tolerance=<a class="el" href="namespaceirrklang.html#a37e23177810db5355a4fb31038e71634">IK_ROUNDING_ERROR_32</a>)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class S , class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt; T &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#adad19b8b2635a866577971754c9e5f90">operator*</a> (const S scalar, const <a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt; T &gt; &amp;vector)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_engine.html">ISoundEngine</a> <br class="typebreak"/>
*IRRKLANGCALLCONV&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c">createIrrKlangDevice</a> (<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">E_SOUND_OUTPUT_DRIVER</a> driver=ESOD_AUTO_DETECT, int options=ESEO_DEFAULT_OPTIONS, const char *deviceID=0, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an irrKlang device. The irrKlang device is the root object for using the sound engine. <a href="#ad9829f898bc0665fdd2554a6f5c7ca1c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_device_list.html">ISoundDeviceList</a> <br class="typebreak"/>
*IRRKLANGCALLCONV&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a38d9a69bf54fd60e76e80e199e44faee">createSoundDeviceList</a> (<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">E_SOUND_OUTPUT_DRIVER</a> driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a list of available sound devices for the driver type. <a href="#a38d9a69bf54fd60e76e80e199e44faee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_audio_recorder.html">IAudioRecorder</a> <br class="typebreak"/>
*IRRKLANGCALLCONV&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec">createIrrKlangAudioRecorder</a> (<a class="el" href="classirrklang_1_1_i_sound_engine.html">ISoundEngine</a> *irrKlangDeviceForPlayback, <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">E_SOUND_OUTPUT_DRIVER</a> driver=ESOD_AUTO_DETECT, const char *deviceID=0, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an irrKlang audio recording device. The <a class="el" href="classirrklang_1_1_i_audio_recorder.html" title="Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder()...">IAudioRecorder</a> is the root object for recording audio. <a href="#aaa4535359bd66857aaadb746cf7d8cec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_device_list.html">ISoundDeviceList</a> <br class="typebreak"/>
*IRRKLANGCALLCONV&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a0e8013b9e8f11231e69ce1da9457a339">createAudioRecorderDeviceList</a> (<a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">E_SOUND_OUTPUT_DRIVER</a> driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a list of available recording devices for the driver type. <a href="#a0e8013b9e8f11231e69ce1da9457a339"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">IRRKLANG_API bool IRRKLANGCALLCONV&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a2552f41aac247b77e0f1287c28744cd7">makeUTF8fromUTF16string</a> (const wchar_t *pInputString, char *pOutputBuffer, int outputBufferSize)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a wchar_t string to an utf8 string, useful when using Windows in unicode mode. <a href="#a2552f41aac247b77e0f1287c28744cd7"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a37e23177810db5355a4fb31038e71634">IK_ROUNDING_ERROR_32</a> = 0.000001f</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">IK_PI64</a> = 3.1415926535897932384626433832795028841971693993751</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a5e56a9f6a51767cc5a1bf32919a2b801">IK_PI32</a> = 3.14159265359f</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a899ce8a298f44c2a5413c6dc0e87f640">IK_RADTODEG</a> = 180.0f / IK_PI32</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#ad74595519e5497bb71a0e4b98312866f">IK_DEGTORAD</a> = <a class="el" href="namespaceirrklang.html#a5e56a9f6a51767cc5a1bf32919a2b801">IK_PI32</a> / 180.0f</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a3f83fd863cffaac9ddde5ff73e72f116">IK_RADTODEG64</a> = 180.0 / <a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">IK_PI64</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceirrklang.html#a738ade686859c0d98ce9edbd34c4fc1b">IK_DEGTORAD64</a> = <a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">IK_PI64</a> / 180.0</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Everything in the irrKlang Sound Engine can be found in this namespace. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="af179ad966eb79d01f6d1cf8927087449"></a><!-- doxytag: member="irrklang::ik_c8" ref="af179ad966eb79d01f6d1cf8927087449" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef char <a class="el" href="namespaceirrklang.html#af179ad966eb79d01f6d1cf8927087449">irrklang::ik_c8</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>8 bit character variable. </p>
<p>This is a typedef for char, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="a6fa5a4dd85b476308461136072ef4e0f"></a><!-- doxytag: member="irrklang::ik_f32" ref="a6fa5a4dd85b476308461136072ef4e0f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef float <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">irrklang::ik_f32</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>32 bit floating point variable. </p>
<p>This is a typedef for float, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="a1c98510aa3989b1780723e2fb15f7c3d"></a><!-- doxytag: member="irrklang::ik_f64" ref="a1c98510aa3989b1780723e2fb15f7c3d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef double <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">irrklang::ik_f64</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>64 bit floating point variable. </p>
<p>This is a typedef for double, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="ab884b7693f13e37d94fcbbff6b93adcf"></a><!-- doxytag: member="irrklang::ik_s16" ref="ab884b7693f13e37d94fcbbff6b93adcf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef signed short <a class="el" href="namespaceirrklang.html#ab884b7693f13e37d94fcbbff6b93adcf">irrklang::ik_s16</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>16 bit signed variable. </p>
<p>This is a typedef for signed short, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="af8028b1c477e50d479270611ecb76e92"></a><!-- doxytag: member="irrklang::ik_s32" ref="af8028b1c477e50d479270611ecb76e92" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef signed int <a class="el" href="namespaceirrklang.html#af8028b1c477e50d479270611ecb76e92">irrklang::ik_s32</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>32 bit signed variable. </p>
<p>This is a typedef for signed int, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="a703d5c51092cc0731dd302f9c8d83613"></a><!-- doxytag: member="irrklang::ik_s8" ref="a703d5c51092cc0731dd302f9c8d83613" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef signed char <a class="el" href="namespaceirrklang.html#a703d5c51092cc0731dd302f9c8d83613">irrklang::ik_s8</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>8 bit signed variable. </p>
<p>This is a typedef for signed char, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="a16e9eaf54fbe344a86cb9b93290d59d9"></a><!-- doxytag: member="irrklang::ik_u16" ref="a16e9eaf54fbe344a86cb9b93290d59d9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned short <a class="el" href="namespaceirrklang.html#a16e9eaf54fbe344a86cb9b93290d59d9">irrklang::ik_u16</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>16 bit unsigned variable. </p>
<p>This is a typedef for unsigned short, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="adf9f75b6ca98aff6843fb294125571e0"></a><!-- doxytag: member="irrklang::ik_u32" ref="adf9f75b6ca98aff6843fb294125571e0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int <a class="el" href="namespaceirrklang.html#adf9f75b6ca98aff6843fb294125571e0">irrklang::ik_u32</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>32 bit unsigned variable. </p>
<p>This is a typedef for unsigned int, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="af1928ef855711d24f793f841013f000e"></a><!-- doxytag: member="irrklang::ik_u8" ref="af1928ef855711d24f793f841013f000e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned char <a class="el" href="namespaceirrklang.html#af1928ef855711d24f793f841013f000e">irrklang::ik_u8</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>8 bit unsigned variable. </p>
<p>This is a typedef for unsigned char, it ensures portability of the engine. </p>
</div>
</div>
<a class="anchor" id="a592332840fd1799b7c73bcc4c0c4a5af"></a><!-- doxytag: member="irrklang::vec3df" ref="a592332840fd1799b7c73bcc4c0c4a5af" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt;<a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a>&gt; <a class="el" href="classirrklang_1_1vec3d.html">irrklang::vec3df</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Typedef for a ik_f32 3d vector, a vector using floats for X, Y and Z. </p>
</div>
</div>
<a class="anchor" id="a96ca718557ff7197905483b21f781d26"></a><!-- doxytag: member="irrklang::vec3di" ref="a96ca718557ff7197905483b21f781d26" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt;<a class="el" href="namespaceirrklang.html#af8028b1c477e50d479270611ecb76e92">ik_s32</a>&gt; <a class="el" href="classirrklang_1_1vec3d.html">irrklang::vec3di</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Typedef for an integer 3d vector, a vector using ints for X, Y and Z. </p>
</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ac9155ff55b347df6e905462100762d7f"></a><!-- doxytag: member="irrklang::E_SOUND_ENGINE_OPTIONS" ref="ac9155ff55b347df6e905462100762d7f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7f">irrklang::E_SOUND_ENGINE_OPTIONS</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An enumeration for all options for starting up the sound engine. </p>
<p>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. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fa83d61c032b77336f4a4a2b506e1c9e24"></a><!-- doxytag: member="ESEO_MULTI_THREADED" ref="ac9155ff55b347df6e905462100762d7fa83d61c032b77336f4a4a2b506e1c9e24" args="" -->ESEO_MULTI_THREADED</em>&nbsp;</td><td>
<p>If specified (default), it will make irrKlang run in a separate thread. </p>
<p>Using this flag, irrKlang will update all streams, sounds, 3d positions and whatever automaticly. You also don't need to call <a class="el" href="classirrklang_1_1_i_sound_engine.html#a7b4f4913148d42ffe80b69979ad25906" title="Updates the audio engine. This should be called several times per frame if irrKlang...">ISoundEngine::update()</a> 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 <a class="el" href="classirrklang_1_1_i_sound_engine.html#a7b4f4913148d42ffe80b69979ad25906" title="Updates the audio engine. This should be called several times per frame if irrKlang...">ISoundEngine::update()</a> as often as you can (at least about 2-3 times per second) to make irrKlang update everything correctly then. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7faf7a3169d7e1fa394035639eaf1bd5b1e"></a><!-- doxytag: member="ESEO_MUTE_IF_NOT_FOCUSED" ref="ac9155ff55b347df6e905462100762d7faf7a3169d7e1fa394035639eaf1bd5b1e" args="" -->ESEO_MUTE_IF_NOT_FOCUSED</em>&nbsp;</td><td>
<p>If the window of the application doesn't have the focus, irrKlang will be silent if this has been set. </p>
<p>This will only work when irrKlang is using the DirectSound output driver. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fafda608a17564b562a9a43b7934a387e8"></a><!-- doxytag: member="ESEO_LOAD_PLUGINS" ref="ac9155ff55b347df6e905462100762d7fafda608a17564b562a9a43b7934a387e8" args="" -->ESEO_LOAD_PLUGINS</em>&nbsp;</td><td>
<p>Automaticly loads external plugins when starting up. </p>
<p>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 <a class="el" href="classirrklang_1_1_i_sound_engine.html#abcb159bed86265a22fe3435ce2541ea6" title="Loads irrKlang plugins from a custom path.">ISoundEngine::loadPlugins()</a>. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fa76f687a07c0fe42e0af47098a6c58286"></a><!-- doxytag: member="ESEO_USE_3D_BUFFERS" ref="ac9155ff55b347df6e905462100762d7fa76f687a07c0fe42e0af47098a6c58286" args="" -->ESEO_USE_3D_BUFFERS</em>&nbsp;</td><td>
<p>Uses 3D sound buffers instead of emulating them when playing 3d sounds (default). </p>
<p>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. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7faa5b12b3061e7ba5898e9a502de47bb8e"></a><!-- doxytag: member="ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER" ref="ac9155ff55b347df6e905462100762d7faa5b12b3061e7ba5898e9a502de47bb8e" args="" -->ESEO_PRINT_DEBUG_INFO_TO_DEBUGGER</em>&nbsp;</td><td>
<p>Prints debug messages to the debugger window. </p>
<p>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). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fa6a103ac05a294aea210fd0bb14dd8241"></a><!-- doxytag: member="ESEO_PRINT_DEBUG_INFO_TO_STDOUT" ref="ac9155ff55b347df6e905462100762d7fa6a103ac05a294aea210fd0bb14dd8241" args="" -->ESEO_PRINT_DEBUG_INFO_TO_STDOUT</em>&nbsp;</td><td>
<p>Prints debug messages to stdout (the ConsoleWindow). </p>
<p>irrKlang will print debug info and status messages stdout, the console window in Windows. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fa4600bc37a0bf0b999562d59bec094c05"></a><!-- doxytag: member="ESEO_LINEAR_ROLLOFF" ref="ac9155ff55b347df6e905462100762d7fa4600bc37a0bf0b999562d59bec094c05" args="" -->ESEO_LINEAR_ROLLOFF</em>&nbsp;</td><td>
<p>Uses linear rolloff for 3D sound. </p>
<p>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. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7facca58ad3ee7e3c2e874bc4015f36f2a9"></a><!-- doxytag: member="ESEO_DEFAULT_OPTIONS" ref="ac9155ff55b347df6e905462100762d7facca58ad3ee7e3c2e874bc4015f36f2a9" args="" -->ESEO_DEFAULT_OPTIONS</em>&nbsp;</td><td>
<p>Default parameters when starting up the engine. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ac9155ff55b347df6e905462100762d7fada32d5c6ec9eb5cfa818184faf87eb6a"></a><!-- doxytag: member="ESEO_FORCE_32_BIT" ref="ac9155ff55b347df6e905462100762d7fada32d5c6ec9eb5cfa818184faf87eb6a" args="" -->ESEO_FORCE_32_BIT</em>&nbsp;</td><td>
<p>Never used, it only forces the compiler to compile these enumeration values to 32 bit. </p>
<p>Don't use this. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a77f31ac02a7d33fe94807be709f72afe"></a><!-- doxytag: member="irrklang::E_SOUND_OUTPUT_DRIVER" ref="a77f31ac02a7d33fe94807be709f72afe" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe">irrklang::E_SOUND_OUTPUT_DRIVER</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An enumeration for all types of supported sound drivers. </p>
<p>Values of this enumeration can be used as parameter when calling <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a>. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec"></a><!-- doxytag: member="ESOD_AUTO_DETECT" ref="a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" args="" -->ESOD_AUTO_DETECT</em>&nbsp;</td><td>
<p>Autodetects the best sound driver for the system. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea6fcd5ec6152066313ef04d97ea5582ee"></a><!-- doxytag: member="ESOD_DIRECT_SOUND_8" ref="a77f31ac02a7d33fe94807be709f72afea6fcd5ec6152066313ef04d97ea5582ee" args="" -->ESOD_DIRECT_SOUND_8</em>&nbsp;</td><td>
<p>DirectSound8 sound output driver, windows only. </p>
<p>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. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea41cdbf2b330293f9c8be2c5a53197258"></a><!-- doxytag: member="ESOD_DIRECT_SOUND" ref="a77f31ac02a7d33fe94807be709f72afea41cdbf2b330293f9c8be2c5a53197258" args="" -->ESOD_DIRECT_SOUND</em>&nbsp;</td><td>
<p>DirectSound sound output driver, windows only. </p>
<p>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. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea618f53c155e92cca2b3b69865b48335a"></a><!-- doxytag: member="ESOD_WIN_MM" ref="a77f31ac02a7d33fe94807be709f72afea618f53c155e92cca2b3b69865b48335a" args="" -->ESOD_WIN_MM</em>&nbsp;</td><td>
<p>WinMM sound output driver, windows only. </p>
<p>Supports the <a class="el" href="classirrklang_1_1_i_sound_mixed_output_receiver.html" title="Interface to be implemented by the user, which recieves the mixed output when it...">ISoundMixedOutputReceiver</a> interface using setMixedDataOutputReceiver. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea776337cd0b6eeb6cbf171889ca4100c1"></a><!-- doxytag: member="ESOD_ALSA" ref="a77f31ac02a7d33fe94807be709f72afea776337cd0b6eeb6cbf171889ca4100c1" args="" -->ESOD_ALSA</em>&nbsp;</td><td>
<p>ALSA sound output driver, linux only. </p>
<p>When using ESOD_ALSA in <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a>, 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 <a class="el" href="classirrklang_1_1_i_sound_mixed_output_receiver.html" title="Interface to be implemented by the user, which recieves the mixed output when it...">ISoundMixedOutputReceiver</a> interface using setMixedDataOutputReceiver. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea0b3dfa7418df1cf47c77ad2370533332"></a><!-- doxytag: member="ESOD_CORE_AUDIO" ref="a77f31ac02a7d33fe94807be709f72afea0b3dfa7418df1cf47c77ad2370533332" args="" -->ESOD_CORE_AUDIO</em>&nbsp;</td><td>
<p>Core Audio sound output driver, mac os only. </p>
<p>Supports the <a class="el" href="classirrklang_1_1_i_sound_mixed_output_receiver.html" title="Interface to be implemented by the user, which recieves the mixed output when it...">ISoundMixedOutputReceiver</a> interface using setMixedDataOutputReceiver. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea942ffa317debc447cae5bfab10b67c9c"></a><!-- doxytag: member="ESOD_NULL" ref="a77f31ac02a7d33fe94807be709f72afea942ffa317debc447cae5bfab10b67c9c" args="" -->ESOD_NULL</em>&nbsp;</td><td>
<p>Null driver, creating no sound output. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afeaf4138be4b36d3e0c5a7a09bc1422c9bf"></a><!-- doxytag: member="ESOD_COUNT" ref="a77f31ac02a7d33fe94807be709f72afeaf4138be4b36d3e0c5a7a09bc1422c9bf" args="" -->ESOD_COUNT</em>&nbsp;</td><td>
<p>Amount of built-in sound output drivers. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a77f31ac02a7d33fe94807be709f72afea6dc399ba0785f1435c2e2c9cd5478c3f"></a><!-- doxytag: member="ESOD_FORCE_32_BIT" ref="a77f31ac02a7d33fe94807be709f72afea6dc399ba0785f1435c2e2c9cd5478c3f" args="" -->ESOD_FORCE_32_BIT</em>&nbsp;</td><td>
<p>This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a17ebb006afe78ab6502a1e3d18083522"></a><!-- doxytag: member="irrklang::E_STOP_EVENT_CAUSE" ref="a17ebb006afe78ab6502a1e3d18083522" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceirrklang.html#a17ebb006afe78ab6502a1e3d18083522">irrklang::E_STOP_EVENT_CAUSE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An enumeration listing all reasons for a fired sound stop event. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a17ebb006afe78ab6502a1e3d18083522ac77937ae9e225a3a42775bc086e93158"></a><!-- doxytag: member="ESEC_SOUND_FINISHED_PLAYING" ref="a17ebb006afe78ab6502a1e3d18083522ac77937ae9e225a3a42775bc086e93158" args="" -->ESEC_SOUND_FINISHED_PLAYING</em>&nbsp;</td><td>
<p>The sound stop event was fired because the sound finished playing. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a17ebb006afe78ab6502a1e3d18083522a5d688aec69b83583382e370a332cdb45"></a><!-- doxytag: member="ESEC_SOUND_STOPPED_BY_USER" ref="a17ebb006afe78ab6502a1e3d18083522a5d688aec69b83583382e370a332cdb45" args="" -->ESEC_SOUND_STOPPED_BY_USER</em>&nbsp;</td><td>
<p>The sound stop event was fired because the sound was stopped by the user, calling <a class="el" href="classirrklang_1_1_i_sound.html#a108485fe64658441cecd70917782961f" title="Will stop the sound and free its resources.">ISound::stop()</a>. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a17ebb006afe78ab6502a1e3d18083522a1d582aee4156ea2b5952a314f03a78ca"></a><!-- doxytag: member="ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL" ref="a17ebb006afe78ab6502a1e3d18083522a1d582aee4156ea2b5952a314f03a78ca" args="" -->ESEC_SOUND_STOPPED_BY_SOURCE_REMOVAL</em>&nbsp;</td><td>
<p>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 <a class="el" href="classirrklang_1_1_i_sound_engine.html#a82e712f7816f933145690983dbd8be9e" title="Removes a sound source from the engine, freeing the memory it occupies.">ISoundEngine::removeSoundSource()</a>. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a17ebb006afe78ab6502a1e3d18083522a3ebc8c5fc80207284388d61d2644bd31"></a><!-- doxytag: member="ESEC_FORCE_32_BIT" ref="a17ebb006afe78ab6502a1e3d18083522a3ebc8c5fc80207284388d61d2644bd31" args="" -->ESEC_FORCE_32_BIT</em>&nbsp;</td><td>
<p>This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a6eab873ba387c6a4e05839e6a434d06e"></a><!-- doxytag: member="irrklang::E_STREAM_MODE" ref="a6eab873ba387c6a4e05839e6a434d06e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceirrklang.html#a6eab873ba387c6a4e05839e6a434d06e">irrklang::E_STREAM_MODE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>An enumeration for all types of supported stream modes. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a6eab873ba387c6a4e05839e6a434d06ea9ccdf79afdb2961edf97edf4575d1717"></a><!-- doxytag: member="ESM_AUTO_DETECT" ref="a6eab873ba387c6a4e05839e6a434d06ea9ccdf79afdb2961edf97edf4575d1717" args="" -->ESM_AUTO_DETECT</em>&nbsp;</td><td>
<p>Autodetects the best stream mode for a specified audio data. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a6eab873ba387c6a4e05839e6a434d06ea2d72368b13fbbb1ce9708d829198a24b"></a><!-- doxytag: member="ESM_STREAMING" ref="a6eab873ba387c6a4e05839e6a434d06ea2d72368b13fbbb1ce9708d829198a24b" args="" -->ESM_STREAMING</em>&nbsp;</td><td>
<p>Streams the audio data when needed. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a6eab873ba387c6a4e05839e6a434d06ea415ca3d09a13b086c078de0096430a07"></a><!-- doxytag: member="ESM_NO_STREAMING" ref="a6eab873ba387c6a4e05839e6a434d06ea415ca3d09a13b086c078de0096430a07" args="" -->ESM_NO_STREAMING</em>&nbsp;</td><td>
<p>Loads the whole audio data into the memory. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a6eab873ba387c6a4e05839e6a434d06eabbfef2fbcff24a58a55051d9a7ff7b19"></a><!-- doxytag: member="ESM_FORCE_32_BIT" ref="a6eab873ba387c6a4e05839e6a434d06eabbfef2fbcff24a58a55051d9a7ff7b19" args="" -->ESM_FORCE_32_BIT</em>&nbsp;</td><td>
<p>This enumeration literal is never used, it only forces the compiler to compile these enumeration values to 32 bit. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a2b85d1e9288cb552fceef8e8a726a80e"></a><!-- doxytag: member="irrklang::ESampleFormat" ref="a2b85d1e9288cb552fceef8e8a726a80e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceirrklang.html#a2b85d1e9288cb552fceef8e8a726a80e">irrklang::ESampleFormat</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>audio sample data format enumeration for supported formats </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a2b85d1e9288cb552fceef8e8a726a80ea0de880c8a4d615e152bde20ec8444c44"></a><!-- doxytag: member="ESF_U8" ref="a2b85d1e9288cb552fceef8e8a726a80ea0de880c8a4d615e152bde20ec8444c44" args="" -->ESF_U8</em>&nbsp;</td><td>
<p>one unsigned byte (0;255) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2b85d1e9288cb552fceef8e8a726a80eaa3dc63221ae7c396d6b32431da872104"></a><!-- doxytag: member="ESF_S16" ref="a2b85d1e9288cb552fceef8e8a726a80eaa3dc63221ae7c396d6b32431da872104" args="" -->ESF_S16</em>&nbsp;</td><td>
<p>16 bit, signed (-32k;32k) </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a0e8013b9e8f11231e69ce1da9457a339"></a><!-- doxytag: member="irrklang::createAudioRecorderDeviceList" ref="a0e8013b9e8f11231e69ce1da9457a339" args="(E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_device_list.html">ISoundDeviceList</a>* IRRKLANGCALLCONV irrklang::createAudioRecorderDeviceList </td>
<td>(</td>
<td class="paramtype">E_SOUND_OUTPUT_DRIVER&nbsp;</td>
<td class="paramname"> <em>driver</em> = <code>ESOD_AUTO_DETECT</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>sdk_version_do_not_use</em> = <code>IRR_KLANG_VERSION</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a list of available recording devices for the driver type. </p>
<p>The device IDs in this list can be used as parameter to <a class="el" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec" title="Creates an irrKlang audio recording device. The IAudioRecorder is the root object...">createIrrKlangAudioRecorder()</a> to make irrKlang use a special recording device. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>The sound output driver of which the list is generated. Set it <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">irrklang::ESOD_AUTO_DETECT</a> to let this function use the same device as <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a> would choose. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sdk_version_do_not_use</em>&nbsp;</td><td>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. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>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 <a class="el" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec" title="Creates an irrKlang audio recording device. The IAudioRecorder is the root object...">createIrrKlangAudioRecorder()</a> to make irrKlang use a special sound device. After you don't need the list anymore, call <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">ISoundDeviceList::drop()</a> in order to free its memory. </dd></dl>
</div>
</div>
<a class="anchor" id="aaa4535359bd66857aaadb746cf7d8cec"></a><!-- doxytag: member="irrklang::createIrrKlangAudioRecorder" ref="aaa4535359bd66857aaadb746cf7d8cec" args="(ISoundEngine *irrKlangDeviceForPlayback, E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *deviceID=0, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_audio_recorder.html">IAudioRecorder</a>* IRRKLANGCALLCONV irrklang::createIrrKlangAudioRecorder </td>
<td>(</td>
<td class="paramtype">ISoundEngine *&nbsp;</td>
<td class="paramname"> <em>irrKlangDeviceForPlayback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">E_SOUND_OUTPUT_DRIVER&nbsp;</td>
<td class="paramname"> <em>driver</em> = <code>ESOD_AUTO_DETECT</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>deviceID</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>sdk_version_do_not_use</em> = <code>IRR_KLANG_VERSION</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates an irrKlang audio recording device. The <a class="el" href="classirrklang_1_1_i_audio_recorder.html" title="Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder()...">IAudioRecorder</a> is the root object for recording audio. </p>
<p>If you want to play back recorded audio as well, create the <a class="el" href="classirrklang_1_1_i_sound_engine.html" title="Interface to the sound engine, for playing 3d and 2d sound and music.">ISoundEngine</a> first using <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a> and then the <a class="el" href="classirrklang_1_1_i_audio_recorder.html" title="Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder()...">IAudioRecorder</a> using <a class="el" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec" title="Creates an irrKlang audio recording device. The IAudioRecorder is the root object...">createIrrKlangAudioRecorder()</a>, where you set the <a class="el" href="classirrklang_1_1_i_sound_engine.html" title="Interface to the sound engine, for playing 3d and 2d sound and music.">ISoundEngine</a> as first parameter. See <a class="el" href="index.html#recordingAudio">Recording Audio</a> 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). </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>irrKlangDeviceForPlayback</em>&nbsp;</td><td>A pointer to the already existing sound device used for playback of audio. Sound sources recorded with the <a class="el" href="classirrklang_1_1_i_audio_recorder.html" title="Interface to an audio recorder. Create it using the createIrrKlangAudioRecorder()...">IAudioRecorder</a> will be added into that device so that they can be played back there. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>The sound output driver to be used for recording audio. Use <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">irrklang::ESOD_AUTO_DETECT</a> to let irrKlang decide which driver will be best. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>deviceID</em>&nbsp;</td><td>Some additional optional deviceID for the audio driver. If not needed, simple set this to 0. Use <a class="el" href="namespaceirrklang.html#a0e8013b9e8f11231e69ce1da9457a339" title="Creates a list of available recording devices for the driver type.">createAudioRecorderDeviceList()</a> to get a list of all deviceIDs. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sdk_version_do_not_use</em>&nbsp;</td><td>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. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns pointer to the created irrKlang device or null if the device could not be created. If you don't need the device, use <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">ISoundEngine::drop()</a> to delete it. See <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">IRefCounted::drop()</a> for details. </dd></dl>
</div>
</div>
<a class="anchor" id="ad9829f898bc0665fdd2554a6f5c7ca1c"></a><!-- doxytag: member="irrklang::createIrrKlangDevice" ref="ad9829f898bc0665fdd2554a6f5c7ca1c" args="(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)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_engine.html">ISoundEngine</a>* IRRKLANGCALLCONV irrklang::createIrrKlangDevice </td>
<td>(</td>
<td class="paramtype">E_SOUND_OUTPUT_DRIVER&nbsp;</td>
<td class="paramname"> <em>driver</em> = <code>ESOD_AUTO_DETECT</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>options</em> = <code>ESEO_DEFAULT_OPTIONS</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>deviceID</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>sdk_version_do_not_use</em> = <code>IRR_KLANG_VERSION</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates an irrKlang device. The irrKlang device is the root object for using the sound engine. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>The sound output driver to be used for sound output. Use <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">irrklang::ESOD_AUTO_DETECT</a> to let irrKlang decide which driver will be best. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>A combination of <a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7f" title="An enumeration for all options for starting up the sound engine.">irrklang::E_SOUND_ENGINE_OPTIONS</a> literals. Default value is <a class="el" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7facca58ad3ee7e3c2e874bc4015f36f2a9" title="Default parameters when starting up the engine.">irrklang::ESEO_DEFAULT_OPTIONS</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>deviceID</em>&nbsp;</td><td>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 <a class="el" href="namespaceirrklang.html#a38d9a69bf54fd60e76e80e199e44faee" title="Creates a list of available sound devices for the driver type.">createSoundDeviceList()</a>. See <a class="el" href="index.html#enumeratingDevices">Enumerating sound devices</a> for an example or <a class="el" href="classirrklang_1_1_i_sound_device_list.html" title="A list of sound devices for a sound driver. Use irrklang::createSoundDeviceList()...">ISoundDeviceList</a> or details. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sdk_version_do_not_use</em>&nbsp;</td><td>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. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns pointer to the created irrKlang device or null if the device could not be created. If you don't need the device, use <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">ISoundEngine::drop()</a> to delete it. See <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">IRefCounted::drop()</a> for details. </dd></dl>
</div>
</div>
<a class="anchor" id="a38d9a69bf54fd60e76e80e199e44faee"></a><!-- doxytag: member="irrklang::createSoundDeviceList" ref="a38d9a69bf54fd60e76e80e199e44faee" args="(E_SOUND_OUTPUT_DRIVER driver=ESOD_AUTO_DETECT, const char *sdk_version_do_not_use=IRR_KLANG_VERSION)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IRRKLANG_API <a class="el" href="classirrklang_1_1_i_sound_device_list.html">ISoundDeviceList</a>* IRRKLANGCALLCONV irrklang::createSoundDeviceList </td>
<td>(</td>
<td class="paramtype">E_SOUND_OUTPUT_DRIVER&nbsp;</td>
<td class="paramname"> <em>driver</em> = <code>ESOD_AUTO_DETECT</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>sdk_version_do_not_use</em> = <code>IRR_KLANG_VERSION</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a list of available sound devices for the driver type. </p>
<p>The device IDs in this list can be used as parameter to <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a> to make irrKlang use a special sound device. See <a class="el" href="index.html#enumeratingDevices">Enumerating sound devices</a> for an example on how to use this. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>The sound output driver of which the list is generated. Set it <a class="el" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">irrklang::ESOD_AUTO_DETECT</a> to let this function use the same device as <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a> would choose. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sdk_version_do_not_use</em>&nbsp;</td><td>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. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>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 <a class="el" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice()</a> to make irrKlang use a special sound device. After you don't need the list anymore, call <a class="el" href="classirrklang_1_1_i_ref_counted.html#a869fe3adc6e49e8da105e95837a565b1">ISoundDeviceList::drop()</a> in order to free its memory. </dd></dl>
</div>
</div>
<a class="anchor" id="a6ce1a12052cdee7b6d81a053a73a4f86"></a><!-- doxytag: member="irrklang::equalsfloat" ref="a6ce1a12052cdee7b6d81a053a73a4f86" args="(const ik_f32 a, const ik_f32 b, const ik_f32 tolerance=IK_ROUNDING_ERROR_32)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool irrklang::equalsfloat </td>
<td>(</td>
<td class="paramtype">const ik_f32&nbsp;</td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ik_f32&nbsp;</td>
<td class="paramname"> <em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ik_f32&nbsp;</td>
<td class="paramname"> <em>tolerance</em> = <code>IK_ROUNDING_ERROR_32</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>returns if a float equals the other one, taking floating point rounding errors into account </p>
</div>
</div>
<a class="anchor" id="a2552f41aac247b77e0f1287c28744cd7"></a><!-- doxytag: member="irrklang::makeUTF8fromUTF16string" ref="a2552f41aac247b77e0f1287c28744cd7" args="(const wchar_t *pInputString, char *pOutputBuffer, int outputBufferSize)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">IRRKLANG_API bool IRRKLANGCALLCONV irrklang::makeUTF8fromUTF16string </td>
<td>(</td>
<td class="paramtype">const wchar_t *&nbsp;</td>
<td class="paramname"> <em>pInputString</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>pOutputBuffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>outputBufferSize</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a wchar_t string to an utf8 string, useful when using Windows in unicode mode. </p>
<p>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. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pInputString</em>&nbsp;</td><td>zero terminated input string. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>pOutputBuffer</em>&nbsp;</td><td>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. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>outputBufferSize</em>&nbsp;</td><td>size of your output buffer. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns true if successful, and false if not. If 'false' is returned, maybe your buffer was too small. </dd></dl>
</div>
</div>
<a class="anchor" id="adad19b8b2635a866577971754c9e5f90"></a><!-- doxytag: member="irrklang::operator*" ref="adad19b8b2635a866577971754c9e5f90" args="(const S scalar, const vec3d&lt; T &gt; &amp;vector)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class S , class T &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classirrklang_1_1vec3d.html">vec3d</a>&lt;T&gt; irrklang::operator* </td>
<td>(</td>
<td class="paramtype">const S&nbsp;</td>
<td class="paramname"> <em>scalar</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const vec3d&lt; T &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>vector</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ad74595519e5497bb71a0e4b98312866f"></a><!-- doxytag: member="irrklang::IK_DEGTORAD" ref="ad74595519e5497bb71a0e4b98312866f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> <a class="el" href="namespaceirrklang.html#ad74595519e5497bb71a0e4b98312866f">irrklang::IK_DEGTORAD</a> = <a class="el" href="namespaceirrklang.html#a5e56a9f6a51767cc5a1bf32919a2b801">IK_PI32</a> / 180.0f</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a738ade686859c0d98ce9edbd34c4fc1b"></a><!-- doxytag: member="irrklang::IK_DEGTORAD64" ref="a738ade686859c0d98ce9edbd34c4fc1b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a> <a class="el" href="namespaceirrklang.html#a738ade686859c0d98ce9edbd34c4fc1b">irrklang::IK_DEGTORAD64</a> = <a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">IK_PI64</a> / 180.0</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a5e56a9f6a51767cc5a1bf32919a2b801"></a><!-- doxytag: member="irrklang::IK_PI32" ref="a5e56a9f6a51767cc5a1bf32919a2b801" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> <a class="el" href="namespaceirrklang.html#a5e56a9f6a51767cc5a1bf32919a2b801">irrklang::IK_PI32</a> = 3.14159265359f</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a94bfcb20851dee7c360142f3db288538"></a><!-- doxytag: member="irrklang::IK_PI64" ref="a94bfcb20851dee7c360142f3db288538" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a> <a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">irrklang::IK_PI64</a> = 3.1415926535897932384626433832795028841971693993751</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a899ce8a298f44c2a5413c6dc0e87f640"></a><!-- doxytag: member="irrklang::IK_RADTODEG" ref="a899ce8a298f44c2a5413c6dc0e87f640" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> <a class="el" href="namespaceirrklang.html#a899ce8a298f44c2a5413c6dc0e87f640">irrklang::IK_RADTODEG</a> = 180.0f / IK_PI32</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a3f83fd863cffaac9ddde5ff73e72f116"></a><!-- doxytag: member="irrklang::IK_RADTODEG64" ref="a3f83fd863cffaac9ddde5ff73e72f116" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a1c98510aa3989b1780723e2fb15f7c3d">ik_f64</a> <a class="el" href="namespaceirrklang.html#a3f83fd863cffaac9ddde5ff73e72f116">irrklang::IK_RADTODEG64</a> = 180.0 / <a class="el" href="namespaceirrklang.html#a94bfcb20851dee7c360142f3db288538">IK_PI64</a></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a37e23177810db5355a4fb31038e71634"></a><!-- doxytag: member="irrklang::IK_ROUNDING_ERROR_32" ref="a37e23177810db5355a4fb31038e71634" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="namespaceirrklang.html#a6fa5a4dd85b476308461136072ef4e0f">ik_f32</a> <a class="el" href="namespaceirrklang.html#a37e23177810db5355a4fb31038e71634">irrklang::IK_ROUNDING_ERROR_32</a> = 0.000001f</td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1">
<address style="align: right;">
<small> </small>
</address>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="0"> <div align="left"><small><a href="http://www.ambiera.com/irrklang" target="_blank"><img src="irrklang.png" alt="irrKlang Audio Library" align="middle" border=0 width=88 height=30></a></small></div></td>
<td> <div align="left"><small><em><font size="2">The <a href="http://www.ambiera.com/irrklang" target="_blank">irrKlang
Engine</a> Documentation &copy; 2003-2018 by Nikolaus Gebhardt. Generated
by <a href="http://www.doxygen.org" target="_blank">Doxygen</a>
(1.6.1)</font></em></small></div></td>
</tr>
</table>
<address style="align: right;">
</address>
</body>
</html>