<!-- 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.h Source File</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><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><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="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<h1>irrKlang.h</h1><a href="irr_klang_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* irrKlang.h -- interface of the &apos;irrKlang&apos; library</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">  Copyright (C) 2002-2018 Nikolaus Gebhardt</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">  This software is provided &apos;as-is&apos;, without any express or implied</span>
<a name="l00006"></a>00006 <span class="comment">  warranty.  In no event will the authors be held liable for any damages</span>
<a name="l00007"></a>00007 <span class="comment">  arising from the use of this software.</span>
<a name="l00008"></a>00008 <span class="comment">*/</span>
<a name="l00009"></a>00009 
<a name="l00010"></a>00010 <span class="preprocessor">#ifndef __IRR_KLANG_H_INCLUDED__</span>
<a name="l00011"></a>00011 <span class="preprocessor"></span><span class="preprocessor">#define __IRR_KLANG_H_INCLUDED__</span>
<a name="l00012"></a>00012 <span class="preprocessor"></span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &quot;<a class="code" href="ik__irr_klang_types_8h.html">ik_irrKlangTypes.h</a>&quot;</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include &quot;<a class="code" href="ik__vec3d_8h.html">ik_vec3d.h</a>&quot;</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_ref_counted_8h.html">ik_IRefCounted.h</a>&quot;</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_virtual_ref_counted_8h.html">ik_IVirtualRefCounted.h</a>&quot;</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#include &quot;<a class="code" href="ik___e_sound_output_drivers_8h.html">ik_ESoundOutputDrivers.h</a>&quot;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;<a class="code" href="ik___e_sound_engine_options_8h.html">ik_ESoundEngineOptions.h</a>&quot;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;<a class="code" href="ik___e_stream_modes_8h.html">ik_EStreamModes.h</a>&quot;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &quot;<a class="code" href="ik___s_audio_stream_format_8h.html">ik_SAudioStreamFormat.h</a>&quot;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_engine_8h.html">ik_ISoundEngine.h</a>&quot;</span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_source_8h.html">ik_ISoundSource.h</a>&quot;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_8h.html">ik_ISound.h</a>&quot;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_audio_stream_8h.html">ik_IAudioStream.h</a>&quot;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_audio_stream_loader_8h.html">ik_IAudioStreamLoader.h</a>&quot;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_effect_control_8h.html">ik_ISoundEffectControl.h</a>&quot;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_stop_event_receiver_8h.html">ik_ISoundStopEventReceiver.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_file_factory_8h.html">ik_IFileFactory.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_file_reader_8h.html">ik_IFileReader.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_device_list_8h.html">ik_ISoundDeviceList.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_audio_recorder_8h.html">ik_IAudioRecorder.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ik___i_sound_mixed_output_receiver_8h.html">ik_ISoundMixedOutputReceiver.h</a>&quot;</span>
<a name="l00035"></a>00035 
<a name="l00037"></a><a class="code" href="irr_klang_8h.html#a3c47e8f6a51361741ab48b1cee6c4ba2">00037</a> <span class="preprocessor">#define IRR_KLANG_VERSION &quot;1.6.0&quot;</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00912"></a>00912 <span class="preprocessor">#if defined(IRRKLANG_STATIC)</span>
<a name="l00913"></a>00913 <span class="preprocessor"></span><span class="preprocessor">    #define IRRKLANG_API</span>
<a name="l00914"></a>00914 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00915"></a>00915 <span class="preprocessor"></span><span class="preprocessor">    #if (defined(WIN32) || defined(WIN64) || defined(_MSC_VER))</span>
<a name="l00916"></a>00916 <span class="preprocessor"></span><span class="preprocessor">        #ifdef IRRKLANG_EXPORTS</span>
<a name="l00917"></a>00917 <span class="preprocessor"></span><span class="preprocessor">        #define IRRKLANG_API __declspec(dllexport)</span>
<a name="l00918"></a>00918 <span class="preprocessor"></span><span class="preprocessor">        #else</span>
<a name="l00919"></a>00919 <span class="preprocessor"></span><span class="preprocessor">        #define IRRKLANG_API __declspec(dllimport)</span>
<a name="l00920"></a>00920 <span class="preprocessor"></span><span class="preprocessor">        #endif // IRRKLANG_EXPORT</span>
<a name="l00921"></a>00921 <span class="preprocessor"></span><span class="preprocessor">    #else</span>
<a name="l00922"></a><a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">00922</a> <span class="preprocessor"></span><span class="preprocessor">        #define IRRKLANG_API __attribute__((visibility(&quot;default&quot;)))</span>
<a name="l00923"></a>00923 <span class="preprocessor"></span><span class="preprocessor">    #endif // defined(WIN32) || defined(WIN64)</span>
<a name="l00924"></a>00924 <span class="preprocessor"></span><span class="preprocessor">#endif // IRRKLANG_STATIC</span>
<a name="l00925"></a>00925 <span class="preprocessor"></span>
<a name="l00926"></a>00926 <span class="preprocessor">#if defined(_STDCALL_SUPPORTED)</span>
<a name="l00927"></a>00927 <span class="preprocessor"></span><span class="preprocessor">#define IRRKLANGCALLCONV __stdcall  // Declare the calling convention.</span>
<a name="l00928"></a>00928 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00929"></a><a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">00929</a> <span class="preprocessor"></span><span class="preprocessor">#define IRRKLANGCALLCONV</span>
<a name="l00930"></a>00930 <span class="preprocessor"></span><span class="preprocessor">#endif // STDCALL_SUPPORTED</span>
<a name="l00931"></a>00931 <span class="preprocessor"></span>
<a name="l00933"></a>00933 <span class="keyword">namespace </span>irrklang
<a name="l00934"></a>00934 {
<a name="l00936"></a>00936 
<a name="l00952"></a>00952         <a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">IRRKLANG_API</a> ISoundEngine* <a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">IRRKLANGCALLCONV</a> <a class="code" href="namespaceirrklang.html#ad9829f898bc0665fdd2554a6f5c7ca1c" title="Creates an irrKlang device. The irrKlang device is the root object for using the...">createIrrKlangDevice</a>(
<a name="l00953"></a>00953                 <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe" title="An enumeration for all types of supported sound drivers.">E_SOUND_OUTPUT_DRIVER</a> driver = <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">ESOD_AUTO_DETECT</a>,
<a name="l00954"></a>00954                 <span class="keywordtype">int</span> options = <a class="code" href="namespaceirrklang.html#ac9155ff55b347df6e905462100762d7facca58ad3ee7e3c2e874bc4015f36f2a9" title="Default parameters when starting up the engine.">ESEO_DEFAULT_OPTIONS</a>,
<a name="l00955"></a>00955                 <span class="keyword">const</span> <span class="keywordtype">char</span>* deviceID = 0,
<a name="l00956"></a>00956                 <span class="keyword">const</span> <span class="keywordtype">char</span>* sdk_version_do_not_use = <a class="code" href="irr_klang_8h.html#a3c47e8f6a51361741ab48b1cee6c4ba2" title="irrKlang Version">IRR_KLANG_VERSION</a>);
<a name="l00957"></a>00957 
<a name="l00958"></a>00958 
<a name="l00960"></a>00960 
<a name="l00971"></a>00971         <a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">IRRKLANG_API</a> ISoundDeviceList* <a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">IRRKLANGCALLCONV</a> <a class="code" href="namespaceirrklang.html#a38d9a69bf54fd60e76e80e199e44faee" title="Creates a list of available sound devices for the driver type.">createSoundDeviceList</a>(
<a name="l00972"></a>00972                 <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe" title="An enumeration for all types of supported sound drivers.">E_SOUND_OUTPUT_DRIVER</a> driver = <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">ESOD_AUTO_DETECT</a>,
<a name="l00973"></a>00973                 <span class="keyword">const</span> <span class="keywordtype">char</span>* sdk_version_do_not_use = <a class="code" href="irr_klang_8h.html#a3c47e8f6a51361741ab48b1cee6c4ba2" title="irrKlang Version">IRR_KLANG_VERSION</a>);
<a name="l00974"></a>00974 
<a name="l00975"></a>00975 
<a name="l00977"></a>00977 
<a name="l00995"></a>00995         <a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">IRRKLANG_API</a> IAudioRecorder* <a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">IRRKLANGCALLCONV</a> <a class="code" href="namespaceirrklang.html#aaa4535359bd66857aaadb746cf7d8cec" title="Creates an irrKlang audio recording device. The IAudioRecorder is the root object...">createIrrKlangAudioRecorder</a>(
<a name="l00996"></a>00996                 ISoundEngine* irrKlangDeviceForPlayback,
<a name="l00997"></a>00997                 <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe" title="An enumeration for all types of supported sound drivers.">E_SOUND_OUTPUT_DRIVER</a> driver = <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">ESOD_AUTO_DETECT</a>,
<a name="l00998"></a>00998                 <span class="keyword">const</span> <span class="keywordtype">char</span>* deviceID = 0,
<a name="l00999"></a>00999                 <span class="keyword">const</span> <span class="keywordtype">char</span>* sdk_version_do_not_use = <a class="code" href="irr_klang_8h.html#a3c47e8f6a51361741ab48b1cee6c4ba2" title="irrKlang Version">IRR_KLANG_VERSION</a>);
<a name="l01000"></a>01000 
<a name="l01002"></a>01002 
<a name="l01012"></a>01012         <a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">IRRKLANG_API</a> ISoundDeviceList* <a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">IRRKLANGCALLCONV</a> <a class="code" href="namespaceirrklang.html#a0e8013b9e8f11231e69ce1da9457a339" title="Creates a list of available recording devices for the driver type.">createAudioRecorderDeviceList</a>(
<a name="l01013"></a>01013                 <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afe" title="An enumeration for all types of supported sound drivers.">E_SOUND_OUTPUT_DRIVER</a> driver = <a class="code" href="namespaceirrklang.html#a77f31ac02a7d33fe94807be709f72afea8cc9863f3b410698313b8637721e51ec" title="Autodetects the best sound driver for the system.">ESOD_AUTO_DETECT</a>,
<a name="l01014"></a>01014                 <span class="keyword">const</span> <span class="keywordtype">char</span>* sdk_version_do_not_use = <a class="code" href="irr_klang_8h.html#a3c47e8f6a51361741ab48b1cee6c4ba2" title="irrKlang Version">IRR_KLANG_VERSION</a>);
<a name="l01015"></a>01015 
<a name="l01016"></a>01016 
<a name="l01018"></a>01018 
<a name="l01028"></a>01028         <a class="code" href="irr_klang_8h.html#a46984c40d70515d79d72043bfbd554d5">IRRKLANG_API</a> <span class="keywordtype">bool</span> <a class="code" href="irr_klang_8h.html#abd61a1fa49408e803e5aa3049fdf43f8">IRRKLANGCALLCONV</a> <a class="code" href="namespaceirrklang.html#a2552f41aac247b77e0f1287c28744cd7" title="Converts a wchar_t string to an utf8 string, useful when using Windows in unicode...">makeUTF8fromUTF16string</a>(
<a name="l01029"></a>01029                 <span class="keyword">const</span> <span class="keywordtype">wchar_t</span>* pInputString, <span class="keywordtype">char</span>* pOutputBuffer, <span class="keywordtype">int</span> outputBufferSize);
<a name="l01030"></a>01030 
<a name="l01031"></a>01031 
<a name="l01032"></a>01032 } <span class="comment">// end namespace irrklang</span>
<a name="l01033"></a>01033 
<a name="l01034"></a>01034 
<a name="l01039"></a>01039 <span class="preprocessor">#endif</span>
<a name="l01040"></a>01040 <span class="preprocessor"></span>
</pre></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>