Compare commits

..

No commits in common. "c6561fb70a475ae62752748239a5ccf81104ea2c" and "abd8e73f6b1791a04725c21d497fc302c6fc42cf" have entirely different histories.

28 changed files with 512 additions and 1061 deletions

View File

@ -93,8 +93,7 @@ $(document).ready(function(){initNavTree('audio_8h.html',''); initResizable(); }
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<a href="#define-members">Macros</a> </div>
<div class="headertitle"><div class="title">audio.h File Reference</div></div>
</div><!--header-->
<div class="contents">
@ -104,8 +103,6 @@ $(document).ready(function(){initNavTree('audio_8h.html',''); initResizable(); }
<div class="textblock"><code>#include &lt;<a class="el" href="gf__pre_8h_source.html">gf_pre.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="gf__macro_8h_source.html">gf_macro.h</a>&gt;</code><br />
<code>#include &lt;miniaudio.h&gt;</code><br />
<code>#include &lt;jar_xm.h&gt;</code><br />
<code>#include &lt;jar_mod.h&gt;</code><br />
<code>#include &lt;<a class="el" href="core_8h_source.html">gf_type/core.h</a>&gt;</code><br />
</div>
<p><a href="audio_8h_source.html">Go to the source code of this file.</a></p>
@ -124,11 +121,6 @@ Macros</h2></td></tr>
<tr class="memitem:a6d19d179e9a386872980ec047b37345c" id="r_a6d19d179e9a386872980ec047b37345c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>&#160;&#160;&#160;64</td></tr>
<tr class="memdesc:a6d19d179e9a386872980ec047b37345c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max decoders audio interface can handle. <br /></td></tr>
<tr class="separator:a6d19d179e9a386872980ec047b37345c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a6fbf4c2ca3f12771ae05716f4b356a9c" id="r_a6fbf4c2ca3f12771ae05716f4b356a9c"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a6fbf4c2ca3f12771ae05716f4b356a9c">gf_audio_id_t</a></td></tr>
<tr class="separator:a6fbf4c2ca3f12771ae05716f4b356a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Type definitions related to audio interface. </p>
@ -149,24 +141,7 @@ Typedefs</h2></td></tr>
<p>Max decoders audio interface can handle. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00033">33</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a6fbf4c2ca3f12771ae05716f4b356a9c" name="a6fbf4c2ca3f12771ae05716f4b356a9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fbf4c2ca3f12771ae05716f4b356a9c">&#9670;&#160;</a></span>gf_audio_id_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int gf_audio_id_t</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00013">13</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00029">29</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>

View File

@ -106,61 +106,48 @@ $(document).ready(function(){initNavTree('audio_8h_source.html',''); initResizab
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;<a class="code" href="gf__pre_8h.html">gf_pre.h</a>&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;<a class="code" href="gf__macro_8h.html">gf_macro.h</a>&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">typedef</span> <span class="keywordtype">int</span> gf_audio_id_t;</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifdef GF_EXPOSE_AUDIO</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">/* External library */</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;miniaudio.h&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;jar_xm.h&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;jar_mod.h&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/* Engine */</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;<a class="code" href="core_8h.html">gf_type/core.h</a>&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/* Standard */</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c"> 33</a></span><span class="preprocessor">#define GF_AUDIO_MAX_DECODERS 64</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><a class="code hl_define" href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a>(audio_decoder, {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* <a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> ma_decoder_config <a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> ma_decoder* <a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> jar_xm_context_t* <a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a>;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> jar_mod_context_t* <a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01"> 69</a></span>});</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><a class="code hl_define" href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a>(<a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a>, {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_struct" href="structgf__engine__t.html">gf_engine_t</a>* engine;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> ma_device_config device_config;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> ma_device* device;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> <a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>[<a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>];</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> ma_mutex* mutex;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac"> 97</a></span>});</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aaudio_8h_html_a6d19d179e9a386872980ec047b37345c"><div class="ttname"><a href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a></div><div class="ttdeci">#define GF_AUDIO_MAX_DECODERS</div><div class="ttdoc">Max decoders audio interface can handle.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00033">audio.h:33</a></div></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef GF_EXPOSE_AUDIO</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">/* External library */</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;miniaudio.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">/* Engine */</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;<a class="code" href="core_8h.html">gf_type/core.h</a>&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/* Standard */</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c"> 29</a></span><span class="preprocessor">#define GF_AUDIO_MAX_DECODERS 64</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><a class="code hl_define" href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a>(audio_decoder, {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> ma_decoder_config <a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> ma_decoder* <a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581"> 49</a></span>});</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><a class="code hl_define" href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a>(audio, {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_struct" href="structgf__engine__t.html">gf_engine_t</a>* engine;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> ma_device_config device_config;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> ma_device* device;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> <a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>[<a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>];</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac"> 73</a></span>});</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aaudio_8h_html_a6d19d179e9a386872980ec047b37345c"><div class="ttname"><a href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a></div><div class="ttdeci">#define GF_AUDIO_MAX_DECODERS</div><div class="ttdoc">Max decoders audio interface can handle.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00029">audio.h:29</a></div></div>
<div class="ttc" id="acore_8h_html"><div class="ttname"><a href="core_8h.html">core.h</a></div><div class="ttdoc">Type definitions related to core.</div></div>
<div class="ttc" id="agf__macro_8h_html"><div class="ttname"><a href="gf__macro_8h.html">gf_macro.h</a></div><div class="ttdoc">Macro.</div></div>
<div class="ttc" id="agf__macro_8h_html_a018031ff5fba22b9d5052a55f8c9a377"><div class="ttname"><a href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a></div><div class="ttdeci">#define GF_DECLARE_TYPE(n, b)</div><div class="ttdoc">Macro to define engine type shorter.</div><div class="ttdef"><b>Definition</b> <a href="gf__macro_8h_source.html#l00180">gf_macro.h:180</a></div></div>
<div class="ttc" id="agf__pre_8h_html"><div class="ttname"><a href="gf__pre_8h.html">gf_pre.h</a></div><div class="ttdoc">Required headers before anything.</div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html"><div class="ttname"><a href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a></div><div class="ttdoc">Audio decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a235fb4ae132de9acce9b313bba264393"><div class="ttname"><a href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">gf_audio_decoder_t::xm</a></div><div class="ttdeci">jar_xm_context_t * xm</div><div class="ttdoc">XM context.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a3bf94e1820e821535b56790c58c970a5"><div class="ttname"><a href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">gf_audio_decoder_t::decoder_config</a></div><div class="ttdeci">ma_decoder_config decoder_config</div><div class="ttdoc">miniaudio decoder config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a570e988d60764a3ce263c8185081886b"><div class="ttname"><a href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">gf_audio_decoder_t::used</a></div><div class="ttdeci">int used</div><div class="ttdoc">1 if used, -1 if used but paused, otherwise 0</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a68358269fb9d3e8501f3b2c861e08663"><div class="ttname"><a href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">gf_audio_decoder_t::samples</a></div><div class="ttdeci">int samples</div><div class="ttdoc">Remaining samples.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a85b2f1e6b87106f02d51ea0b91989ffc"><div class="ttname"><a href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">gf_audio_decoder_t::mod</a></div><div class="ttdeci">jar_mod_context_t * mod</div><div class="ttdoc">MOD context.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ac4aa6a2898558edf21a109d8184cdd01"><div class="ttname"><a href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">gf_audio_decoder_t::audio</a></div><div class="ttdeci">gf_audio_t * audio</div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ad67a57c8f3ddf0b79b18e0f1c2754581"><div class="ttname"><a href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">gf_audio_decoder_t::decoder</a></div><div class="ttdeci">ma_decoder * decoder</div><div class="ttdoc">miniaudio decoder</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html"><div class="ttname"><a href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a></div><div class="ttdoc">Audio decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a3bf94e1820e821535b56790c58c970a5"><div class="ttname"><a href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">gf_audio_decoder_t::decoder_config</a></div><div class="ttdeci">ma_decoder_config decoder_config</div><div class="ttdoc">miniaudio decoder config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a570e988d60764a3ce263c8185081886b"><div class="ttname"><a href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">gf_audio_decoder_t::used</a></div><div class="ttdeci">int used</div><div class="ttdoc">1 if used, otherwise 0</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ad67a57c8f3ddf0b79b18e0f1c2754581"><div class="ttname"><a href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">gf_audio_decoder_t::decoder</a></div><div class="ttdeci">ma_decoder * decoder</div><div class="ttdoc">miniaudio decoder</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__engine__t_html"><div class="ttname"><a href="structgf__engine__t.html">gf_engine_t</a></div><div class="ttdoc">Engine instance.</div><div class="ttdef"><b>Definition</b> <a href="core_8h_source.html#l00046">core.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('client_8h_source.html',''); initResiza
<div class="ttc" id="agf__macro_8h_html_a018031ff5fba22b9d5052a55f8c9a377"><div class="ttname"><a href="gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377">GF_DECLARE_TYPE</a></div><div class="ttdeci">#define GF_DECLARE_TYPE(n, b)</div><div class="ttdoc">Macro to define engine type shorter.</div><div class="ttdef"><b>Definition</b> <a href="gf__macro_8h_source.html#l00180">gf_macro.h:180</a></div></div>
<div class="ttc" id="agf__pre_8h_html"><div class="ttname"><a href="gf__pre_8h.html">gf_pre.h</a></div><div class="ttdoc">Required headers before anything.</div></div>
<div class="ttc" id="ainput_8h_html"><div class="ttname"><a href="input_8h.html">input.h</a></div><div class="ttdoc">Type definitions related to input interface.</div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__client__t_html"><div class="ttname"><a href="structgf__client__t.html">gf_client_t</a></div><div class="ttdoc">Client interface.</div><div class="ttdef"><b>Definition</b> <a href="client_8h_source.html#l00048">client.h:48</a></div></div>
<div class="ttc" id="astructgf__client__t_html_a363cb3993e177565b9e22c9df5d5ce2c"><div class="ttname"><a href="structgf__client__t.html#a363cb3993e177565b9e22c9df5d5ce2c">gf_client_t::draw</a></div><div class="ttdeci">gf_draw_t * draw</div><div class="ttdoc">Drawing interface.</div><div class="ttdef"><b>Definition</b> <a href="client_8h_source.html#l00048">client.h:48</a></div></div>
<div class="ttc" id="astructgf__client__t_html_ac3381045a3080752363026d7d6607435"><div class="ttname"><a href="structgf__client__t.html#ac3381045a3080752363026d7d6607435">gf_client_t::audio</a></div><div class="ttdeci">gf_audio_t * audio</div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="client_8h_source.html#l00048">client.h:48</a></div></div>

View File

@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>a&#160;:&#160;<a class="el" href="structgf__graphic__color__t.html#a55cf386eda83f15c1aa811626653141c">gf_graphic_color_t</a></li>
<li>area&#160;:&#160;<a class="el" href="structgf__gui__t.html#aa9c0a86d1d6ed76b52065e64f02ef8d7">gf_gui_t</a></li>
<li>audio&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">gf_audio_decoder_t</a>, <a class="el" href="structgf__client__t.html#ac3381045a3080752363026d7d6607435">gf_client_t</a></li>
<li>audio&#160;:&#160;<a class="el" href="structgf__client__t.html#ac3381045a3080752363026d7d6607435">gf_client_t</a></li>
</ul>
@ -179,11 +179,9 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
<li>major&#160;:&#160;<a class="el" href="structgf__version__t.html#a18c4ea6d16bd4d27da71586779ea3295">gf_version_t</a></li>
<li>mesh&#160;:&#160;<a class="el" href="structgf__model__t.html#aa28477a09739d0ef7566532fdb62aa06">gf_model_t</a></li>
<li>minor&#160;:&#160;<a class="el" href="structgf__version__t.html#a573839ca44261b9ccbd73e43be57d326">gf_version_t</a></li>
<li>mod&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">gf_audio_decoder_t</a></li>
<li>mouse_flag&#160;:&#160;<a class="el" href="structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1">gf_input_t</a></li>
<li>mouse_x&#160;:&#160;<a class="el" href="structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5">gf_input_t</a></li>
<li>mouse_y&#160;:&#160;<a class="el" href="structgf__input__t.html#ac47540120552de68249a985e09d7bd9f">gf_input_t</a></li>
<li>mutex&#160;:&#160;<a class="el" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">gf_audio_t</a></li>
</ul>
@ -203,7 +201,6 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>samples&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">gf_audio_decoder_t</a></li>
<li>server&#160;:&#160;<a class="el" href="structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390">gf_engine_t</a></li>
</ul>
@ -232,7 +229,6 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
<li>x&#160;:&#160;<a class="el" href="structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587">gf_draw_t</a>, <a class="el" href="structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9">gf_font_bbox_t</a>, <a class="el" href="structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb">gf_gui_component_t</a></li>
<li>xm&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">gf_audio_decoder_t</a></li>
</ul>

View File

@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>a&#160;:&#160;<a class="el" href="structgf__graphic__color__t.html#a55cf386eda83f15c1aa811626653141c">gf_graphic_color_t</a></li>
<li>area&#160;:&#160;<a class="el" href="structgf__gui__t.html#aa9c0a86d1d6ed76b52065e64f02ef8d7">gf_gui_t</a></li>
<li>audio&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">gf_audio_decoder_t</a>, <a class="el" href="structgf__client__t.html#ac3381045a3080752363026d7d6607435">gf_client_t</a></li>
<li>audio&#160;:&#160;<a class="el" href="structgf__client__t.html#ac3381045a3080752363026d7d6607435">gf_client_t</a></li>
</ul>
@ -179,11 +179,9 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
<li>major&#160;:&#160;<a class="el" href="structgf__version__t.html#a18c4ea6d16bd4d27da71586779ea3295">gf_version_t</a></li>
<li>mesh&#160;:&#160;<a class="el" href="structgf__model__t.html#aa28477a09739d0ef7566532fdb62aa06">gf_model_t</a></li>
<li>minor&#160;:&#160;<a class="el" href="structgf__version__t.html#a573839ca44261b9ccbd73e43be57d326">gf_version_t</a></li>
<li>mod&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">gf_audio_decoder_t</a></li>
<li>mouse_flag&#160;:&#160;<a class="el" href="structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1">gf_input_t</a></li>
<li>mouse_x&#160;:&#160;<a class="el" href="structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5">gf_input_t</a></li>
<li>mouse_y&#160;:&#160;<a class="el" href="structgf__input__t.html#ac47540120552de68249a985e09d7bd9f">gf_input_t</a></li>
<li>mutex&#160;:&#160;<a class="el" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">gf_audio_t</a></li>
</ul>
@ -203,7 +201,6 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>samples&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">gf_audio_decoder_t</a></li>
<li>server&#160;:&#160;<a class="el" href="structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390">gf_engine_t</a></li>
</ul>
@ -232,7 +229,6 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl
<h3><a id="index_x" name="index_x"></a>- x -</h3><ul>
<li>x&#160;:&#160;<a class="el" href="structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587">gf_draw_t</a>, <a class="el" href="structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9">gf_font_bbox_t</a>, <a class="el" href="structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb">gf_gui_component_t</a></li>
<li>xm&#160;:&#160;<a class="el" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">gf_audio_decoder_t</a></li>
</ul>

View File

@ -119,295 +119,157 @@ $(document).ready(function(){initNavTree('gf__audio_8c_source.html',''); initRes
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;<a class="code" href="math_8h.html">math.h</a>&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">const</span> <span class="keywordtype">char</span>* gf_audio_mod_sig[] = {<span class="stringliteral">&quot;M!K!&quot;</span>, <span class="stringliteral">&quot;M.K.&quot;</span>, <span class="stringliteral">&quot;FLT4&quot;</span>, <span class="stringliteral">&quot;FLT8&quot;</span>, <span class="stringliteral">&quot;4CHN&quot;</span>, <span class="stringliteral">&quot;6CHN&quot;</span>, <span class="stringliteral">&quot;8CHN&quot;</span>, <span class="stringliteral">&quot;10CH&quot;</span>, <span class="stringliteral">&quot;12CH&quot;</span>, <span class="stringliteral">&quot;14CH&quot;</span>, <span class="stringliteral">&quot;16CH&quot;</span>, <span class="stringliteral">&quot;18CH&quot;</span>, <span class="stringliteral">&quot;20CH&quot;</span>, <span class="stringliteral">&quot;22CH&quot;</span>, <span class="stringliteral">&quot;24CH&quot;</span>, <span class="stringliteral">&quot;26CH&quot;</span>, <span class="stringliteral">&quot;28CH&quot;</span>, <span class="stringliteral">&quot;30CH&quot;</span>, <span class="stringliteral">&quot;32CH&quot;</span>};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keywordtype">void</span> gf_audio_callback(ma_device* dev, <span class="keywordtype">void</span>* output, <span class="keyword">const</span> <span class="keywordtype">void</span>* input, ma_uint32 frame) {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> gf_audio_id_t i;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio = dev-&gt;pUserData;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> ma_int16* out = (ma_int16*)output;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">float</span>* tmp = malloc(<span class="keyword">sizeof</span>(*tmp) * frame * 2);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">int</span> unlocked = 0;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">for</span>(i = 0; i &lt; frame; i++) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> tmp[2 * i + 0] = 0;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> tmp[2 * i + 1] = 0;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> }</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> ma_mutex_lock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 1 &amp;&amp; audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> != NULL) {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> ma_uint64 readframe;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordtype">int</span> j;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ma_int16* r = malloc(<span class="keyword">sizeof</span>(*r) * frame * 2);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> ma_decoder_read_pcm_frames(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>, r, frame, &amp;readframe);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span>(j = 0; j &lt; readframe; j++) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> tmp[2 * j + 0] += (double)r[2 * j + 0] / 32768.0;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> tmp[2 * j + 1] += (double)r[2 * j + 1] / 32768.0;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> free(r);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">if</span>(frame &gt; readframe) {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> unlocked = 1;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> gf_audio_decoder_destroy(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i]);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 1 &amp;&amp; audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a> != NULL) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordtype">int</span> j;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">int</span> gotframe;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">float</span>* r = malloc(<span class="keyword">sizeof</span>(*r) * frame * 2);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> jar_xm_generate_samples(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a>, r, frame);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> gotframe = audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> &gt; frame ? frame : audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">for</span>(j = 0; j &lt; gotframe; j++) {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> tmp[2 * j + 0] += (double)r[2 * j + 0];</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> tmp[2 * j + 1] += (double)r[2 * j + 1];</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> free(r);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> -= frame;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> &lt;= 0) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> unlocked = 1;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> gf_audio_decoder_destroy(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i]);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 1 &amp;&amp; audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> != NULL) {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordtype">int</span> j;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordtype">int</span> gotframe;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> ma_int16* r = malloc(<span class="keyword">sizeof</span>(*r) * frame * 2);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> jar_mod_fillbuffer(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>, r, frame, NULL);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> gotframe = audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> &gt; frame ? frame : audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a>;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">for</span>(j = 0; j &lt; gotframe; j++) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> tmp[2 * j + 0] += (double)r[2 * j + 0] / 32768.0;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> tmp[2 * j + 1] += (double)r[2 * j + 1] / 32768.0;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> free(r);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> -= frame;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> &lt;= 0) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> unlocked = 1;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> gf_audio_decoder_destroy(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i]);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> }</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span>(!unlocked) ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keywordtype">void</span> gf_audio_callback(ma_device* dev, <span class="keywordtype">void</span>* output, <span class="keyword">const</span> <span class="keywordtype">void</span>* input, ma_uint32 frame) {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio = dev-&gt;pUserData;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> ma_int16* out = (ma_int16*)output;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">float</span>* tmp = malloc(<span class="keyword">sizeof</span>(*tmp) * frame * 2);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">for</span>(i = 0; i &lt; frame; i++) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> tmp[2 * i + 0] = 0;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> tmp[2 * i + 1] = 0;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> }</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 1) {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> ma_uint64 readframe;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">int</span> j;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> ma_int16* r = malloc(<span class="keyword">sizeof</span>(*r) * frame * 2);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> ma_decoder_read_pcm_frames(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>, r, frame, &amp;readframe);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">for</span>(j = 0; j &lt; readframe; j++) {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> tmp[2 * j + 0] += (double)r[2 * j + 0] / 32768.0;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> tmp[2 * j + 1] += (double)r[2 * j + 1] / 32768.0;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> }</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> free(r);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span>(frame &gt; readframe) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> ma_decoder_uninit(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 0;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">for</span>(i = 0; i &lt; frame; i++) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> out[2 * i + 0] = tmp[2 * i + 0] * 32768;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> out[2 * i + 1] = tmp[2 * i + 1] * 32768;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> free(tmp);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962"> 59</a></span><span class="keywordtype">int</span> gf_audio_load(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 0) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>));</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span>(ma_decoder_init_memory(data, size, &amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a>, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>) == MA_SUCCESS) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 1;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>}</div>
</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="}">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe"> 76</a></span><span class="keywordtype">int</span> gf_audio_load_file(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">char</span>* path) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> FILE* f = fopen(path, <span class="stringliteral">&quot;rb&quot;</span>);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">size_t</span> sz;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">int</span> st;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span>(f == NULL) <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> fseek(f, 0, SEEK_END);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> sz = ftell(f);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> fseek(f, 0, SEEK_SET);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> data = malloc(sz);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> fread(data, sz, 1, f);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> st = gf_audio_load(audio, data, sz);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">for</span>(i = 0; i &lt; frame; i++) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> out[2 * i + 0] = tmp[2 * i + 0] * 32768;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> out[2 * i + 1] = tmp[2 * i + 1] * 32768;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> free(tmp);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>}</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="foldopen" id="foldopen00097" data-start="{" data-end="}">
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2"> 97</a></span>gf_audio_id_t gf_audio_load(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size) {</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> gf_audio_id_t i;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> ma_mutex_lock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> == 0) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">int</span> xm_cond = size &gt; 37 &amp;&amp; memcmp(data, <span class="stringliteral">&quot;Extended Module: &quot;</span>, 17) == 0 &amp;&amp; ((<span class="keywordtype">char</span>*)data)[37] == 0x1a;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">int</span> mod_cond = size &gt; 1080;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span>(mod_cond) {</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">int</span> j;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">int</span> mod_sig_cond = 0;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">for</span>(j = 0; j &lt; <span class="keyword">sizeof</span>(gf_audio_mod_sig) / <span class="keyword">sizeof</span>(gf_audio_mod_sig[0]); j++) {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> mod_sig_cond = mod_sig_cond || (memcmp(data + 1080, gf_audio_mod_sig[j], 4) == 0);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> mod_cond = mod_cond &amp;&amp; mod_sig_cond;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span>(xm_cond) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">if</span>(jar_xm_create_context_safe(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a>, data, size, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate) == 0) {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> = jar_xm_get_remaining_samples(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a>);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = -1;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a> = NULL;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(mod_cond) {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>));</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> jar_mod_init(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> jar_mod_setcfg(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate, 16, 1, 0, 0);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">if</span>(jar_mod_load(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>, (<span class="keywordtype">void</span>*)data, size)) {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a> = jar_mod_max_samples(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = -1;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> = NULL;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>));</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span>(ma_decoder_init_memory(data, size, &amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a>, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>) == MA_SUCCESS) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = -1;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> i;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> fclose(f);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> st;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>}</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="foldopen" id="foldopen00095" data-start="{" data-end="}">
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330"> 95</a></span><a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* gf_audio_create(<a class="code hl_struct" href="structgf__engine__t.html">gf_engine_t</a>* engine) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio = malloc(<span class="keyword">sizeof</span>(*audio));</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> memset(audio, 0, <span class="keyword">sizeof</span>(*audio));</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">engine</a> = engine;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a> = ma_device_config_init(ma_device_type_playback);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.format = ma_format_s16;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.channels = 2;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate = 44100;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.dataCallback = gf_audio_callback;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.pUserData = audio;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 0;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a> = ma_decoder_config_init(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.format, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.channels, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>));</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">if</span>(ma_device_init(NULL, &amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>) != MA_SUCCESS) {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Failed to open playback device&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> = NULL;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> gf_audio_destroy(audio);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span>(ma_device_start(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>) != MA_SUCCESS) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Failed to start playback device&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> gf_audio_destroy(audio);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Audio interface started&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">return</span> audio;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>}</div>
</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="foldopen" id="foldopen00135" data-start="{" data-end="}">
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b"> 135</a></span><span class="keywordtype">void</span> gf_audio_destroy(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio) {</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> != NULL) {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> ma_device_uninit(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> != NULL) {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> ma_decoder_uninit(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">engine</a>, <span class="stringliteral">&quot;Destroyed audio interface&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> free(audio);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>}</div>
</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d"> 151</a></span>gf_audio_id_t gf_audio_load_file(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">char</span>* path) {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> FILE* f = fopen(path, <span class="stringliteral">&quot;rb&quot;</span>);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">size_t</span> sz;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> gf_audio_id_t st;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span>(f == NULL) <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> fseek(f, 0, SEEK_END);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> sz = ftell(f);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> fseek(f, 0, SEEK_SET);</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> data = malloc(sz);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> fread(data, sz, 1, f);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> st = gf_audio_load(audio, data, sz);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> fclose(f);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> st;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span>}</div>
</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="foldopen" id="foldopen00170" data-start="{" data-end="}">
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330"> 170</a></span><a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* gf_audio_create(<a class="code hl_struct" href="structgf__engine__t.html">gf_engine_t</a>* engine) {</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio = malloc(<span class="keyword">sizeof</span>(*audio));</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> memset(audio, 0, <span class="keyword">sizeof</span>(*audio));</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">engine</a> = engine;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a> = ma_device_config_init(ma_device_type_playback);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.format = ma_format_s16;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.channels = 2;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate = 44100;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.dataCallback = gf_audio_callback;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.pUserData = audio;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 0;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a> = NULL;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a> = NULL;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> = NULL;</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a> = ma_decoder_config_init(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.format, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.playback.channels, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>.sampleRate);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> }</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>));</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">if</span>(ma_device_init(NULL, &amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">device_config</a>, audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>) != MA_SUCCESS) {</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Failed to open playback device&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> = NULL;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> gf_audio_destroy(audio);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a> = malloc(<span class="keyword">sizeof</span>(*audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>));</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">if</span>(ma_mutex_init(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>) != MA_SUCCESS) {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Failed to create mutex&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a> = NULL;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> gf_audio_destroy(audio);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> }</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">if</span>(ma_device_start(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>) != MA_SUCCESS) {</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Failed to start playback device&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> gf_audio_destroy(audio);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i].<a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a> = audio;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> }</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(engine, <span class="stringliteral">&quot;Audio interface started, max %d decoders&quot;</span>, <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">return</span> audio;</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span>}</div>
</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="foldopen" id="foldopen00226" data-start="{" data-end="}">
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb"> 226</a></span><span class="keywordtype">void</span> gf_audio_decoder_destroy(<a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>* decoder) {</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> ma_mutex_lock(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a>-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">if</span>(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> != NULL) {</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> ma_decoder_uninit(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> free(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a>);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a> = NULL;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> }</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">if</span>(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a> != NULL) {</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> jar_xm_free_context(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a>);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a> = NULL;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> }</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span>(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> != NULL) {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> jar_mod_unload(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> free(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a>);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a> = NULL;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 0;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> ma_mutex_unlock(decoder-&gt;<a class="code hl_variable" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a>-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span>}</div>
</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="foldopen" id="foldopen00246" data-start="{" data-end="}">
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b"> 246</a></span><span class="keywordtype">void</span> gf_audio_destroy(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio) {</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a> != NULL) {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> ma_device_uninit(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">device</a>);</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> }</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a> != NULL) {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> ma_mutex_uninit(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> free(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code hl_define" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a>; i++) {</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> gf_audio_decoder_destroy(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[i]);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> }</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_define" href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">engine</a>, <span class="stringliteral">&quot;Destroyed audio interface&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> free(audio);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>}</div>
</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="foldopen" id="foldopen00263" data-start="{" data-end="}">
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b"> 263</a></span><span class="keywordtype">void</span> gf_audio_resume(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> ma_mutex_lock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[<span class="keywordtype">id</span>].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> != 0) audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[id].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = 1;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span>}</div>
</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80"> 269</a></span><span class="keywordtype">void</span> gf_audio_pause(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>) {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> ma_mutex_lock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span>(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[<span class="keywordtype">id</span>].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> != 0) audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[id].<a class="code hl_variable" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a> = -1;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> ma_mutex_unlock(audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a>);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span>}</div>
</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1"> 275</a></span><span class="keywordtype">void</span> gf_audio_stop(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>) { gf_audio_decoder_destroy(&amp;audio-&gt;<a class="code hl_variable" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a>[<span class="keywordtype">id</span>]); }</div>
<div class="ttc" id="aaudio_8h_html_a6d19d179e9a386872980ec047b37345c"><div class="ttname"><a href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a></div><div class="ttdeci">#define GF_AUDIO_MAX_DECODERS</div><div class="ttdoc">Max decoders audio interface can handle.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00033">audio.h:33</a></div></div>
<div class="ttc" id="aaudio_8h_html_a6d19d179e9a386872980ec047b37345c"><div class="ttname"><a href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">GF_AUDIO_MAX_DECODERS</a></div><div class="ttdeci">#define GF_AUDIO_MAX_DECODERS</div><div class="ttdoc">Max decoders audio interface can handle.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00029">audio.h:29</a></div></div>
<div class="ttc" id="agf__audio_8h_html"><div class="ttname"><a href="gf__audio_8h.html">gf_audio.h</a></div><div class="ttdoc">Audio interface.</div></div>
<div class="ttc" id="agf__log_8h_html"><div class="ttname"><a href="gf__log_8h.html">gf_log.h</a></div><div class="ttdoc">Logger.</div></div>
<div class="ttc" id="agf__log_8h_html_a165a2d1cecbdd974b4a44450011bb84a"><div class="ttname"><a href="gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a">gf_log_function</a></div><div class="ttdeci">#define gf_log_function(engine, fmt,...)</div><div class="ttdoc">Output log with line number and function name.</div><div class="ttdef"><b>Definition</b> <a href="gf__log_8h_source.html#l00026">gf_log.h:26</a></div></div>
<div class="ttc" id="agf__pre_8h_html"><div class="ttname"><a href="gf__pre_8h.html">gf_pre.h</a></div><div class="ttdoc">Required headers before anything.</div></div>
<div class="ttc" id="amath_8h_html"><div class="ttname"><a href="math_8h.html">math.h</a></div><div class="ttdoc">Type definitions related to math.</div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html"><div class="ttname"><a href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a></div><div class="ttdoc">Audio decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a235fb4ae132de9acce9b313bba264393"><div class="ttname"><a href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">gf_audio_decoder_t::xm</a></div><div class="ttdeci">jar_xm_context_t * xm</div><div class="ttdoc">XM context.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a3bf94e1820e821535b56790c58c970a5"><div class="ttname"><a href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">gf_audio_decoder_t::decoder_config</a></div><div class="ttdeci">ma_decoder_config decoder_config</div><div class="ttdoc">miniaudio decoder config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a570e988d60764a3ce263c8185081886b"><div class="ttname"><a href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">gf_audio_decoder_t::used</a></div><div class="ttdeci">int used</div><div class="ttdoc">1 if used, -1 if used but paused, otherwise 0</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a68358269fb9d3e8501f3b2c861e08663"><div class="ttname"><a href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">gf_audio_decoder_t::samples</a></div><div class="ttdeci">int samples</div><div class="ttdoc">Remaining samples.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a85b2f1e6b87106f02d51ea0b91989ffc"><div class="ttname"><a href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">gf_audio_decoder_t::mod</a></div><div class="ttdeci">jar_mod_context_t * mod</div><div class="ttdoc">MOD context.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ac4aa6a2898558edf21a109d8184cdd01"><div class="ttname"><a href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">gf_audio_decoder_t::audio</a></div><div class="ttdeci">gf_audio_t * audio</div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ad67a57c8f3ddf0b79b18e0f1c2754581"><div class="ttname"><a href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">gf_audio_decoder_t::decoder</a></div><div class="ttdeci">ma_decoder * decoder</div><div class="ttdoc">miniaudio decoder</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a0e3429dd984c065144f431bf34e2b4c4"><div class="ttname"><a href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">gf_audio_t::device_config</a></div><div class="ttdeci">ma_device_config device_config</div><div class="ttdoc">miniaudio device config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a2dafdd739c5d3b1a7ced62d76788a1f9"><div class="ttname"><a href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">gf_audio_t::device</a></div><div class="ttdeci">ma_device * device</div><div class="ttdoc">miniaudio device</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a8dc02290f6f59821db420f365985f592"><div class="ttname"><a href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">gf_audio_t::mutex</a></div><div class="ttdeci">ma_mutex * mutex</div><div class="ttdoc">Mutex.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a9494a0d7083e3eff5ba66d7d26cce1ac"><div class="ttname"><a href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">gf_audio_t::decoder</a></div><div class="ttdeci">gf_audio_decoder_t decoder[64]</div><div class="ttdoc">Decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_ac838983342cbe6cb03ceea6d763116a5"><div class="ttname"><a href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">gf_audio_t::engine</a></div><div class="ttdeci">gf_engine_t * engine</div><div class="ttdoc">Engine instance.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a3bf94e1820e821535b56790c58c970a5"><div class="ttname"><a href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">gf_audio_decoder_t::decoder_config</a></div><div class="ttdeci">ma_decoder_config decoder_config</div><div class="ttdoc">miniaudio decoder config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_a570e988d60764a3ce263c8185081886b"><div class="ttname"><a href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">gf_audio_decoder_t::used</a></div><div class="ttdeci">int used</div><div class="ttdoc">1 if used, otherwise 0</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html_ad67a57c8f3ddf0b79b18e0f1c2754581"><div class="ttname"><a href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">gf_audio_decoder_t::decoder</a></div><div class="ttdeci">ma_decoder * decoder</div><div class="ttdoc">miniaudio decoder</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00049">audio.h:49</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a0e3429dd984c065144f431bf34e2b4c4"><div class="ttname"><a href="structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4">gf_audio_t::device_config</a></div><div class="ttdeci">ma_device_config device_config</div><div class="ttdoc">miniaudio device config</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a2dafdd739c5d3b1a7ced62d76788a1f9"><div class="ttname"><a href="structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9">gf_audio_t::device</a></div><div class="ttdeci">ma_device * device</div><div class="ttdoc">miniaudio device</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_a9494a0d7083e3eff5ba66d7d26cce1ac"><div class="ttname"><a href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">gf_audio_t::decoder</a></div><div class="ttdeci">gf_audio_decoder_t decoder[64]</div><div class="ttdoc">Decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__audio__t_html_ac838983342cbe6cb03ceea6d763116a5"><div class="ttname"><a href="structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5">gf_audio_t::engine</a></div><div class="ttdeci">gf_engine_t * engine</div><div class="ttdoc">Engine instance.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__engine__t_html"><div class="ttname"><a href="structgf__engine__t.html">gf_engine_t</a></div><div class="ttdoc">Engine instance.</div><div class="ttdef"><b>Definition</b> <a href="core_8h_source.html#l00046">core.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -115,24 +115,12 @@ Functions</h2></td></tr>
<tr class="memitem:ab5022a62ecc7ba83ccb5da4a1add398b" id="r_ab5022a62ecc7ba83ccb5da4a1add398b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio_destroy</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio)</td></tr>
<tr class="memdesc:ab5022a62ecc7ba83ccb5da4a1add398b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy audio interface. <br /></td></tr>
<tr class="separator:ab5022a62ecc7ba83ccb5da4a1add398b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae34c8bd9d398a4335a1c6f9cc290ebdb" id="r_ae34c8bd9d398a4335a1c6f9cc290ebdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb">gf_audio_decoder_destroy</a> (<a class="el" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> *decoder)</td></tr>
<tr class="memdesc:ae34c8bd9d398a4335a1c6f9cc290ebdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy audio decoder. <br /></td></tr>
<tr class="separator:ae34c8bd9d398a4335a1c6f9cc290ebdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3ae4fe048705bae7ce8a377976a4c2d" id="r_af3ae4fe048705bae7ce8a377976a4c2d"><td class="memItemLeft" align="right" valign="top">gf_audio_id_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d">gf_audio_load_file</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, const char *path)</td></tr>
<tr class="memdesc:af3ae4fe048705bae7ce8a377976a4c2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load and play file. <br /></td></tr>
<tr class="separator:af3ae4fe048705bae7ce8a377976a4c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a391139463501e0f9962974b208d9e4b2" id="r_a391139463501e0f9962974b208d9e4b2"><td class="memItemLeft" align="right" valign="top">gf_audio_id_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2">gf_audio_load</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, const void *data, size_t size)</td></tr>
<tr class="memdesc:a391139463501e0f9962974b208d9e4b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load and play data. <br /></td></tr>
<tr class="separator:a391139463501e0f9962974b208d9e4b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af319f87c14e6b784de694c065d147c80" id="r_af319f87c14e6b784de694c065d147c80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80">gf_audio_pause</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, gf_audio_id_t id)</td></tr>
<tr class="memdesc:af319f87c14e6b784de694c065d147c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pause audio. <br /></td></tr>
<tr class="separator:af319f87c14e6b784de694c065d147c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a336ebd4c24f26fb744114f955292f58b" id="r_a336ebd4c24f26fb744114f955292f58b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b">gf_audio_resume</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, gf_audio_id_t id)</td></tr>
<tr class="memdesc:a336ebd4c24f26fb744114f955292f58b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume audio. <br /></td></tr>
<tr class="separator:a336ebd4c24f26fb744114f955292f58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a270465ee43fdc71840bd1a5dbd0a1ec1" id="r_a270465ee43fdc71840bd1a5dbd0a1ec1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1">gf_audio_stop</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, gf_audio_id_t id)</td></tr>
<tr class="memdesc:a270465ee43fdc71840bd1a5dbd0a1ec1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop audio. <br /></td></tr>
<tr class="separator:a270465ee43fdc71840bd1a5dbd0a1ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a644b31417fc839bb2be69a88c2e77fbe" id="r_a644b31417fc839bb2be69a88c2e77fbe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe">gf_audio_load_file</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, const char *path)</td></tr>
<tr class="memdesc:a644b31417fc839bb2be69a88c2e77fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load and play file. <br /></td></tr>
<tr class="separator:a644b31417fc839bb2be69a88c2e77fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6428af79e540740776ae0d202c3962" id="r_a7a6428af79e540740776ae0d202c3962"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962">gf_audio_load</a> (<a class="el" href="structgf__audio__t.html">gf_audio_t</a> *audio, const void *data, size_t size)</td></tr>
<tr class="memdesc:a7a6428af79e540740776ae0d202c3962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load and play data. <br /></td></tr>
<tr class="separator:a7a6428af79e540740776ae0d202c3962"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Audio interface. </p>
@ -172,43 +160,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Audio interface </dd></dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00170">170</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="ae34c8bd9d398a4335a1c6f9cc290ebdb" name="ae34c8bd9d398a4335a1c6f9cc290ebdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae34c8bd9d398a4335a1c6f9cc290ebdb">&#9670;&#160;</a></span>gf_audio_decoder_destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gf_audio_decoder_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a> *&#160;</td>
<td class="paramname"><em>decoder</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroy audio decoder. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">decoder</td><td>Audio decoder </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00226">226</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00095">95</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
@ -244,21 +196,18 @@ Functions</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00246">246</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00135">135</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="a391139463501e0f9962974b208d9e4b2" name="a391139463501e0f9962974b208d9e4b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a391139463501e0f9962974b208d9e4b2">&#9670;&#160;</a></span>gf_audio_load()</h2>
<a id="a7a6428af79e540740776ae0d202c3962" name="a7a6428af79e540740776ae0d202c3962"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a6428af79e540740776ae0d202c3962">&#9670;&#160;</a></span>gf_audio_load()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gf_audio_id_t gf_audio_load </td>
<td class="memname">int gf_audio_load </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td>
<td class="paramname"><em>audio</em>, </td>
@ -281,11 +230,6 @@ Functions</h2></td></tr>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Load and play data. </p>
@ -297,23 +241,20 @@ Functions</h2></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ID if successful, otherwise <code>-1</code> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> if successful, otherwise <code>-1</code> </dd></dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00097">97</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00059">59</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="af3ae4fe048705bae7ce8a377976a4c2d" name="af3ae4fe048705bae7ce8a377976a4c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3ae4fe048705bae7ce8a377976a4c2d">&#9670;&#160;</a></span>gf_audio_load_file()</h2>
<a id="a644b31417fc839bb2be69a88c2e77fbe" name="a644b31417fc839bb2be69a88c2e77fbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a644b31417fc839bb2be69a88c2e77fbe">&#9670;&#160;</a></span>gf_audio_load_file()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">gf_audio_id_t gf_audio_load_file </td>
<td class="memname">int gf_audio_load_file </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td>
<td class="paramname"><em>audio</em>, </td>
@ -330,11 +271,6 @@ Functions</h2></td></tr>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Load and play file. </p>
@ -345,150 +281,9 @@ Functions</h2></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ID if successful, otherwise <code>-1</code> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> if successful, otherwise <code>-1</code> </dd></dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00151">151</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="af319f87c14e6b784de694c065d147c80" name="af319f87c14e6b784de694c065d147c80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af319f87c14e6b784de694c065d147c80">&#9670;&#160;</a></span>gf_audio_pause()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gf_audio_pause </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td>
<td class="paramname"><em>audio</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">gf_audio_id_t&#160;</td>
<td class="paramname"><em>id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pause audio. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">audio</td><td>Audio interface </td></tr>
<tr><td class="paramname">id</td><td>Audio ID </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00269">269</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="a336ebd4c24f26fb744114f955292f58b" name="a336ebd4c24f26fb744114f955292f58b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a336ebd4c24f26fb744114f955292f58b">&#9670;&#160;</a></span>gf_audio_resume()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gf_audio_resume </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td>
<td class="paramname"><em>audio</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">gf_audio_id_t&#160;</td>
<td class="paramname"><em>id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Resume audio. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">audio</td><td>Audio interface </td></tr>
<tr><td class="paramname">id</td><td>Audio ID </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00263">263</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>
<a id="a270465ee43fdc71840bd1a5dbd0a1ec1" name="a270465ee43fdc71840bd1a5dbd0a1ec1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a270465ee43fdc71840bd1a5dbd0a1ec1">&#9670;&#160;</a></span>gf_audio_stop()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gf_audio_stop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td>
<td class="paramname"><em>audio</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">gf_audio_id_t&#160;</td>
<td class="paramname"><em>id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Stop audio. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">audio</td><td>Audio interface </td></tr>
<tr><td class="paramname">id</td><td>Audio ID </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00275">275</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
<p class="definition">Definition at line <a class="el" href="gf__audio_8c_source.html#l00076">76</a> of file <a class="el" href="gf__audio_8c_source.html">gf_audio.c</a>.</p>
</div>
</div>

View File

@ -1,11 +1,7 @@
var gf__audio_8h =
[
[ "gf_audio_create", "gf__audio_8h.html#a52e61cbf2518774a590141631e053330", null ],
[ "gf_audio_decoder_destroy", "gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb", null ],
[ "gf_audio_destroy", "gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b", null ],
[ "gf_audio_load", "gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2", null ],
[ "gf_audio_load_file", "gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d", null ],
[ "gf_audio_pause", "gf__audio_8h.html#af319f87c14e6b784de694c065d147c80", null ],
[ "gf_audio_resume", "gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b", null ],
[ "gf_audio_stop", "gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1", null ]
[ "gf_audio_load", "gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962", null ],
[ "gf_audio_load_file", "gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe", null ]
];

View File

@ -119,34 +119,21 @@ $(document).ready(function(){initNavTree('gf__audio_8h_source.html',''); initRes
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_function" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio_destroy</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_function" href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb">gf_audio_decoder_destroy</a>(<a class="code hl_struct" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>* decoder);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> gf_audio_id_t <a class="code hl_function" href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d">gf_audio_load_file</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">char</span>* path);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> gf_audio_id_t <a class="code hl_function" href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2">gf_audio_load</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_function" href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80">gf_audio_pause</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_function" href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b">gf_audio_resume</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><a class="code hl_define" href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a> <span class="keywordtype">void</span> <a class="code hl_function" href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1">gf_audio_stop</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, gf_audio_id_t <span class="keywordtype">id</span>);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keywordtype">int</span> <a class="code hl_function" href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe">gf_audio_load_file</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">char</span>* path);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keywordtype">int</span> <a class="code hl_function" href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962">gf_audio_load</a>(<a class="code hl_struct" href="structgf__audio__t.html">gf_audio_t</a>* audio, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aaudio_8h_html"><div class="ttname"><a href="audio_8h.html">audio.h</a></div><div class="ttdoc">Type definitions related to audio interface.</div></div>
<div class="ttc" id="acore_8h_html"><div class="ttname"><a href="core_8h.html">core.h</a></div><div class="ttdoc">Type definitions related to core.</div></div>
<div class="ttc" id="agf__audio_8h_html_a270465ee43fdc71840bd1a5dbd0a1ec1"><div class="ttname"><a href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1">gf_audio_stop</a></div><div class="ttdeci">void gf_audio_stop(gf_audio_t *audio, gf_audio_id_t id)</div><div class="ttdoc">Stop audio.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00275">gf_audio.c:275</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a336ebd4c24f26fb744114f955292f58b"><div class="ttname"><a href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b">gf_audio_resume</a></div><div class="ttdeci">void gf_audio_resume(gf_audio_t *audio, gf_audio_id_t id)</div><div class="ttdoc">Resume audio.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00263">gf_audio.c:263</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a391139463501e0f9962974b208d9e4b2"><div class="ttname"><a href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2">gf_audio_load</a></div><div class="ttdeci">gf_audio_id_t gf_audio_load(gf_audio_t *audio, const void *data, size_t size)</div><div class="ttdoc">Load and play data.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00097">gf_audio.c:97</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a52e61cbf2518774a590141631e053330"><div class="ttname"><a href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330">gf_audio_create</a></div><div class="ttdeci">gf_audio_t * gf_audio_create(gf_engine_t *engine)</div><div class="ttdoc">Create audio interface.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00170">gf_audio.c:170</a></div></div>
<div class="ttc" id="agf__audio_8h_html_ab5022a62ecc7ba83ccb5da4a1add398b"><div class="ttname"><a href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio_destroy</a></div><div class="ttdeci">void gf_audio_destroy(gf_audio_t *audio)</div><div class="ttdoc">Destroy audio interface.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00246">gf_audio.c:246</a></div></div>
<div class="ttc" id="agf__audio_8h_html_ae34c8bd9d398a4335a1c6f9cc290ebdb"><div class="ttname"><a href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb">gf_audio_decoder_destroy</a></div><div class="ttdeci">void gf_audio_decoder_destroy(gf_audio_decoder_t *decoder)</div><div class="ttdoc">Destroy audio decoder.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00226">gf_audio.c:226</a></div></div>
<div class="ttc" id="agf__audio_8h_html_af319f87c14e6b784de694c065d147c80"><div class="ttname"><a href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80">gf_audio_pause</a></div><div class="ttdeci">void gf_audio_pause(gf_audio_t *audio, gf_audio_id_t id)</div><div class="ttdoc">Pause audio.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00269">gf_audio.c:269</a></div></div>
<div class="ttc" id="agf__audio_8h_html_af3ae4fe048705bae7ce8a377976a4c2d"><div class="ttname"><a href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d">gf_audio_load_file</a></div><div class="ttdeci">gf_audio_id_t gf_audio_load_file(gf_audio_t *audio, const char *path)</div><div class="ttdoc">Load and play file.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00151">gf_audio.c:151</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a52e61cbf2518774a590141631e053330"><div class="ttname"><a href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330">gf_audio_create</a></div><div class="ttdeci">gf_audio_t * gf_audio_create(gf_engine_t *engine)</div><div class="ttdoc">Create audio interface.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00095">gf_audio.c:95</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a644b31417fc839bb2be69a88c2e77fbe"><div class="ttname"><a href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe">gf_audio_load_file</a></div><div class="ttdeci">int gf_audio_load_file(gf_audio_t *audio, const char *path)</div><div class="ttdoc">Load and play file.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00076">gf_audio.c:76</a></div></div>
<div class="ttc" id="agf__audio_8h_html_a7a6428af79e540740776ae0d202c3962"><div class="ttname"><a href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962">gf_audio_load</a></div><div class="ttdeci">int gf_audio_load(gf_audio_t *audio, const void *data, size_t size)</div><div class="ttdoc">Load and play data.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00059">gf_audio.c:59</a></div></div>
<div class="ttc" id="agf__audio_8h_html_ab5022a62ecc7ba83ccb5da4a1add398b"><div class="ttname"><a href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio_destroy</a></div><div class="ttdeci">void gf_audio_destroy(gf_audio_t *audio)</div><div class="ttdoc">Destroy audio interface.</div><div class="ttdef"><b>Definition</b> <a href="gf__audio_8c_source.html#l00135">gf_audio.c:135</a></div></div>
<div class="ttc" id="agf__macro_8h_html"><div class="ttname"><a href="gf__macro_8h.html">gf_macro.h</a></div><div class="ttdoc">Macro.</div></div>
<div class="ttc" id="agf__macro_8h_html_a64ddd31b0795e397b5d944e6f1821357"><div class="ttname"><a href="gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357">GF_EXPORT</a></div><div class="ttdeci">#define GF_EXPORT</div><div class="ttdoc">Macro for platform-dependent symbol export/import.</div><div class="ttdef"><b>Definition</b> <a href="gf__macro_8h_source.html#l00190">gf_macro.h:190</a></div></div>
<div class="ttc" id="agf__pre_8h_html"><div class="ttname"><a href="gf__pre_8h.html">gf_pre.h</a></div><div class="ttdoc">Required headers before anything.</div></div>
<div class="ttc" id="astructgf__audio__decoder__t_html"><div class="ttname"><a href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a></div><div class="ttdoc">Audio decoder.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00069">audio.h:69</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00097">audio.h:97</a></div></div>
<div class="ttc" id="astructgf__audio__t_html"><div class="ttname"><a href="structgf__audio__t.html">gf_audio_t</a></div><div class="ttdoc">Audio interface.</div><div class="ttdef"><b>Definition</b> <a href="audio_8h_source.html#l00073">audio.h:73</a></div></div>
<div class="ttc" id="astructgf__engine__t_html"><div class="ttname"><a href="structgf__engine__t.html">gf_engine_t</a></div><div class="ttdoc">Engine instance.</div><div class="ttdef"><b>Definition</b> <a href="core_8h_source.html#l00046">core.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

View File

@ -100,14 +100,10 @@ $(document).ready(function(){initNavTree('globals.html',''); initResizable(); })
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gf_audio_create()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330">gf_audio.h</a></li>
<li>gf_audio_decoder_destroy()&#160;:&#160;<a class="el" href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb">gf_audio.h</a></li>
<li>gf_audio_destroy()&#160;:&#160;<a class="el" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio.h</a></li>
<li>gf_audio_load()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2">gf_audio.h</a></li>
<li>gf_audio_load_file()&#160;:&#160;<a class="el" href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d">gf_audio.h</a></li>
<li>gf_audio_load()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962">gf_audio.h</a></li>
<li>gf_audio_load_file()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe">gf_audio.h</a></li>
<li>GF_AUDIO_MAX_DECODERS&#160;:&#160;<a class="el" href="audio_8h.html#a6d19d179e9a386872980ec047b37345c">audio.h</a></li>
<li>gf_audio_pause()&#160;:&#160;<a class="el" href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80">gf_audio.h</a></li>
<li>gf_audio_resume()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b">gf_audio.h</a></li>
<li>gf_audio_stop()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1">gf_audio.h</a></li>
<li>gf_client_begin()&#160;:&#160;<a class="el" href="gf__client_8h.html#a190d30881f4449e141e915ac42e32d56">gf_client.h</a></li>
<li>gf_client_create()&#160;:&#160;<a class="el" href="gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a">gf_client.h</a></li>
<li>gf_client_destroy()&#160;:&#160;<a class="el" href="gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53">gf_client.h</a></li>

View File

@ -95,13 +95,9 @@ $(document).ready(function(){initNavTree('globals_func.html',''); initResizable(
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gf_audio_create()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a52e61cbf2518774a590141631e053330">gf_audio.h</a></li>
<li>gf_audio_decoder_destroy()&#160;:&#160;<a class="el" href="gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb">gf_audio.h</a></li>
<li>gf_audio_destroy()&#160;:&#160;<a class="el" href="gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b">gf_audio.h</a></li>
<li>gf_audio_load()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2">gf_audio.h</a></li>
<li>gf_audio_load_file()&#160;:&#160;<a class="el" href="gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d">gf_audio.h</a></li>
<li>gf_audio_pause()&#160;:&#160;<a class="el" href="gf__audio_8h.html#af319f87c14e6b784de694c065d147c80">gf_audio.h</a></li>
<li>gf_audio_resume()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b">gf_audio.h</a></li>
<li>gf_audio_stop()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1">gf_audio.h</a></li>
<li>gf_audio_load()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962">gf_audio.h</a></li>
<li>gf_audio_load_file()&#160;:&#160;<a class="el" href="gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe">gf_audio.h</a></li>
<li>gf_client_begin()&#160;:&#160;<a class="el" href="gf__client_8h.html#a190d30881f4449e141e915ac42e32d56">gf_client.h</a></li>
<li>gf_client_create()&#160;:&#160;<a class="el" href="gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a">gf_client.h</a></li>
<li>gf_client_destroy()&#160;:&#160;<a class="el" href="gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53">gf_client.h</a></li>

View File

@ -50,7 +50,7 @@ var NAVTREE =
var NAVTREEINDEX =
[
"annotated.html",
"opengl_2gf__driver_8c_source.html"
"opengl_2wgl_2gf__draw_8c_source.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';

View File

@ -40,14 +40,10 @@ var NAVTREEINDEX0 =
"functions_vars.html":[1,2,1],
"gf__audio_8c_source.html":[2,0,4],
"gf__audio_8h.html":[2,0,2,1],
"gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1":[2,0,2,1,7],
"gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b":[2,0,2,1,6],
"gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2":[2,0,2,1,3],
"gf__audio_8h.html#a52e61cbf2518774a590141631e053330":[2,0,2,1,0],
"gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b":[2,0,2,1,2],
"gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb":[2,0,2,1,1],
"gf__audio_8h.html#af319f87c14e6b784de694c065d147c80":[2,0,2,1,5],
"gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d":[2,0,2,1,4],
"gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe":[2,0,2,1,3],
"gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962":[2,0,2,1,2],
"gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b":[2,0,2,1,1],
"gf__audio_8h_source.html":[2,0,2,1],
"gf__audio__mod_8c_source.html":[2,0,0,0],
"gf__audio__xm_8c_source.html":[2,0,0,1],
@ -249,5 +245,9 @@ var NAVTREEINDEX0 =
"mesh_8h.html":[2,0,2,0,12],
"mesh_8h_source.html":[2,0,2,0,12],
"model_8h.html":[2,0,2,0,13],
"model_8h_source.html":[2,0,2,0,13]
"model_8h_source.html":[2,0,2,0,13],
"opengl_2gf__driver_8c_source.html":[2,0,1,1,3],
"opengl_2gf__graphic_8c_source.html":[2,0,1,1,4],
"opengl_2glfw_2gf__draw_8c_source.html":[2,0,1,1,0,0],
"opengl_2glx_2gf__draw_8c_source.html":[2,0,1,1,1,0]
};

View File

@ -1,9 +1,5 @@
var NAVTREEINDEX1 =
{
"opengl_2gf__driver_8c_source.html":[2,0,1,1,3],
"opengl_2gf__graphic_8c_source.html":[2,0,1,1,4],
"opengl_2glfw_2gf__draw_8c_source.html":[2,0,1,1,0,0],
"opengl_2glx_2gf__draw_8c_source.html":[2,0,1,1,1,0],
"opengl_2wgl_2gf__draw_8c_source.html":[2,0,1,1,2,0],
"pages.html":[],
"physics_8h.html":[2,0,2,0,14],
@ -12,17 +8,12 @@ var NAVTREEINDEX1 =
"server_8h.html":[2,0,2,0,15],
"server_8h_source.html":[2,0,2,0,15],
"structgf__audio__decoder__t.html":[1,0,0],
"structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393":[1,0,0,6],
"structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5":[1,0,0,2],
"structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b":[1,0,0,5],
"structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663":[1,0,0,4],
"structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc":[1,0,0,3],
"structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01":[1,0,0,0],
"structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581":[1,0,0,1],
"structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5":[1,0,0,1],
"structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b":[1,0,0,2],
"structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581":[1,0,0,0],
"structgf__audio__t.html":[1,0,1],
"structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4":[1,0,1,2],
"structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9":[1,0,1,1],
"structgf__audio__t.html#a8dc02290f6f59821db420f365985f592":[1,0,1,4],
"structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac":[1,0,1,0],
"structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5":[1,0,1,3],
"structgf__client__t.html":[1,0,2],

View File

@ -2,6 +2,6 @@ var searchData=
[
['a_0',['a',['../structgf__graphic__color__t.html#a55cf386eda83f15c1aa811626653141c',1,'gf_graphic_color_t']]],
['area_1',['area',['../structgf__gui__t.html#aa9c0a86d1d6ed76b52065e64f02ef8d7',1,'gf_gui_t']]],
['audio_2',['audio',['../structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01',1,'gf_audio_decoder_t::audio'],['../structgf__client__t.html#ac3381045a3080752363026d7d6607435',1,'gf_client_t::audio']]],
['audio_2',['audio',['../structgf__client__t.html#ac3381045a3080752363026d7d6607435',1,'gf_client_t']]],
['audio_2eh_3',['audio.h',['../audio_8h.html',1,'']]]
];

View File

@ -1,5 +1,4 @@
var searchData=
[
['x_0',['x',['../structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587',1,'gf_draw_t::x'],['../structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9',1,'gf_font_bbox_t::x'],['../structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb',1,'gf_gui_component_t::x']]],
['xm_1',['xm',['../structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393',1,'gf_audio_decoder_t']]]
['x_0',['x',['../structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587',1,'gf_draw_t::x'],['../structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9',1,'gf_font_bbox_t::x'],['../structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb',1,'gf_gui_component_t::x']]]
];

View File

@ -3,181 +3,177 @@ var searchData=
['g_0',['g',['../structgf__graphic__color__t.html#a0f0a24017b41658518516306c7e19acf',1,'gf_graphic_color_t']]],
['gf_5faudio_2eh_1',['gf_audio.h',['../gf__audio_8h.html',1,'']]],
['gf_5faudio_5fcreate_2',['gf_audio_create',['../gf__audio_8h.html#a52e61cbf2518774a590141631e053330',1,'gf_audio.c']]],
['gf_5faudio_5fdecoder_5fdestroy_3',['gf_audio_decoder_destroy',['../gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb',1,'gf_audio.c']]],
['gf_5faudio_5fdecoder_5ft_4',['gf_audio_decoder_t',['../structgf__audio__decoder__t.html',1,'']]],
['gf_5faudio_5fdestroy_5',['gf_audio_destroy',['../gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b',1,'gf_audio.c']]],
['gf_5faudio_5fload_6',['gf_audio_load',['../gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2',1,'gf_audio.c']]],
['gf_5faudio_5fload_5ffile_7',['gf_audio_load_file',['../gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d',1,'gf_audio.c']]],
['gf_5faudio_5fmax_5fdecoders_8',['GF_AUDIO_MAX_DECODERS',['../audio_8h.html#a6d19d179e9a386872980ec047b37345c',1,'audio.h']]],
['gf_5faudio_5fpause_9',['gf_audio_pause',['../gf__audio_8h.html#af319f87c14e6b784de694c065d147c80',1,'gf_audio.c']]],
['gf_5faudio_5fresume_10',['gf_audio_resume',['../gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b',1,'gf_audio.c']]],
['gf_5faudio_5fstop_11',['gf_audio_stop',['../gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1',1,'gf_audio.c']]],
['gf_5faudio_5ft_12',['gf_audio_t',['../structgf__audio__t.html',1,'']]],
['gf_5fclient_2eh_13',['gf_client.h',['../gf__client_8h.html',1,'']]],
['gf_5fclient_5fbegin_14',['gf_client_begin',['../gf__client_8h.html#a190d30881f4449e141e915ac42e32d56',1,'gf_client.c']]],
['gf_5fclient_5fcreate_15',['gf_client_create',['../gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a',1,'gf_client.c']]],
['gf_5fclient_5fdestroy_16',['gf_client_destroy',['../gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53',1,'gf_client.c']]],
['gf_5fclient_5fend_17',['gf_client_end',['../gf__client_8h.html#a48fc64674f40797eac53f689e2ba5bae',1,'gf_client.c']]],
['gf_5fclient_5fstep_18',['gf_client_step',['../gf__client_8h.html#aa955ab564cc593944b7ea4ae10efd397',1,'gf_client.c']]],
['gf_5fclient_5ft_19',['gf_client_t',['../structgf__client__t.html',1,'']]],
['gf_5fcore_2eh_20',['gf_core.h',['../gf__core_8h.html',1,'']]],
['gf_5fdeclare_5ftype_21',['GF_DECLARE_TYPE',['../gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377',1,'gf_macro.h']]],
['gf_5fdirectx_2eh_22',['gf_directx.h',['../gf__directx_8h.html',1,'']]],
['gf_5fdraw_2eh_23',['gf_draw.h',['../gf__draw_8h.html',1,'']]],
['gf_5fdraw_5fbegin_24',['gf_draw_begin',['../gf__draw_8h.html#a4575368fee8a93966d657874a0906aaf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fcreate_25',['gf_draw_create',['../gf__draw_8h.html#af65b9048f8e8b33c560f374a945d1dec',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdestroy_26',['gf_draw_destroy',['../gf__draw_8h.html#aa7c19917300ff10b22de455323f01d83',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdriver_2eh_27',['gf_draw_driver.h',['../gf__draw__driver_8h.html',1,'']]],
['gf_5fdraw_5fdriver_5fafter_28',['gf_draw_driver_after',['../gf__draw__driver_8h.html#a646a68acd6e610379fc6ef5511e8c5d9',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbefore_29',['gf_draw_driver_before',['../gf__draw__driver_8h.html#a5d2d7820e9dabe9f558d3f5a45b0ea60',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbegin_5ftexture_5f2d_30',['gf_draw_driver_begin_texture_2d',['../gf__draw__driver_8h.html#ac53faf99d73b8279f7a020a7c08d7121',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fcreate_31',['gf_draw_driver_create',['../gf__draw__driver_8h.html#aebc8d113d5682c2f1090e6f04d0857e4',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_32',['gf_draw_driver_destroy',['../gf__draw__driver_8h.html#af8f5a8642f6e54ece2ab4b6389877b56',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_5ftexture_33',['gf_draw_driver_destroy_texture',['../gf__draw__driver_8h.html#aa43ec41907a9e23dd236332f9d624dac',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fend_5ftexture_5f2d_34',['gf_draw_driver_end_texture_2d',['../gf__draw__driver_8h.html#a43e4c5ac09e1092f2236af7bc3974431',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fhas_5fextension_35',['gf_draw_driver_has_extension',['../gf__draw__driver_8h.html#a9ba4f91da9872bfc447a124cc4cf7d2a',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fregister_5ftexture_36',['gf_draw_driver_register_texture',['../gf__draw__driver_8h.html#a034ba7f18e4d2c0395d4116182c47785',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5freshape_37',['gf_draw_driver_reshape',['../gf__draw__driver_8h.html#af0a260e2df4036c09bebe329c821fc19',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fset_5fcolor_38',['gf_draw_driver_set_color',['../gf__draw__driver_8h.html#a2740a2bb536d05c08ca019e66be4b6c6',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5ft_39',['gf_draw_driver_t',['../structgf__draw__driver__t.html',1,'']]],
['gf_5fdraw_5fdriver_5ftexture_5ft_40',['gf_draw_driver_texture_t',['../structgf__draw__driver__texture__t.html',1,'']]],
['gf_5fdraw_5fend_41',['gf_draw_end',['../gf__draw_8h.html#a11d157bf565b4010f1350dd5329fa4a4',1,'gf_draw_common.c']]],
['gf_5fdraw_5fframe_42',['gf_draw_frame',['../gf__draw_8h.html#a4887fe11d8dfe55cf784e07b382b046a',1,'gf_draw_common.c']]],
['gf_5fdraw_5fplatform_2eh_43',['gf_draw_platform.h',['../gf__draw__platform_8h.html',1,'']]],
['gf_5fdraw_5fplatform_5fbegin_44',['gf_draw_platform_begin',['../gf__draw__platform_8h.html#aa3106f20d1a654acf65f5e4ddb7a0fdd',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fcreate_45',['gf_draw_platform_create',['../gf__draw__platform_8h.html#ae0d81adf1fa83413f5052dab1fc4793f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fdestroy_46',['gf_draw_platform_destroy',['../gf__draw__platform_8h.html#a24822bbf6cda6c2cbe336d70116dfb25',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fend_47',['gf_draw_platform_end',['../gf__draw__platform_8h.html#ad6f83af1b5dec4457aea20dcab88c94f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fhas_5fextension_48',['gf_draw_platform_has_extension',['../gf__draw__platform_8h.html#a368f0172138b75a37072d1ed357b1183',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fstep_49',['gf_draw_platform_step',['../gf__draw__platform_8h.html#af006e1dd0055cd824dd61122454d6192',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5ft_50',['gf_draw_platform_t',['../structgf__draw__platform__t.html',1,'']]],
['gf_5fdraw_5freshape_51',['gf_draw_reshape',['../gf__draw_8h.html#af1d6ba858a1cee357f8626501540e8bf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fset_5finput_52',['gf_draw_set_input',['../gf__draw_8h.html#a4a0353d9ffdb96b2c26600b185b16f4f',1,'gf_draw_common.c']]],
['gf_5fdraw_5fstep_53',['gf_draw_step',['../gf__draw_8h.html#a47934a1eafd8426cc145a97e36867551',1,'gf_draw_common.c']]],
['gf_5fdraw_5ft_54',['gf_draw_t',['../structgf__draw__t.html',1,'']]],
['gf_5fengine_5fbegin_55',['gf_engine_begin',['../gf__core_8h.html#ade0f3fb928e49b05985f095e95fb1f92',1,'gf_core.c']]],
['gf_5fengine_5fcreate_56',['gf_engine_create',['../gf__core_8h.html#a741291298ef02f3dceb1fdeaee2e27b4',1,'gf_core.c']]],
['gf_5fengine_5fdestroy_57',['gf_engine_destroy',['../gf__core_8h.html#a978d9c52b1d1098b5fc2f3e869036b64',1,'gf_core.c']]],
['gf_5fengine_5fend_58',['gf_engine_end',['../gf__core_8h.html#abae48921e84f92d590608745536a9ffc',1,'gf_core.c']]],
['gf_5fengine_5floop_59',['gf_engine_loop',['../gf__core_8h.html#aa9a229aa7c06d1a02ae89f93b8029fea',1,'gf_core.c']]],
['gf_5fengine_5ft_60',['gf_engine_t',['../structgf__engine__t.html',1,'']]],
['gf_5fexport_61',['GF_EXPORT',['../gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357',1,'gf_macro.h']]],
['gf_5fexpose_5faudio_62',['GF_EXPOSE_AUDIO',['../gf__macro_8h.html#a0c037da6649bf5ca0c58c12ec3a422ff',1,'gf_macro.h']]],
['gf_5fexpose_5fclient_63',['GF_EXPOSE_CLIENT',['../gf__macro_8h.html#a13d820c4f195f0f38ce7d791a9a4ddeb',1,'gf_macro.h']]],
['gf_5fexpose_5fcore_64',['GF_EXPOSE_CORE',['../gf__macro_8h.html#a697eb08d834a4889d84940e79575779d',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_65',['GF_EXPOSE_DRAW',['../gf__macro_8h.html#a438e60b3ef2df2ad0a220523e95d6dca',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_5fdriver_66',['GF_EXPOSE_DRAW_DRIVER',['../gf__macro_8h.html#a25f301eb3d5e8c3bfb8187876fa36efa',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_5fplatform_67',['GF_EXPOSE_DRAW_PLATFORM',['../gf__macro_8h.html#a5a117ced8c73165c3cc6144a49bf5af0',1,'gf_macro.h']]],
['gf_5fexpose_5ffont_68',['GF_EXPOSE_FONT',['../gf__macro_8h.html#a44fcf2830dd68160e7745e6c93a0fc15',1,'gf_macro.h']]],
['gf_5fexpose_5fgraphic_69',['GF_EXPOSE_GRAPHIC',['../gf__macro_8h.html#a9c8f57368c8d0b9a005e88951bb6b999',1,'gf_macro.h']]],
['gf_5fexpose_5fgui_70',['GF_EXPOSE_GUI',['../gf__macro_8h.html#a4a8b5bd4a3f26e4e775db703d383e315',1,'gf_macro.h']]],
['gf_5fexpose_5finput_71',['GF_EXPOSE_INPUT',['../gf__macro_8h.html#a8412a96f3ebbf985b342603585944166',1,'gf_macro.h']]],
['gf_5fexpose_5fmath_72',['GF_EXPOSE_MATH',['../gf__macro_8h.html#a0741ff0ae6d4298a707cb24a2b88d13e',1,'gf_macro.h']]],
['gf_5fexpose_5fmesh_73',['GF_EXPOSE_MESH',['../gf__macro_8h.html#ac44de892fe92937b0c6bf471ed7c39d3',1,'gf_macro.h']]],
['gf_5fexpose_5fmodel_74',['GF_EXPOSE_MODEL',['../gf__macro_8h.html#a162dc93ccefb746c38c3874a79b42eca',1,'gf_macro.h']]],
['gf_5fexpose_5fphysics_75',['GF_EXPOSE_PHYSICS',['../gf__macro_8h.html#aeb8d09c8509f1bbb5c2647be76806117',1,'gf_macro.h']]],
['gf_5fexpose_5fserver_76',['GF_EXPOSE_SERVER',['../gf__macro_8h.html#a7bbb6e42ee5fdf2e1dbbb4678e46973a',1,'gf_macro.h']]],
['gf_5fexpose_5ftexture_77',['GF_EXPOSE_TEXTURE',['../gf__macro_8h.html#a1b10588ebedb9c8ea44c1e4d2dd11086',1,'gf_macro.h']]],
['gf_5fexpose_5fthread_78',['GF_EXPOSE_THREAD',['../gf__macro_8h.html#aeddf0443a9813483ca6bfc05190915e0',1,'gf_macro.h']]],
['gf_5fexpose_5fversion_79',['GF_EXPOSE_VERSION',['../gf__macro_8h.html#a522da62928e59f2d7e01a128eb2441f2',1,'gf_macro.h']]],
['gf_5ffont_2eh_80',['gf_font.h',['../gf__font_8h.html',1,'']]],
['gf_5ffont_5fbbox_5ft_81',['gf_font_bbox_t',['../structgf__font__bbox__t.html',1,'']]],
['gf_5ffont_5fcreate_82',['gf_font_create',['../gf__font_8h.html#a0d171fe12d2ac1d3acc18476436608a1',1,'gf_font.c']]],
['gf_5ffont_5fget_83',['gf_font_get',['../gf__font_8h.html#adc4a1d10e49218c6383f5af6c4752fa1',1,'gf_font.c']]],
['gf_5ffont_5fglyph_5ft_84',['gf_font_glyph_t',['../structgf__font__glyph__t.html',1,'']]],
['gf_5ffont_5fstore_5ft_85',['gf_font_store_t',['../structgf__font__store__t.html',1,'']]],
['gf_5ffont_5ft_86',['gf_font_t',['../structgf__font__t.html',1,'']]],
['gf_5fgraphic_2eh_87',['gf_graphic.h',['../gf__graphic_8h.html',1,'']]],
['gf_5fgraphic_5f2d_88',['GF_GRAPHIC_2D',['../gf__graphic_8h.html#ab0a76f61b9510881b842dbba4b0b54c0',1,'gf_graphic.h']]],
['gf_5fgraphic_5f3d_89',['GF_GRAPHIC_3D',['../gf__graphic_8h.html#a0b9f704231aa067e58c6a8e7a42afdcf',1,'gf_graphic.h']]],
['gf_5fgraphic_5fbegin_5f2d_90',['gf_graphic_begin_2d',['../gf__graphic_8h.html#ad35db673e213edbadbfd938138c88a4c',1,'gf_graphic.c']]],
['gf_5fgraphic_5fclear_91',['gf_graphic_clear',['../gf__graphic_8h.html#a74f8bf7e2fc346f7d85ecfcea061f3fb',1,'gf_graphic.c']]],
['gf_5fgraphic_5fcolor_5ft_92',['gf_graphic_color_t',['../structgf__graphic__color__t.html',1,'']]],
['gf_5fgraphic_5fdraw_5ftexture_5f2d_93',['gf_graphic_draw_texture_2d',['../gf__graphic_8h.html#a3285370a495233cc7db4f25317cd5fb0',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5fpolygon_94',['gf_graphic_draw_texture_polygon',['../gf__graphic_8h.html#a4157822cc342fa294329ed2c436d53f2',1,'gf_graphic.c']]],
['gf_5fgraphic_5fend_5f2d_95',['gf_graphic_end_2d',['../gf__graphic_8h.html#acd5d3047cf76b63b2d1161e4e880f446',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5fpolygon_96',['gf_graphic_fill_polygon',['../gf__graphic_8h.html#a8ff780a4bcadc008355699101d2a42cc',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5frect_97',['gf_graphic_fill_rect',['../gf__graphic_8h.html#a4811198de205914602e5cdbafdcdd68d',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fperspective_98',['gf_graphic_perspective',['../gf__graphic_8h.html#a95e7c86d8e9b64501af7de7268f6d74d',1,'gf_graphic.c']]],
['gf_5fgraphic_5fset_5fcamera_99',['gf_graphic_set_camera',['../gf__graphic_8h.html#af8285b506b90125960bf01b427a9a883',1,'gf_graphic.c']]],
['gf_5fgraphic_5ftext_100',['gf_graphic_text',['../gf__graphic_8h.html#a9840372651011386f6851954e95e7943',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5ftext_5fwidth_101',['gf_graphic_text_width',['../gf__graphic_8h.html#a996f203bc791922f639ad2e02b5299c1',1,'gf_graphic_common.c']]],
['gf_5fgui_2eh_102',['gf_gui.h',['../gf__gui_8h.html',1,'']]],
['gf_5fgui_5fbutton_5ft_103',['gf_gui_button_t',['../structgf__gui__button__t.html',1,'']]],
['gf_5fgui_5fcomponent_5ft_104',['gf_gui_component_t',['../structgf__gui__component__t.html',1,'']]],
['gf_5fgui_5fcomponent_5ftypes_105',['GF_GUI_COMPONENT_TYPES',['../gui_8h.html#a29f22c7359d8c3b586f0d4eb82213d03',1,'gui.h']]],
['gf_5fgui_5fcreate_106',['gf_gui_create',['../gf__gui_8h.html#a929e99bf9dd58e4abc0c9f2a6b1341a1',1,'gf_gui.c']]],
['gf_5fgui_5fcreate_5fbutton_107',['gf_gui_create_button',['../gf__gui_8h.html#a9bfb5fc1e4dff3c3f0e4748d5b8c3c2e',1,'gf_gui.c']]],
['gf_5fgui_5fdraw_5fbox_108',['gf_gui_draw_box',['../gf__gui_8h.html#a670ac29a4409cc16c8d77f2d33ccc499',1,'gf_gui.c']]],
['gf_5fgui_5fevents_109',['GF_GUI_EVENTS',['../gui_8h.html#a7a5228e21a2d5c98d2b88d5e7bc97d82',1,'gui.h']]],
['gf_5fgui_5ffirst_5funused_110',['gf_gui_first_unused',['../gf__gui_8h.html#a39fc0e9d0e6ebaf3d60e1275008124b5',1,'gf_gui.c']]],
['gf_5fgui_5ffont_5fsize_111',['GF_GUI_FONT_SIZE',['../gf__gui_8h.html#a59c22dec721b5a703d29e0b0d9fc3522',1,'gf_gui.h']]],
['gf_5fgui_5fid_5ft_112',['gf_gui_id_t',['../gui_8h.html#a17ba559c53b849a8391b8f48d91b4f11',1,'gui.h']]],
['gf_5fgui_5finvert_113',['GF_GUI_INVERT',['../gf__gui_8h.html#a01d6d034ff93d118bcbabf86f33735c5',1,'gf_gui.h']]],
['gf_5fgui_5fmax_5fcomponents_114',['GF_GUI_MAX_COMPONENTS',['../gui_8h.html#a33770d9046d53ad607fcc938f1619eb8',1,'gui.h']]],
['gf_5fgui_5fnormal_115',['GF_GUI_NORMAL',['../gf__gui_8h.html#ad122969dc187a91908fc312f185eaa46',1,'gf_gui.h']]],
['gf_5fgui_5frender_116',['gf_gui_render',['../gf__gui_8h.html#a41f221ae3b2221553f49678f9434976c',1,'gf_gui.c']]],
['gf_5fgui_5fset_5fcallback_117',['gf_gui_set_callback',['../gf__gui_8h.html#ac4dbc67180bd8f83906b16fc268a8e78',1,'gf_gui.c']]],
['gf_5fgui_5ft_118',['gf_gui_t',['../structgf__gui__t.html',1,'']]],
['gf_5fgui_5funion_5ft_119',['gf_gui_union_t',['../uniongf__gui__union__t.html',1,'']]],
['gf_5finput_2eh_120',['gf_input.h',['../gf__input_8h.html',1,'']]],
['gf_5finput_5fcreate_121',['gf_input_create',['../gf__input_8h.html#ac926a70928c687f96cfbc24aef8ca96d',1,'gf_input.c']]],
['gf_5finput_5fdestroy_122',['gf_input_destroy',['../gf__input_8h.html#ac4a22f8231c87a464f6be7faead5dec2',1,'gf_input.c']]],
['gf_5finput_5fmouse_5fleft_5fmask_123',['GF_INPUT_MOUSE_LEFT_MASK',['../input_8h.html#a9e633a7c5d0bd577a11243b397354588',1,'input.h']]],
['gf_5finput_5fmouse_5fmiddle_5fmask_124',['GF_INPUT_MOUSE_MIDDLE_MASK',['../input_8h.html#a1bcb3fe6d407a1f4791efcbd86cffac9',1,'input.h']]],
['gf_5finput_5fmouse_5fright_5fmask_125',['GF_INPUT_MOUSE_RIGHT_MASK',['../input_8h.html#aa131fcdb7b5d6864c62b32b86f702962',1,'input.h']]],
['gf_5finput_5ft_126',['gf_input_t',['../structgf__input__t.html',1,'']]],
['gf_5flog_127',['gf_log',['../gf__log_8h.html#aed92dc232c3ae9cabdff1eeea67dfa90',1,'gf_log.c']]],
['gf_5flog_2eh_128',['gf_log.h',['../gf__log_8h.html',1,'']]],
['gf_5flog_5ffunction_129',['gf_log_function',['../gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a',1,'gf_log.h']]],
['gf_5fmacro_2eh_130',['gf_macro.h',['../gf__macro_8h.html',1,'']]],
['gf_5fmath_2eh_131',['gf_math.h',['../gf__math_8h.html',1,'']]],
['gf_5fmath_5fcot_132',['gf_math_cot',['../gf__math_8h.html#aac8f6a22f2880f5b86b20a191a662333',1,'gf_math.c']]],
['gf_5fmath_5flog2_133',['gf_math_log2',['../gf__math_8h.html#a018423cb05adf480f9c3f28f304d1c47',1,'gf_math.c']]],
['gf_5fmath_5fmultiply_134',['gf_math_multiply',['../gf__math_8h.html#a394ebd35e2cddf28c86a45dad759fbee',1,'gf_math.c']]],
['gf_5fmath_5fnearest_5f2pow_135',['gf_math_nearest_2pow',['../gf__math_8h.html#aefea2441e869786726095fcda71750dc',1,'gf_math.c']]],
['gf_5fmath_5fnormal_136',['gf_math_normal',['../gf__math_8h.html#a5438b2f7f1324cdd664f2b823faa1ba6',1,'gf_math.c']]],
['gf_5fmath_5fnormalize_137',['gf_math_normalize',['../gf__math_8h.html#a3bd2afc9ff0e67e60afef9fe82553726',1,'gf_math.c']]],
['gf_5fmath_5fpi_138',['GF_MATH_PI',['../gf__math_8h.html#a8bf10c0638a206ac572807e90508b6b5',1,'gf_math.h']]],
['gf_5fmath_5fsubtract_139',['gf_math_subtract',['../gf__math_8h.html#a9df6d1b30bea0b200582e2873bddd113',1,'gf_math.c']]],
['gf_5fmath_5fvector_5fcopy_140',['GF_MATH_VECTOR_COPY',['../gf__math_8h.html#a545245d1e846e9c756e776eb6138536b',1,'gf_math.h']]],
['gf_5fmath_5fvector_5ft_141',['gf_math_vector_t',['../math_8h.html#a866f43b3ea5386cb9497738f1eec3d88',1,'math.h']]],
['gf_5fmesh_2eh_142',['gf_mesh.h',['../gf__mesh_8h.html',1,'']]],
['gf_5fmesh_5ft_143',['gf_mesh_t',['../structgf__mesh__t.html',1,'']]],
['gf_5fmesh_5ftriangle_5ft_144',['gf_mesh_triangle_t',['../structgf__mesh__triangle__t.html',1,'']]],
['gf_5fmodel_2eh_145',['gf_model.h',['../gf__model_8h.html',1,'']]],
['gf_5fmodel_5ft_146',['gf_model_t',['../structgf__model__t.html',1,'']]],
['gf_5fopengl_2eh_147',['gf_opengl.h',['../gf__opengl_8h.html',1,'']]],
['gf_5fphysics_2eh_148',['gf_physics.h',['../gf__physics_8h.html',1,'']]],
['gf_5fphysics_5fbegin_149',['gf_physics_begin',['../gf__physics_8h.html#a046ff3b6d3842c4cfd2c43ec576b09c6',1,'gf_physics.c']]],
['gf_5fphysics_5fcreate_150',['gf_physics_create',['../gf__physics_8h.html#a7e225db0a916463d791036c4d8636993',1,'gf_physics.c']]],
['gf_5fphysics_5fdestroy_151',['gf_physics_destroy',['../gf__physics_8h.html#ad9f65aa74657b4558c67f809c590fad3',1,'gf_physics.c']]],
['gf_5fphysics_5fend_152',['gf_physics_end',['../gf__physics_8h.html#a5724da53e501775d4a0faad3c91f1a14',1,'gf_physics.c']]],
['gf_5fphysics_5ft_153',['gf_physics_t',['../structgf__physics__t.html',1,'']]],
['gf_5fpre_2eh_154',['gf_pre.h',['../gf__pre_8h.html',1,'']]],
['gf_5fserver_2eh_155',['gf_server.h',['../gf__server_8h.html',1,'']]],
['gf_5fserver_5fbegin_156',['gf_server_begin',['../gf__server_8h.html#a656e41de75a97731bffa1653fc2c8d4a',1,'gf_server.c']]],
['gf_5fserver_5fcreate_157',['gf_server_create',['../gf__server_8h.html#a861aac514f048d33ce16e3209e125df5',1,'gf_server.c']]],
['gf_5fserver_5fdestroy_158',['gf_server_destroy',['../gf__server_8h.html#afedff111b1691c5973e264ce4f6a3787',1,'gf_server.c']]],
['gf_5fserver_5fend_159',['gf_server_end',['../gf__server_8h.html#a9f44e37cb5becfe321b352f8801fe22e',1,'gf_server.c']]],
['gf_5fserver_5ft_160',['gf_server_t',['../structgf__server__t.html',1,'']]],
['gf_5fset_5fcolor_161',['GF_SET_COLOR',['../gf__graphic_8h.html#a30c57cf06829cfb3f68556e73a86b203',1,'gf_graphic.h']]],
['gf_5ftexture_2eh_162',['gf_texture.h',['../gf__texture_8h.html',1,'']]],
['gf_5ftexture_5fcreate_163',['gf_texture_create',['../gf__texture_8h.html#a6cd0c41bfc9dbe140bb52f39aaa14080',1,'gf_texture.c']]],
['gf_5ftexture_5fdestroy_164',['gf_texture_destroy',['../gf__texture_8h.html#a3bfedc6c576e35173d3a7b1b9565e649',1,'gf_texture.c']]],
['gf_5ftexture_5ft_165',['gf_texture_t',['../structgf__texture__t.html',1,'']]],
['gf_5fthread_2eh_166',['gf_thread.h',['../gf__thread_8h.html',1,'']]],
['gf_5fthread_5fcontext_5ft_167',['gf_thread_context_t',['../structgf__thread__context__t.html',1,'']]],
['gf_5fthread_5fcreate_168',['gf_thread_create',['../gf__thread_8h.html#ad2a42aa3c8b51ec7e22625e8932906a4',1,'gf_thread.c']]],
['gf_5fthread_5fdestroy_169',['gf_thread_destroy',['../gf__thread_8h.html#ae75b99ee6c28e149e333512f46e8656a',1,'gf_thread.c']]],
['gf_5fthread_5fjoin_170',['gf_thread_join',['../gf__thread_8h.html#a168bd57321daded0d1789442e5680dea',1,'gf_thread.c']]],
['gf_5fthread_5ft_171',['gf_thread_t',['../structgf__thread__t.html',1,'']]],
['gf_5fversion_2eh_172',['gf_version.h',['../gf__version_8h.html',1,'']]],
['gf_5fversion_5fget_173',['gf_version_get',['../gf__version_8h.html#a6bbaecc50f6c677871dcf74d7d7dbc4a',1,'gf_version.c']]],
['gf_5fversion_5ft_174',['gf_version_t',['../structgf__version__t.html',1,'']]],
['glyph_175',['glyph',['../structgf__font__t.html#a1264a95b11cec574d66cda5f57de1808',1,'gf_font_t']]],
['goldfish_20engine_176',['GoldFish Engine',['../index.html',1,'']]],
['graphic_2eh_177',['graphic.h',['../graphic_8h.html',1,'']]],
['gui_178',['gui',['../structgf__draw__t.html#a5db50986159b8a2b1736aa315a5d8063',1,'gf_draw_t']]],
['gui_2eh_179',['gui.h',['../gui_8h.html',1,'']]]
['gf_5faudio_5fdecoder_5ft_3',['gf_audio_decoder_t',['../structgf__audio__decoder__t.html',1,'']]],
['gf_5faudio_5fdestroy_4',['gf_audio_destroy',['../gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b',1,'gf_audio.c']]],
['gf_5faudio_5fload_5',['gf_audio_load',['../gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962',1,'gf_audio.c']]],
['gf_5faudio_5fload_5ffile_6',['gf_audio_load_file',['../gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe',1,'gf_audio.c']]],
['gf_5faudio_5fmax_5fdecoders_7',['GF_AUDIO_MAX_DECODERS',['../audio_8h.html#a6d19d179e9a386872980ec047b37345c',1,'audio.h']]],
['gf_5faudio_5ft_8',['gf_audio_t',['../structgf__audio__t.html',1,'']]],
['gf_5fclient_2eh_9',['gf_client.h',['../gf__client_8h.html',1,'']]],
['gf_5fclient_5fbegin_10',['gf_client_begin',['../gf__client_8h.html#a190d30881f4449e141e915ac42e32d56',1,'gf_client.c']]],
['gf_5fclient_5fcreate_11',['gf_client_create',['../gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a',1,'gf_client.c']]],
['gf_5fclient_5fdestroy_12',['gf_client_destroy',['../gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53',1,'gf_client.c']]],
['gf_5fclient_5fend_13',['gf_client_end',['../gf__client_8h.html#a48fc64674f40797eac53f689e2ba5bae',1,'gf_client.c']]],
['gf_5fclient_5fstep_14',['gf_client_step',['../gf__client_8h.html#aa955ab564cc593944b7ea4ae10efd397',1,'gf_client.c']]],
['gf_5fclient_5ft_15',['gf_client_t',['../structgf__client__t.html',1,'']]],
['gf_5fcore_2eh_16',['gf_core.h',['../gf__core_8h.html',1,'']]],
['gf_5fdeclare_5ftype_17',['GF_DECLARE_TYPE',['../gf__macro_8h.html#a018031ff5fba22b9d5052a55f8c9a377',1,'gf_macro.h']]],
['gf_5fdirectx_2eh_18',['gf_directx.h',['../gf__directx_8h.html',1,'']]],
['gf_5fdraw_2eh_19',['gf_draw.h',['../gf__draw_8h.html',1,'']]],
['gf_5fdraw_5fbegin_20',['gf_draw_begin',['../gf__draw_8h.html#a4575368fee8a93966d657874a0906aaf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fcreate_21',['gf_draw_create',['../gf__draw_8h.html#af65b9048f8e8b33c560f374a945d1dec',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdestroy_22',['gf_draw_destroy',['../gf__draw_8h.html#aa7c19917300ff10b22de455323f01d83',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdriver_2eh_23',['gf_draw_driver.h',['../gf__draw__driver_8h.html',1,'']]],
['gf_5fdraw_5fdriver_5fafter_24',['gf_draw_driver_after',['../gf__draw__driver_8h.html#a646a68acd6e610379fc6ef5511e8c5d9',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbefore_25',['gf_draw_driver_before',['../gf__draw__driver_8h.html#a5d2d7820e9dabe9f558d3f5a45b0ea60',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbegin_5ftexture_5f2d_26',['gf_draw_driver_begin_texture_2d',['../gf__draw__driver_8h.html#ac53faf99d73b8279f7a020a7c08d7121',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fcreate_27',['gf_draw_driver_create',['../gf__draw__driver_8h.html#aebc8d113d5682c2f1090e6f04d0857e4',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_28',['gf_draw_driver_destroy',['../gf__draw__driver_8h.html#af8f5a8642f6e54ece2ab4b6389877b56',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_5ftexture_29',['gf_draw_driver_destroy_texture',['../gf__draw__driver_8h.html#aa43ec41907a9e23dd236332f9d624dac',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fend_5ftexture_5f2d_30',['gf_draw_driver_end_texture_2d',['../gf__draw__driver_8h.html#a43e4c5ac09e1092f2236af7bc3974431',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fhas_5fextension_31',['gf_draw_driver_has_extension',['../gf__draw__driver_8h.html#a9ba4f91da9872bfc447a124cc4cf7d2a',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fregister_5ftexture_32',['gf_draw_driver_register_texture',['../gf__draw__driver_8h.html#a034ba7f18e4d2c0395d4116182c47785',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5freshape_33',['gf_draw_driver_reshape',['../gf__draw__driver_8h.html#af0a260e2df4036c09bebe329c821fc19',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fset_5fcolor_34',['gf_draw_driver_set_color',['../gf__draw__driver_8h.html#a2740a2bb536d05c08ca019e66be4b6c6',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5ft_35',['gf_draw_driver_t',['../structgf__draw__driver__t.html',1,'']]],
['gf_5fdraw_5fdriver_5ftexture_5ft_36',['gf_draw_driver_texture_t',['../structgf__draw__driver__texture__t.html',1,'']]],
['gf_5fdraw_5fend_37',['gf_draw_end',['../gf__draw_8h.html#a11d157bf565b4010f1350dd5329fa4a4',1,'gf_draw_common.c']]],
['gf_5fdraw_5fframe_38',['gf_draw_frame',['../gf__draw_8h.html#a4887fe11d8dfe55cf784e07b382b046a',1,'gf_draw_common.c']]],
['gf_5fdraw_5fplatform_2eh_39',['gf_draw_platform.h',['../gf__draw__platform_8h.html',1,'']]],
['gf_5fdraw_5fplatform_5fbegin_40',['gf_draw_platform_begin',['../gf__draw__platform_8h.html#aa3106f20d1a654acf65f5e4ddb7a0fdd',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fcreate_41',['gf_draw_platform_create',['../gf__draw__platform_8h.html#ae0d81adf1fa83413f5052dab1fc4793f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fdestroy_42',['gf_draw_platform_destroy',['../gf__draw__platform_8h.html#a24822bbf6cda6c2cbe336d70116dfb25',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fend_43',['gf_draw_platform_end',['../gf__draw__platform_8h.html#ad6f83af1b5dec4457aea20dcab88c94f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fhas_5fextension_44',['gf_draw_platform_has_extension',['../gf__draw__platform_8h.html#a368f0172138b75a37072d1ed357b1183',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fstep_45',['gf_draw_platform_step',['../gf__draw__platform_8h.html#af006e1dd0055cd824dd61122454d6192',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5ft_46',['gf_draw_platform_t',['../structgf__draw__platform__t.html',1,'']]],
['gf_5fdraw_5freshape_47',['gf_draw_reshape',['../gf__draw_8h.html#af1d6ba858a1cee357f8626501540e8bf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fset_5finput_48',['gf_draw_set_input',['../gf__draw_8h.html#a4a0353d9ffdb96b2c26600b185b16f4f',1,'gf_draw_common.c']]],
['gf_5fdraw_5fstep_49',['gf_draw_step',['../gf__draw_8h.html#a47934a1eafd8426cc145a97e36867551',1,'gf_draw_common.c']]],
['gf_5fdraw_5ft_50',['gf_draw_t',['../structgf__draw__t.html',1,'']]],
['gf_5fengine_5fbegin_51',['gf_engine_begin',['../gf__core_8h.html#ade0f3fb928e49b05985f095e95fb1f92',1,'gf_core.c']]],
['gf_5fengine_5fcreate_52',['gf_engine_create',['../gf__core_8h.html#a741291298ef02f3dceb1fdeaee2e27b4',1,'gf_core.c']]],
['gf_5fengine_5fdestroy_53',['gf_engine_destroy',['../gf__core_8h.html#a978d9c52b1d1098b5fc2f3e869036b64',1,'gf_core.c']]],
['gf_5fengine_5fend_54',['gf_engine_end',['../gf__core_8h.html#abae48921e84f92d590608745536a9ffc',1,'gf_core.c']]],
['gf_5fengine_5floop_55',['gf_engine_loop',['../gf__core_8h.html#aa9a229aa7c06d1a02ae89f93b8029fea',1,'gf_core.c']]],
['gf_5fengine_5ft_56',['gf_engine_t',['../structgf__engine__t.html',1,'']]],
['gf_5fexport_57',['GF_EXPORT',['../gf__macro_8h.html#a64ddd31b0795e397b5d944e6f1821357',1,'gf_macro.h']]],
['gf_5fexpose_5faudio_58',['GF_EXPOSE_AUDIO',['../gf__macro_8h.html#a0c037da6649bf5ca0c58c12ec3a422ff',1,'gf_macro.h']]],
['gf_5fexpose_5fclient_59',['GF_EXPOSE_CLIENT',['../gf__macro_8h.html#a13d820c4f195f0f38ce7d791a9a4ddeb',1,'gf_macro.h']]],
['gf_5fexpose_5fcore_60',['GF_EXPOSE_CORE',['../gf__macro_8h.html#a697eb08d834a4889d84940e79575779d',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_61',['GF_EXPOSE_DRAW',['../gf__macro_8h.html#a438e60b3ef2df2ad0a220523e95d6dca',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_5fdriver_62',['GF_EXPOSE_DRAW_DRIVER',['../gf__macro_8h.html#a25f301eb3d5e8c3bfb8187876fa36efa',1,'gf_macro.h']]],
['gf_5fexpose_5fdraw_5fplatform_63',['GF_EXPOSE_DRAW_PLATFORM',['../gf__macro_8h.html#a5a117ced8c73165c3cc6144a49bf5af0',1,'gf_macro.h']]],
['gf_5fexpose_5ffont_64',['GF_EXPOSE_FONT',['../gf__macro_8h.html#a44fcf2830dd68160e7745e6c93a0fc15',1,'gf_macro.h']]],
['gf_5fexpose_5fgraphic_65',['GF_EXPOSE_GRAPHIC',['../gf__macro_8h.html#a9c8f57368c8d0b9a005e88951bb6b999',1,'gf_macro.h']]],
['gf_5fexpose_5fgui_66',['GF_EXPOSE_GUI',['../gf__macro_8h.html#a4a8b5bd4a3f26e4e775db703d383e315',1,'gf_macro.h']]],
['gf_5fexpose_5finput_67',['GF_EXPOSE_INPUT',['../gf__macro_8h.html#a8412a96f3ebbf985b342603585944166',1,'gf_macro.h']]],
['gf_5fexpose_5fmath_68',['GF_EXPOSE_MATH',['../gf__macro_8h.html#a0741ff0ae6d4298a707cb24a2b88d13e',1,'gf_macro.h']]],
['gf_5fexpose_5fmesh_69',['GF_EXPOSE_MESH',['../gf__macro_8h.html#ac44de892fe92937b0c6bf471ed7c39d3',1,'gf_macro.h']]],
['gf_5fexpose_5fmodel_70',['GF_EXPOSE_MODEL',['../gf__macro_8h.html#a162dc93ccefb746c38c3874a79b42eca',1,'gf_macro.h']]],
['gf_5fexpose_5fphysics_71',['GF_EXPOSE_PHYSICS',['../gf__macro_8h.html#aeb8d09c8509f1bbb5c2647be76806117',1,'gf_macro.h']]],
['gf_5fexpose_5fserver_72',['GF_EXPOSE_SERVER',['../gf__macro_8h.html#a7bbb6e42ee5fdf2e1dbbb4678e46973a',1,'gf_macro.h']]],
['gf_5fexpose_5ftexture_73',['GF_EXPOSE_TEXTURE',['../gf__macro_8h.html#a1b10588ebedb9c8ea44c1e4d2dd11086',1,'gf_macro.h']]],
['gf_5fexpose_5fthread_74',['GF_EXPOSE_THREAD',['../gf__macro_8h.html#aeddf0443a9813483ca6bfc05190915e0',1,'gf_macro.h']]],
['gf_5fexpose_5fversion_75',['GF_EXPOSE_VERSION',['../gf__macro_8h.html#a522da62928e59f2d7e01a128eb2441f2',1,'gf_macro.h']]],
['gf_5ffont_2eh_76',['gf_font.h',['../gf__font_8h.html',1,'']]],
['gf_5ffont_5fbbox_5ft_77',['gf_font_bbox_t',['../structgf__font__bbox__t.html',1,'']]],
['gf_5ffont_5fcreate_78',['gf_font_create',['../gf__font_8h.html#a0d171fe12d2ac1d3acc18476436608a1',1,'gf_font.c']]],
['gf_5ffont_5fget_79',['gf_font_get',['../gf__font_8h.html#adc4a1d10e49218c6383f5af6c4752fa1',1,'gf_font.c']]],
['gf_5ffont_5fglyph_5ft_80',['gf_font_glyph_t',['../structgf__font__glyph__t.html',1,'']]],
['gf_5ffont_5fstore_5ft_81',['gf_font_store_t',['../structgf__font__store__t.html',1,'']]],
['gf_5ffont_5ft_82',['gf_font_t',['../structgf__font__t.html',1,'']]],
['gf_5fgraphic_2eh_83',['gf_graphic.h',['../gf__graphic_8h.html',1,'']]],
['gf_5fgraphic_5f2d_84',['GF_GRAPHIC_2D',['../gf__graphic_8h.html#ab0a76f61b9510881b842dbba4b0b54c0',1,'gf_graphic.h']]],
['gf_5fgraphic_5f3d_85',['GF_GRAPHIC_3D',['../gf__graphic_8h.html#a0b9f704231aa067e58c6a8e7a42afdcf',1,'gf_graphic.h']]],
['gf_5fgraphic_5fbegin_5f2d_86',['gf_graphic_begin_2d',['../gf__graphic_8h.html#ad35db673e213edbadbfd938138c88a4c',1,'gf_graphic.c']]],
['gf_5fgraphic_5fclear_87',['gf_graphic_clear',['../gf__graphic_8h.html#a74f8bf7e2fc346f7d85ecfcea061f3fb',1,'gf_graphic.c']]],
['gf_5fgraphic_5fcolor_5ft_88',['gf_graphic_color_t',['../structgf__graphic__color__t.html',1,'']]],
['gf_5fgraphic_5fdraw_5ftexture_5f2d_89',['gf_graphic_draw_texture_2d',['../gf__graphic_8h.html#a3285370a495233cc7db4f25317cd5fb0',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5fpolygon_90',['gf_graphic_draw_texture_polygon',['../gf__graphic_8h.html#a4157822cc342fa294329ed2c436d53f2',1,'gf_graphic.c']]],
['gf_5fgraphic_5fend_5f2d_91',['gf_graphic_end_2d',['../gf__graphic_8h.html#acd5d3047cf76b63b2d1161e4e880f446',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5fpolygon_92',['gf_graphic_fill_polygon',['../gf__graphic_8h.html#a8ff780a4bcadc008355699101d2a42cc',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5frect_93',['gf_graphic_fill_rect',['../gf__graphic_8h.html#a4811198de205914602e5cdbafdcdd68d',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fperspective_94',['gf_graphic_perspective',['../gf__graphic_8h.html#a95e7c86d8e9b64501af7de7268f6d74d',1,'gf_graphic.c']]],
['gf_5fgraphic_5fset_5fcamera_95',['gf_graphic_set_camera',['../gf__graphic_8h.html#af8285b506b90125960bf01b427a9a883',1,'gf_graphic.c']]],
['gf_5fgraphic_5ftext_96',['gf_graphic_text',['../gf__graphic_8h.html#a9840372651011386f6851954e95e7943',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5ftext_5fwidth_97',['gf_graphic_text_width',['../gf__graphic_8h.html#a996f203bc791922f639ad2e02b5299c1',1,'gf_graphic_common.c']]],
['gf_5fgui_2eh_98',['gf_gui.h',['../gf__gui_8h.html',1,'']]],
['gf_5fgui_5fbutton_5ft_99',['gf_gui_button_t',['../structgf__gui__button__t.html',1,'']]],
['gf_5fgui_5fcomponent_5ft_100',['gf_gui_component_t',['../structgf__gui__component__t.html',1,'']]],
['gf_5fgui_5fcomponent_5ftypes_101',['GF_GUI_COMPONENT_TYPES',['../gui_8h.html#a29f22c7359d8c3b586f0d4eb82213d03',1,'gui.h']]],
['gf_5fgui_5fcreate_102',['gf_gui_create',['../gf__gui_8h.html#a929e99bf9dd58e4abc0c9f2a6b1341a1',1,'gf_gui.c']]],
['gf_5fgui_5fcreate_5fbutton_103',['gf_gui_create_button',['../gf__gui_8h.html#a9bfb5fc1e4dff3c3f0e4748d5b8c3c2e',1,'gf_gui.c']]],
['gf_5fgui_5fdraw_5fbox_104',['gf_gui_draw_box',['../gf__gui_8h.html#a670ac29a4409cc16c8d77f2d33ccc499',1,'gf_gui.c']]],
['gf_5fgui_5fevents_105',['GF_GUI_EVENTS',['../gui_8h.html#a7a5228e21a2d5c98d2b88d5e7bc97d82',1,'gui.h']]],
['gf_5fgui_5ffirst_5funused_106',['gf_gui_first_unused',['../gf__gui_8h.html#a39fc0e9d0e6ebaf3d60e1275008124b5',1,'gf_gui.c']]],
['gf_5fgui_5ffont_5fsize_107',['GF_GUI_FONT_SIZE',['../gf__gui_8h.html#a59c22dec721b5a703d29e0b0d9fc3522',1,'gf_gui.h']]],
['gf_5fgui_5fid_5ft_108',['gf_gui_id_t',['../gui_8h.html#a17ba559c53b849a8391b8f48d91b4f11',1,'gui.h']]],
['gf_5fgui_5finvert_109',['GF_GUI_INVERT',['../gf__gui_8h.html#a01d6d034ff93d118bcbabf86f33735c5',1,'gf_gui.h']]],
['gf_5fgui_5fmax_5fcomponents_110',['GF_GUI_MAX_COMPONENTS',['../gui_8h.html#a33770d9046d53ad607fcc938f1619eb8',1,'gui.h']]],
['gf_5fgui_5fnormal_111',['GF_GUI_NORMAL',['../gf__gui_8h.html#ad122969dc187a91908fc312f185eaa46',1,'gf_gui.h']]],
['gf_5fgui_5frender_112',['gf_gui_render',['../gf__gui_8h.html#a41f221ae3b2221553f49678f9434976c',1,'gf_gui.c']]],
['gf_5fgui_5fset_5fcallback_113',['gf_gui_set_callback',['../gf__gui_8h.html#ac4dbc67180bd8f83906b16fc268a8e78',1,'gf_gui.c']]],
['gf_5fgui_5ft_114',['gf_gui_t',['../structgf__gui__t.html',1,'']]],
['gf_5fgui_5funion_5ft_115',['gf_gui_union_t',['../uniongf__gui__union__t.html',1,'']]],
['gf_5finput_2eh_116',['gf_input.h',['../gf__input_8h.html',1,'']]],
['gf_5finput_5fcreate_117',['gf_input_create',['../gf__input_8h.html#ac926a70928c687f96cfbc24aef8ca96d',1,'gf_input.c']]],
['gf_5finput_5fdestroy_118',['gf_input_destroy',['../gf__input_8h.html#ac4a22f8231c87a464f6be7faead5dec2',1,'gf_input.c']]],
['gf_5finput_5fmouse_5fleft_5fmask_119',['GF_INPUT_MOUSE_LEFT_MASK',['../input_8h.html#a9e633a7c5d0bd577a11243b397354588',1,'input.h']]],
['gf_5finput_5fmouse_5fmiddle_5fmask_120',['GF_INPUT_MOUSE_MIDDLE_MASK',['../input_8h.html#a1bcb3fe6d407a1f4791efcbd86cffac9',1,'input.h']]],
['gf_5finput_5fmouse_5fright_5fmask_121',['GF_INPUT_MOUSE_RIGHT_MASK',['../input_8h.html#aa131fcdb7b5d6864c62b32b86f702962',1,'input.h']]],
['gf_5finput_5ft_122',['gf_input_t',['../structgf__input__t.html',1,'']]],
['gf_5flog_123',['gf_log',['../gf__log_8h.html#aed92dc232c3ae9cabdff1eeea67dfa90',1,'gf_log.c']]],
['gf_5flog_2eh_124',['gf_log.h',['../gf__log_8h.html',1,'']]],
['gf_5flog_5ffunction_125',['gf_log_function',['../gf__log_8h.html#a165a2d1cecbdd974b4a44450011bb84a',1,'gf_log.h']]],
['gf_5fmacro_2eh_126',['gf_macro.h',['../gf__macro_8h.html',1,'']]],
['gf_5fmath_2eh_127',['gf_math.h',['../gf__math_8h.html',1,'']]],
['gf_5fmath_5fcot_128',['gf_math_cot',['../gf__math_8h.html#aac8f6a22f2880f5b86b20a191a662333',1,'gf_math.c']]],
['gf_5fmath_5flog2_129',['gf_math_log2',['../gf__math_8h.html#a018423cb05adf480f9c3f28f304d1c47',1,'gf_math.c']]],
['gf_5fmath_5fmultiply_130',['gf_math_multiply',['../gf__math_8h.html#a394ebd35e2cddf28c86a45dad759fbee',1,'gf_math.c']]],
['gf_5fmath_5fnearest_5f2pow_131',['gf_math_nearest_2pow',['../gf__math_8h.html#aefea2441e869786726095fcda71750dc',1,'gf_math.c']]],
['gf_5fmath_5fnormal_132',['gf_math_normal',['../gf__math_8h.html#a5438b2f7f1324cdd664f2b823faa1ba6',1,'gf_math.c']]],
['gf_5fmath_5fnormalize_133',['gf_math_normalize',['../gf__math_8h.html#a3bd2afc9ff0e67e60afef9fe82553726',1,'gf_math.c']]],
['gf_5fmath_5fpi_134',['GF_MATH_PI',['../gf__math_8h.html#a8bf10c0638a206ac572807e90508b6b5',1,'gf_math.h']]],
['gf_5fmath_5fsubtract_135',['gf_math_subtract',['../gf__math_8h.html#a9df6d1b30bea0b200582e2873bddd113',1,'gf_math.c']]],
['gf_5fmath_5fvector_5fcopy_136',['GF_MATH_VECTOR_COPY',['../gf__math_8h.html#a545245d1e846e9c756e776eb6138536b',1,'gf_math.h']]],
['gf_5fmath_5fvector_5ft_137',['gf_math_vector_t',['../math_8h.html#a866f43b3ea5386cb9497738f1eec3d88',1,'math.h']]],
['gf_5fmesh_2eh_138',['gf_mesh.h',['../gf__mesh_8h.html',1,'']]],
['gf_5fmesh_5ft_139',['gf_mesh_t',['../structgf__mesh__t.html',1,'']]],
['gf_5fmesh_5ftriangle_5ft_140',['gf_mesh_triangle_t',['../structgf__mesh__triangle__t.html',1,'']]],
['gf_5fmodel_2eh_141',['gf_model.h',['../gf__model_8h.html',1,'']]],
['gf_5fmodel_5ft_142',['gf_model_t',['../structgf__model__t.html',1,'']]],
['gf_5fopengl_2eh_143',['gf_opengl.h',['../gf__opengl_8h.html',1,'']]],
['gf_5fphysics_2eh_144',['gf_physics.h',['../gf__physics_8h.html',1,'']]],
['gf_5fphysics_5fbegin_145',['gf_physics_begin',['../gf__physics_8h.html#a046ff3b6d3842c4cfd2c43ec576b09c6',1,'gf_physics.c']]],
['gf_5fphysics_5fcreate_146',['gf_physics_create',['../gf__physics_8h.html#a7e225db0a916463d791036c4d8636993',1,'gf_physics.c']]],
['gf_5fphysics_5fdestroy_147',['gf_physics_destroy',['../gf__physics_8h.html#ad9f65aa74657b4558c67f809c590fad3',1,'gf_physics.c']]],
['gf_5fphysics_5fend_148',['gf_physics_end',['../gf__physics_8h.html#a5724da53e501775d4a0faad3c91f1a14',1,'gf_physics.c']]],
['gf_5fphysics_5ft_149',['gf_physics_t',['../structgf__physics__t.html',1,'']]],
['gf_5fpre_2eh_150',['gf_pre.h',['../gf__pre_8h.html',1,'']]],
['gf_5fserver_2eh_151',['gf_server.h',['../gf__server_8h.html',1,'']]],
['gf_5fserver_5fbegin_152',['gf_server_begin',['../gf__server_8h.html#a656e41de75a97731bffa1653fc2c8d4a',1,'gf_server.c']]],
['gf_5fserver_5fcreate_153',['gf_server_create',['../gf__server_8h.html#a861aac514f048d33ce16e3209e125df5',1,'gf_server.c']]],
['gf_5fserver_5fdestroy_154',['gf_server_destroy',['../gf__server_8h.html#afedff111b1691c5973e264ce4f6a3787',1,'gf_server.c']]],
['gf_5fserver_5fend_155',['gf_server_end',['../gf__server_8h.html#a9f44e37cb5becfe321b352f8801fe22e',1,'gf_server.c']]],
['gf_5fserver_5ft_156',['gf_server_t',['../structgf__server__t.html',1,'']]],
['gf_5fset_5fcolor_157',['GF_SET_COLOR',['../gf__graphic_8h.html#a30c57cf06829cfb3f68556e73a86b203',1,'gf_graphic.h']]],
['gf_5ftexture_2eh_158',['gf_texture.h',['../gf__texture_8h.html',1,'']]],
['gf_5ftexture_5fcreate_159',['gf_texture_create',['../gf__texture_8h.html#a6cd0c41bfc9dbe140bb52f39aaa14080',1,'gf_texture.c']]],
['gf_5ftexture_5fdestroy_160',['gf_texture_destroy',['../gf__texture_8h.html#a3bfedc6c576e35173d3a7b1b9565e649',1,'gf_texture.c']]],
['gf_5ftexture_5ft_161',['gf_texture_t',['../structgf__texture__t.html',1,'']]],
['gf_5fthread_2eh_162',['gf_thread.h',['../gf__thread_8h.html',1,'']]],
['gf_5fthread_5fcontext_5ft_163',['gf_thread_context_t',['../structgf__thread__context__t.html',1,'']]],
['gf_5fthread_5fcreate_164',['gf_thread_create',['../gf__thread_8h.html#ad2a42aa3c8b51ec7e22625e8932906a4',1,'gf_thread.c']]],
['gf_5fthread_5fdestroy_165',['gf_thread_destroy',['../gf__thread_8h.html#ae75b99ee6c28e149e333512f46e8656a',1,'gf_thread.c']]],
['gf_5fthread_5fjoin_166',['gf_thread_join',['../gf__thread_8h.html#a168bd57321daded0d1789442e5680dea',1,'gf_thread.c']]],
['gf_5fthread_5ft_167',['gf_thread_t',['../structgf__thread__t.html',1,'']]],
['gf_5fversion_2eh_168',['gf_version.h',['../gf__version_8h.html',1,'']]],
['gf_5fversion_5fget_169',['gf_version_get',['../gf__version_8h.html#a6bbaecc50f6c677871dcf74d7d7dbc4a',1,'gf_version.c']]],
['gf_5fversion_5ft_170',['gf_version_t',['../structgf__version__t.html',1,'']]],
['glyph_171',['glyph',['../structgf__font__t.html#a1264a95b11cec574d66cda5f57de1808',1,'gf_font_t']]],
['goldfish_20engine_172',['GoldFish Engine',['../index.html',1,'']]],
['graphic_2eh_173',['graphic.h',['../graphic_8h.html',1,'']]],
['gui_174',['gui',['../structgf__draw__t.html#a5db50986159b8a2b1736aa315a5d8063',1,'gf_draw_t']]],
['gui_2eh_175',['gui.h',['../gui_8h.html',1,'']]]
];

View File

@ -5,10 +5,8 @@ var searchData=
['mesh_2',['mesh',['../structgf__model__t.html#aa28477a09739d0ef7566532fdb62aa06',1,'gf_model_t']]],
['mesh_2eh_3',['mesh.h',['../mesh_8h.html',1,'']]],
['minor_4',['minor',['../structgf__version__t.html#a573839ca44261b9ccbd73e43be57d326',1,'gf_version_t']]],
['mod_5',['mod',['../structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc',1,'gf_audio_decoder_t']]],
['model_2eh_6',['model.h',['../model_8h.html',1,'']]],
['mouse_5fflag_7',['mouse_flag',['../structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1',1,'gf_input_t']]],
['mouse_5fx_8',['mouse_x',['../structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5',1,'gf_input_t']]],
['mouse_5fy_9',['mouse_y',['../structgf__input__t.html#ac47540120552de68249a985e09d7bd9f',1,'gf_input_t']]],
['mutex_10',['mutex',['../structgf__audio__t.html#a8dc02290f6f59821db420f365985f592',1,'gf_audio_t']]]
['model_2eh_5',['model.h',['../model_8h.html',1,'']]],
['mouse_5fflag_6',['mouse_flag',['../structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1',1,'gf_input_t']]],
['mouse_5fx_7',['mouse_x',['../structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5',1,'gf_input_t']]],
['mouse_5fy_8',['mouse_y',['../structgf__input__t.html#ac47540120552de68249a985e09d7bd9f',1,'gf_input_t']]]
];

View File

@ -1,7 +1,6 @@
var searchData=
[
['samples_0',['samples',['../structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663',1,'gf_audio_decoder_t']]],
['server_1',['server',['../structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390',1,'gf_engine_t']]],
['server_2eh_2',['server.h',['../server_8h.html',1,'']]],
['stack_3',['Stack',['../index.html#autotoc_md1',1,'']]]
['server_0',['server',['../structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390',1,'gf_engine_t']]],
['server_2eh_1',['server.h',['../server_8h.html',1,'']]],
['stack_2',['Stack',['../index.html#autotoc_md1',1,'']]]
];

View File

@ -1,89 +1,85 @@
var searchData=
[
['gf_5faudio_5fcreate_0',['gf_audio_create',['../gf__audio_8h.html#a52e61cbf2518774a590141631e053330',1,'gf_audio.c']]],
['gf_5faudio_5fdecoder_5fdestroy_1',['gf_audio_decoder_destroy',['../gf__audio_8h.html#ae34c8bd9d398a4335a1c6f9cc290ebdb',1,'gf_audio.c']]],
['gf_5faudio_5fdestroy_2',['gf_audio_destroy',['../gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b',1,'gf_audio.c']]],
['gf_5faudio_5fload_3',['gf_audio_load',['../gf__audio_8h.html#a391139463501e0f9962974b208d9e4b2',1,'gf_audio.c']]],
['gf_5faudio_5fload_5ffile_4',['gf_audio_load_file',['../gf__audio_8h.html#af3ae4fe048705bae7ce8a377976a4c2d',1,'gf_audio.c']]],
['gf_5faudio_5fpause_5',['gf_audio_pause',['../gf__audio_8h.html#af319f87c14e6b784de694c065d147c80',1,'gf_audio.c']]],
['gf_5faudio_5fresume_6',['gf_audio_resume',['../gf__audio_8h.html#a336ebd4c24f26fb744114f955292f58b',1,'gf_audio.c']]],
['gf_5faudio_5fstop_7',['gf_audio_stop',['../gf__audio_8h.html#a270465ee43fdc71840bd1a5dbd0a1ec1',1,'gf_audio.c']]],
['gf_5fclient_5fbegin_8',['gf_client_begin',['../gf__client_8h.html#a190d30881f4449e141e915ac42e32d56',1,'gf_client.c']]],
['gf_5fclient_5fcreate_9',['gf_client_create',['../gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a',1,'gf_client.c']]],
['gf_5fclient_5fdestroy_10',['gf_client_destroy',['../gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53',1,'gf_client.c']]],
['gf_5fclient_5fend_11',['gf_client_end',['../gf__client_8h.html#a48fc64674f40797eac53f689e2ba5bae',1,'gf_client.c']]],
['gf_5fclient_5fstep_12',['gf_client_step',['../gf__client_8h.html#aa955ab564cc593944b7ea4ae10efd397',1,'gf_client.c']]],
['gf_5fdraw_5fbegin_13',['gf_draw_begin',['../gf__draw_8h.html#a4575368fee8a93966d657874a0906aaf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fcreate_14',['gf_draw_create',['../gf__draw_8h.html#af65b9048f8e8b33c560f374a945d1dec',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdestroy_15',['gf_draw_destroy',['../gf__draw_8h.html#aa7c19917300ff10b22de455323f01d83',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdriver_5fafter_16',['gf_draw_driver_after',['../gf__draw__driver_8h.html#a646a68acd6e610379fc6ef5511e8c5d9',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbefore_17',['gf_draw_driver_before',['../gf__draw__driver_8h.html#a5d2d7820e9dabe9f558d3f5a45b0ea60',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbegin_5ftexture_5f2d_18',['gf_draw_driver_begin_texture_2d',['../gf__draw__driver_8h.html#ac53faf99d73b8279f7a020a7c08d7121',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fcreate_19',['gf_draw_driver_create',['../gf__draw__driver_8h.html#aebc8d113d5682c2f1090e6f04d0857e4',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_20',['gf_draw_driver_destroy',['../gf__draw__driver_8h.html#af8f5a8642f6e54ece2ab4b6389877b56',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_5ftexture_21',['gf_draw_driver_destroy_texture',['../gf__draw__driver_8h.html#aa43ec41907a9e23dd236332f9d624dac',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fend_5ftexture_5f2d_22',['gf_draw_driver_end_texture_2d',['../gf__draw__driver_8h.html#a43e4c5ac09e1092f2236af7bc3974431',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fhas_5fextension_23',['gf_draw_driver_has_extension',['../gf__draw__driver_8h.html#a9ba4f91da9872bfc447a124cc4cf7d2a',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fregister_5ftexture_24',['gf_draw_driver_register_texture',['../gf__draw__driver_8h.html#a034ba7f18e4d2c0395d4116182c47785',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5freshape_25',['gf_draw_driver_reshape',['../gf__draw__driver_8h.html#af0a260e2df4036c09bebe329c821fc19',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fset_5fcolor_26',['gf_draw_driver_set_color',['../gf__draw__driver_8h.html#a2740a2bb536d05c08ca019e66be4b6c6',1,'gf_driver.c']]],
['gf_5fdraw_5fend_27',['gf_draw_end',['../gf__draw_8h.html#a11d157bf565b4010f1350dd5329fa4a4',1,'gf_draw_common.c']]],
['gf_5fdraw_5fframe_28',['gf_draw_frame',['../gf__draw_8h.html#a4887fe11d8dfe55cf784e07b382b046a',1,'gf_draw_common.c']]],
['gf_5fdraw_5fplatform_5fbegin_29',['gf_draw_platform_begin',['../gf__draw__platform_8h.html#aa3106f20d1a654acf65f5e4ddb7a0fdd',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fcreate_30',['gf_draw_platform_create',['../gf__draw__platform_8h.html#ae0d81adf1fa83413f5052dab1fc4793f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fdestroy_31',['gf_draw_platform_destroy',['../gf__draw__platform_8h.html#a24822bbf6cda6c2cbe336d70116dfb25',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fend_32',['gf_draw_platform_end',['../gf__draw__platform_8h.html#ad6f83af1b5dec4457aea20dcab88c94f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fhas_5fextension_33',['gf_draw_platform_has_extension',['../gf__draw__platform_8h.html#a368f0172138b75a37072d1ed357b1183',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fstep_34',['gf_draw_platform_step',['../gf__draw__platform_8h.html#af006e1dd0055cd824dd61122454d6192',1,'gf_draw.c']]],
['gf_5fdraw_5freshape_35',['gf_draw_reshape',['../gf__draw_8h.html#af1d6ba858a1cee357f8626501540e8bf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fset_5finput_36',['gf_draw_set_input',['../gf__draw_8h.html#a4a0353d9ffdb96b2c26600b185b16f4f',1,'gf_draw_common.c']]],
['gf_5fdraw_5fstep_37',['gf_draw_step',['../gf__draw_8h.html#a47934a1eafd8426cc145a97e36867551',1,'gf_draw_common.c']]],
['gf_5fengine_5fbegin_38',['gf_engine_begin',['../gf__core_8h.html#ade0f3fb928e49b05985f095e95fb1f92',1,'gf_core.c']]],
['gf_5fengine_5fcreate_39',['gf_engine_create',['../gf__core_8h.html#a741291298ef02f3dceb1fdeaee2e27b4',1,'gf_core.c']]],
['gf_5fengine_5fdestroy_40',['gf_engine_destroy',['../gf__core_8h.html#a978d9c52b1d1098b5fc2f3e869036b64',1,'gf_core.c']]],
['gf_5fengine_5fend_41',['gf_engine_end',['../gf__core_8h.html#abae48921e84f92d590608745536a9ffc',1,'gf_core.c']]],
['gf_5fengine_5floop_42',['gf_engine_loop',['../gf__core_8h.html#aa9a229aa7c06d1a02ae89f93b8029fea',1,'gf_core.c']]],
['gf_5ffont_5fcreate_43',['gf_font_create',['../gf__font_8h.html#a0d171fe12d2ac1d3acc18476436608a1',1,'gf_font.c']]],
['gf_5ffont_5fget_44',['gf_font_get',['../gf__font_8h.html#adc4a1d10e49218c6383f5af6c4752fa1',1,'gf_font.c']]],
['gf_5fgraphic_5fbegin_5f2d_45',['gf_graphic_begin_2d',['../gf__graphic_8h.html#ad35db673e213edbadbfd938138c88a4c',1,'gf_graphic.c']]],
['gf_5fgraphic_5fclear_46',['gf_graphic_clear',['../gf__graphic_8h.html#a74f8bf7e2fc346f7d85ecfcea061f3fb',1,'gf_graphic.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5f2d_47',['gf_graphic_draw_texture_2d',['../gf__graphic_8h.html#a3285370a495233cc7db4f25317cd5fb0',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5fpolygon_48',['gf_graphic_draw_texture_polygon',['../gf__graphic_8h.html#a4157822cc342fa294329ed2c436d53f2',1,'gf_graphic.c']]],
['gf_5fgraphic_5fend_5f2d_49',['gf_graphic_end_2d',['../gf__graphic_8h.html#acd5d3047cf76b63b2d1161e4e880f446',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5fpolygon_50',['gf_graphic_fill_polygon',['../gf__graphic_8h.html#a8ff780a4bcadc008355699101d2a42cc',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5frect_51',['gf_graphic_fill_rect',['../gf__graphic_8h.html#a4811198de205914602e5cdbafdcdd68d',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fperspective_52',['gf_graphic_perspective',['../gf__graphic_8h.html#a95e7c86d8e9b64501af7de7268f6d74d',1,'gf_graphic.c']]],
['gf_5fgraphic_5fset_5fcamera_53',['gf_graphic_set_camera',['../gf__graphic_8h.html#af8285b506b90125960bf01b427a9a883',1,'gf_graphic.c']]],
['gf_5fgraphic_5ftext_54',['gf_graphic_text',['../gf__graphic_8h.html#a9840372651011386f6851954e95e7943',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5ftext_5fwidth_55',['gf_graphic_text_width',['../gf__graphic_8h.html#a996f203bc791922f639ad2e02b5299c1',1,'gf_graphic_common.c']]],
['gf_5fgui_5fcreate_56',['gf_gui_create',['../gf__gui_8h.html#a929e99bf9dd58e4abc0c9f2a6b1341a1',1,'gf_gui.c']]],
['gf_5fgui_5fcreate_5fbutton_57',['gf_gui_create_button',['../gf__gui_8h.html#a9bfb5fc1e4dff3c3f0e4748d5b8c3c2e',1,'gf_gui.c']]],
['gf_5fgui_5fdraw_5fbox_58',['gf_gui_draw_box',['../gf__gui_8h.html#a670ac29a4409cc16c8d77f2d33ccc499',1,'gf_gui.c']]],
['gf_5fgui_5ffirst_5funused_59',['gf_gui_first_unused',['../gf__gui_8h.html#a39fc0e9d0e6ebaf3d60e1275008124b5',1,'gf_gui.c']]],
['gf_5fgui_5frender_60',['gf_gui_render',['../gf__gui_8h.html#a41f221ae3b2221553f49678f9434976c',1,'gf_gui.c']]],
['gf_5fgui_5fset_5fcallback_61',['gf_gui_set_callback',['../gf__gui_8h.html#ac4dbc67180bd8f83906b16fc268a8e78',1,'gf_gui.c']]],
['gf_5finput_5fcreate_62',['gf_input_create',['../gf__input_8h.html#ac926a70928c687f96cfbc24aef8ca96d',1,'gf_input.c']]],
['gf_5finput_5fdestroy_63',['gf_input_destroy',['../gf__input_8h.html#ac4a22f8231c87a464f6be7faead5dec2',1,'gf_input.c']]],
['gf_5flog_64',['gf_log',['../gf__log_8h.html#aed92dc232c3ae9cabdff1eeea67dfa90',1,'gf_log.c']]],
['gf_5fmath_5fcot_65',['gf_math_cot',['../gf__math_8h.html#aac8f6a22f2880f5b86b20a191a662333',1,'gf_math.c']]],
['gf_5fmath_5flog2_66',['gf_math_log2',['../gf__math_8h.html#a018423cb05adf480f9c3f28f304d1c47',1,'gf_math.c']]],
['gf_5fmath_5fmultiply_67',['gf_math_multiply',['../gf__math_8h.html#a394ebd35e2cddf28c86a45dad759fbee',1,'gf_math.c']]],
['gf_5fmath_5fnearest_5f2pow_68',['gf_math_nearest_2pow',['../gf__math_8h.html#aefea2441e869786726095fcda71750dc',1,'gf_math.c']]],
['gf_5fmath_5fnormal_69',['gf_math_normal',['../gf__math_8h.html#a5438b2f7f1324cdd664f2b823faa1ba6',1,'gf_math.c']]],
['gf_5fmath_5fnormalize_70',['gf_math_normalize',['../gf__math_8h.html#a3bd2afc9ff0e67e60afef9fe82553726',1,'gf_math.c']]],
['gf_5fmath_5fsubtract_71',['gf_math_subtract',['../gf__math_8h.html#a9df6d1b30bea0b200582e2873bddd113',1,'gf_math.c']]],
['gf_5fphysics_5fbegin_72',['gf_physics_begin',['../gf__physics_8h.html#a046ff3b6d3842c4cfd2c43ec576b09c6',1,'gf_physics.c']]],
['gf_5fphysics_5fcreate_73',['gf_physics_create',['../gf__physics_8h.html#a7e225db0a916463d791036c4d8636993',1,'gf_physics.c']]],
['gf_5fphysics_5fdestroy_74',['gf_physics_destroy',['../gf__physics_8h.html#ad9f65aa74657b4558c67f809c590fad3',1,'gf_physics.c']]],
['gf_5fphysics_5fend_75',['gf_physics_end',['../gf__physics_8h.html#a5724da53e501775d4a0faad3c91f1a14',1,'gf_physics.c']]],
['gf_5fserver_5fbegin_76',['gf_server_begin',['../gf__server_8h.html#a656e41de75a97731bffa1653fc2c8d4a',1,'gf_server.c']]],
['gf_5fserver_5fcreate_77',['gf_server_create',['../gf__server_8h.html#a861aac514f048d33ce16e3209e125df5',1,'gf_server.c']]],
['gf_5fserver_5fdestroy_78',['gf_server_destroy',['../gf__server_8h.html#afedff111b1691c5973e264ce4f6a3787',1,'gf_server.c']]],
['gf_5fserver_5fend_79',['gf_server_end',['../gf__server_8h.html#a9f44e37cb5becfe321b352f8801fe22e',1,'gf_server.c']]],
['gf_5ftexture_5fcreate_80',['gf_texture_create',['../gf__texture_8h.html#a6cd0c41bfc9dbe140bb52f39aaa14080',1,'gf_texture.c']]],
['gf_5ftexture_5fdestroy_81',['gf_texture_destroy',['../gf__texture_8h.html#a3bfedc6c576e35173d3a7b1b9565e649',1,'gf_texture.c']]],
['gf_5fthread_5fcreate_82',['gf_thread_create',['../gf__thread_8h.html#ad2a42aa3c8b51ec7e22625e8932906a4',1,'gf_thread.c']]],
['gf_5fthread_5fdestroy_83',['gf_thread_destroy',['../gf__thread_8h.html#ae75b99ee6c28e149e333512f46e8656a',1,'gf_thread.c']]],
['gf_5fthread_5fjoin_84',['gf_thread_join',['../gf__thread_8h.html#a168bd57321daded0d1789442e5680dea',1,'gf_thread.c']]],
['gf_5fversion_5fget_85',['gf_version_get',['../gf__version_8h.html#a6bbaecc50f6c677871dcf74d7d7dbc4a',1,'gf_version.c']]]
['gf_5faudio_5fdestroy_1',['gf_audio_destroy',['../gf__audio_8h.html#ab5022a62ecc7ba83ccb5da4a1add398b',1,'gf_audio.c']]],
['gf_5faudio_5fload_2',['gf_audio_load',['../gf__audio_8h.html#a7a6428af79e540740776ae0d202c3962',1,'gf_audio.c']]],
['gf_5faudio_5fload_5ffile_3',['gf_audio_load_file',['../gf__audio_8h.html#a644b31417fc839bb2be69a88c2e77fbe',1,'gf_audio.c']]],
['gf_5fclient_5fbegin_4',['gf_client_begin',['../gf__client_8h.html#a190d30881f4449e141e915ac42e32d56',1,'gf_client.c']]],
['gf_5fclient_5fcreate_5',['gf_client_create',['../gf__client_8h.html#a425bf9a148d3a4d1301686fa9628de5a',1,'gf_client.c']]],
['gf_5fclient_5fdestroy_6',['gf_client_destroy',['../gf__client_8h.html#a1f8b044a5ca56016e55dad76cd839b53',1,'gf_client.c']]],
['gf_5fclient_5fend_7',['gf_client_end',['../gf__client_8h.html#a48fc64674f40797eac53f689e2ba5bae',1,'gf_client.c']]],
['gf_5fclient_5fstep_8',['gf_client_step',['../gf__client_8h.html#aa955ab564cc593944b7ea4ae10efd397',1,'gf_client.c']]],
['gf_5fdraw_5fbegin_9',['gf_draw_begin',['../gf__draw_8h.html#a4575368fee8a93966d657874a0906aaf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fcreate_10',['gf_draw_create',['../gf__draw_8h.html#af65b9048f8e8b33c560f374a945d1dec',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdestroy_11',['gf_draw_destroy',['../gf__draw_8h.html#aa7c19917300ff10b22de455323f01d83',1,'gf_draw_common.c']]],
['gf_5fdraw_5fdriver_5fafter_12',['gf_draw_driver_after',['../gf__draw__driver_8h.html#a646a68acd6e610379fc6ef5511e8c5d9',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbefore_13',['gf_draw_driver_before',['../gf__draw__driver_8h.html#a5d2d7820e9dabe9f558d3f5a45b0ea60',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fbegin_5ftexture_5f2d_14',['gf_draw_driver_begin_texture_2d',['../gf__draw__driver_8h.html#ac53faf99d73b8279f7a020a7c08d7121',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fcreate_15',['gf_draw_driver_create',['../gf__draw__driver_8h.html#aebc8d113d5682c2f1090e6f04d0857e4',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_16',['gf_draw_driver_destroy',['../gf__draw__driver_8h.html#af8f5a8642f6e54ece2ab4b6389877b56',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fdestroy_5ftexture_17',['gf_draw_driver_destroy_texture',['../gf__draw__driver_8h.html#aa43ec41907a9e23dd236332f9d624dac',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fend_5ftexture_5f2d_18',['gf_draw_driver_end_texture_2d',['../gf__draw__driver_8h.html#a43e4c5ac09e1092f2236af7bc3974431',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fhas_5fextension_19',['gf_draw_driver_has_extension',['../gf__draw__driver_8h.html#a9ba4f91da9872bfc447a124cc4cf7d2a',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fregister_5ftexture_20',['gf_draw_driver_register_texture',['../gf__draw__driver_8h.html#a034ba7f18e4d2c0395d4116182c47785',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5freshape_21',['gf_draw_driver_reshape',['../gf__draw__driver_8h.html#af0a260e2df4036c09bebe329c821fc19',1,'gf_driver.c']]],
['gf_5fdraw_5fdriver_5fset_5fcolor_22',['gf_draw_driver_set_color',['../gf__draw__driver_8h.html#a2740a2bb536d05c08ca019e66be4b6c6',1,'gf_driver.c']]],
['gf_5fdraw_5fend_23',['gf_draw_end',['../gf__draw_8h.html#a11d157bf565b4010f1350dd5329fa4a4',1,'gf_draw_common.c']]],
['gf_5fdraw_5fframe_24',['gf_draw_frame',['../gf__draw_8h.html#a4887fe11d8dfe55cf784e07b382b046a',1,'gf_draw_common.c']]],
['gf_5fdraw_5fplatform_5fbegin_25',['gf_draw_platform_begin',['../gf__draw__platform_8h.html#aa3106f20d1a654acf65f5e4ddb7a0fdd',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fcreate_26',['gf_draw_platform_create',['../gf__draw__platform_8h.html#ae0d81adf1fa83413f5052dab1fc4793f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fdestroy_27',['gf_draw_platform_destroy',['../gf__draw__platform_8h.html#a24822bbf6cda6c2cbe336d70116dfb25',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fend_28',['gf_draw_platform_end',['../gf__draw__platform_8h.html#ad6f83af1b5dec4457aea20dcab88c94f',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fhas_5fextension_29',['gf_draw_platform_has_extension',['../gf__draw__platform_8h.html#a368f0172138b75a37072d1ed357b1183',1,'gf_draw.c']]],
['gf_5fdraw_5fplatform_5fstep_30',['gf_draw_platform_step',['../gf__draw__platform_8h.html#af006e1dd0055cd824dd61122454d6192',1,'gf_draw.c']]],
['gf_5fdraw_5freshape_31',['gf_draw_reshape',['../gf__draw_8h.html#af1d6ba858a1cee357f8626501540e8bf',1,'gf_draw_common.c']]],
['gf_5fdraw_5fset_5finput_32',['gf_draw_set_input',['../gf__draw_8h.html#a4a0353d9ffdb96b2c26600b185b16f4f',1,'gf_draw_common.c']]],
['gf_5fdraw_5fstep_33',['gf_draw_step',['../gf__draw_8h.html#a47934a1eafd8426cc145a97e36867551',1,'gf_draw_common.c']]],
['gf_5fengine_5fbegin_34',['gf_engine_begin',['../gf__core_8h.html#ade0f3fb928e49b05985f095e95fb1f92',1,'gf_core.c']]],
['gf_5fengine_5fcreate_35',['gf_engine_create',['../gf__core_8h.html#a741291298ef02f3dceb1fdeaee2e27b4',1,'gf_core.c']]],
['gf_5fengine_5fdestroy_36',['gf_engine_destroy',['../gf__core_8h.html#a978d9c52b1d1098b5fc2f3e869036b64',1,'gf_core.c']]],
['gf_5fengine_5fend_37',['gf_engine_end',['../gf__core_8h.html#abae48921e84f92d590608745536a9ffc',1,'gf_core.c']]],
['gf_5fengine_5floop_38',['gf_engine_loop',['../gf__core_8h.html#aa9a229aa7c06d1a02ae89f93b8029fea',1,'gf_core.c']]],
['gf_5ffont_5fcreate_39',['gf_font_create',['../gf__font_8h.html#a0d171fe12d2ac1d3acc18476436608a1',1,'gf_font.c']]],
['gf_5ffont_5fget_40',['gf_font_get',['../gf__font_8h.html#adc4a1d10e49218c6383f5af6c4752fa1',1,'gf_font.c']]],
['gf_5fgraphic_5fbegin_5f2d_41',['gf_graphic_begin_2d',['../gf__graphic_8h.html#ad35db673e213edbadbfd938138c88a4c',1,'gf_graphic.c']]],
['gf_5fgraphic_5fclear_42',['gf_graphic_clear',['../gf__graphic_8h.html#a74f8bf7e2fc346f7d85ecfcea061f3fb',1,'gf_graphic.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5f2d_43',['gf_graphic_draw_texture_2d',['../gf__graphic_8h.html#a3285370a495233cc7db4f25317cd5fb0',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fdraw_5ftexture_5fpolygon_44',['gf_graphic_draw_texture_polygon',['../gf__graphic_8h.html#a4157822cc342fa294329ed2c436d53f2',1,'gf_graphic.c']]],
['gf_5fgraphic_5fend_5f2d_45',['gf_graphic_end_2d',['../gf__graphic_8h.html#acd5d3047cf76b63b2d1161e4e880f446',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5fpolygon_46',['gf_graphic_fill_polygon',['../gf__graphic_8h.html#a8ff780a4bcadc008355699101d2a42cc',1,'gf_graphic.c']]],
['gf_5fgraphic_5ffill_5frect_47',['gf_graphic_fill_rect',['../gf__graphic_8h.html#a4811198de205914602e5cdbafdcdd68d',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5fperspective_48',['gf_graphic_perspective',['../gf__graphic_8h.html#a95e7c86d8e9b64501af7de7268f6d74d',1,'gf_graphic.c']]],
['gf_5fgraphic_5fset_5fcamera_49',['gf_graphic_set_camera',['../gf__graphic_8h.html#af8285b506b90125960bf01b427a9a883',1,'gf_graphic.c']]],
['gf_5fgraphic_5ftext_50',['gf_graphic_text',['../gf__graphic_8h.html#a9840372651011386f6851954e95e7943',1,'gf_graphic_common.c']]],
['gf_5fgraphic_5ftext_5fwidth_51',['gf_graphic_text_width',['../gf__graphic_8h.html#a996f203bc791922f639ad2e02b5299c1',1,'gf_graphic_common.c']]],
['gf_5fgui_5fcreate_52',['gf_gui_create',['../gf__gui_8h.html#a929e99bf9dd58e4abc0c9f2a6b1341a1',1,'gf_gui.c']]],
['gf_5fgui_5fcreate_5fbutton_53',['gf_gui_create_button',['../gf__gui_8h.html#a9bfb5fc1e4dff3c3f0e4748d5b8c3c2e',1,'gf_gui.c']]],
['gf_5fgui_5fdraw_5fbox_54',['gf_gui_draw_box',['../gf__gui_8h.html#a670ac29a4409cc16c8d77f2d33ccc499',1,'gf_gui.c']]],
['gf_5fgui_5ffirst_5funused_55',['gf_gui_first_unused',['../gf__gui_8h.html#a39fc0e9d0e6ebaf3d60e1275008124b5',1,'gf_gui.c']]],
['gf_5fgui_5frender_56',['gf_gui_render',['../gf__gui_8h.html#a41f221ae3b2221553f49678f9434976c',1,'gf_gui.c']]],
['gf_5fgui_5fset_5fcallback_57',['gf_gui_set_callback',['../gf__gui_8h.html#ac4dbc67180bd8f83906b16fc268a8e78',1,'gf_gui.c']]],
['gf_5finput_5fcreate_58',['gf_input_create',['../gf__input_8h.html#ac926a70928c687f96cfbc24aef8ca96d',1,'gf_input.c']]],
['gf_5finput_5fdestroy_59',['gf_input_destroy',['../gf__input_8h.html#ac4a22f8231c87a464f6be7faead5dec2',1,'gf_input.c']]],
['gf_5flog_60',['gf_log',['../gf__log_8h.html#aed92dc232c3ae9cabdff1eeea67dfa90',1,'gf_log.c']]],
['gf_5fmath_5fcot_61',['gf_math_cot',['../gf__math_8h.html#aac8f6a22f2880f5b86b20a191a662333',1,'gf_math.c']]],
['gf_5fmath_5flog2_62',['gf_math_log2',['../gf__math_8h.html#a018423cb05adf480f9c3f28f304d1c47',1,'gf_math.c']]],
['gf_5fmath_5fmultiply_63',['gf_math_multiply',['../gf__math_8h.html#a394ebd35e2cddf28c86a45dad759fbee',1,'gf_math.c']]],
['gf_5fmath_5fnearest_5f2pow_64',['gf_math_nearest_2pow',['../gf__math_8h.html#aefea2441e869786726095fcda71750dc',1,'gf_math.c']]],
['gf_5fmath_5fnormal_65',['gf_math_normal',['../gf__math_8h.html#a5438b2f7f1324cdd664f2b823faa1ba6',1,'gf_math.c']]],
['gf_5fmath_5fnormalize_66',['gf_math_normalize',['../gf__math_8h.html#a3bd2afc9ff0e67e60afef9fe82553726',1,'gf_math.c']]],
['gf_5fmath_5fsubtract_67',['gf_math_subtract',['../gf__math_8h.html#a9df6d1b30bea0b200582e2873bddd113',1,'gf_math.c']]],
['gf_5fphysics_5fbegin_68',['gf_physics_begin',['../gf__physics_8h.html#a046ff3b6d3842c4cfd2c43ec576b09c6',1,'gf_physics.c']]],
['gf_5fphysics_5fcreate_69',['gf_physics_create',['../gf__physics_8h.html#a7e225db0a916463d791036c4d8636993',1,'gf_physics.c']]],
['gf_5fphysics_5fdestroy_70',['gf_physics_destroy',['../gf__physics_8h.html#ad9f65aa74657b4558c67f809c590fad3',1,'gf_physics.c']]],
['gf_5fphysics_5fend_71',['gf_physics_end',['../gf__physics_8h.html#a5724da53e501775d4a0faad3c91f1a14',1,'gf_physics.c']]],
['gf_5fserver_5fbegin_72',['gf_server_begin',['../gf__server_8h.html#a656e41de75a97731bffa1653fc2c8d4a',1,'gf_server.c']]],
['gf_5fserver_5fcreate_73',['gf_server_create',['../gf__server_8h.html#a861aac514f048d33ce16e3209e125df5',1,'gf_server.c']]],
['gf_5fserver_5fdestroy_74',['gf_server_destroy',['../gf__server_8h.html#afedff111b1691c5973e264ce4f6a3787',1,'gf_server.c']]],
['gf_5fserver_5fend_75',['gf_server_end',['../gf__server_8h.html#a9f44e37cb5becfe321b352f8801fe22e',1,'gf_server.c']]],
['gf_5ftexture_5fcreate_76',['gf_texture_create',['../gf__texture_8h.html#a6cd0c41bfc9dbe140bb52f39aaa14080',1,'gf_texture.c']]],
['gf_5ftexture_5fdestroy_77',['gf_texture_destroy',['../gf__texture_8h.html#a3bfedc6c576e35173d3a7b1b9565e649',1,'gf_texture.c']]],
['gf_5fthread_5fcreate_78',['gf_thread_create',['../gf__thread_8h.html#ad2a42aa3c8b51ec7e22625e8932906a4',1,'gf_thread.c']]],
['gf_5fthread_5fdestroy_79',['gf_thread_destroy',['../gf__thread_8h.html#ae75b99ee6c28e149e333512f46e8656a',1,'gf_thread.c']]],
['gf_5fthread_5fjoin_80',['gf_thread_join',['../gf__thread_8h.html#a168bd57321daded0d1789442e5680dea',1,'gf_thread.c']]],
['gf_5fversion_5fget_81',['gf_version_get',['../gf__version_8h.html#a6bbaecc50f6c677871dcf74d7d7dbc4a',1,'gf_version.c']]]
];

View File

@ -2,5 +2,5 @@ var searchData=
[
['a_0',['a',['../structgf__graphic__color__t.html#a55cf386eda83f15c1aa811626653141c',1,'gf_graphic_color_t']]],
['area_1',['area',['../structgf__gui__t.html#aa9c0a86d1d6ed76b52065e64f02ef8d7',1,'gf_gui_t']]],
['audio_2',['audio',['../structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01',1,'gf_audio_decoder_t::audio'],['../structgf__client__t.html#ac3381045a3080752363026d7d6607435',1,'gf_client_t::audio']]]
['audio_2',['audio',['../structgf__client__t.html#ac3381045a3080752363026d7d6607435',1,'gf_client_t']]]
];

View File

@ -1,5 +1,4 @@
var searchData=
[
['x_0',['x',['../structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587',1,'gf_draw_t::x'],['../structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9',1,'gf_font_bbox_t::x'],['../structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb',1,'gf_gui_component_t::x']]],
['xm_1',['xm',['../structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393',1,'gf_audio_decoder_t']]]
['x_0',['x',['../structgf__draw__t.html#ad0dd9e86b268e783bb7aa7483f604587',1,'gf_draw_t::x'],['../structgf__font__bbox__t.html#a74aeb849bbd50cbe19cd3f992a583fd9',1,'gf_font_bbox_t::x'],['../structgf__gui__component__t.html#ace277498b9f1c269f928784fda1baceb',1,'gf_gui_component_t::x']]]
];

View File

@ -3,9 +3,7 @@ var searchData=
['major_0',['major',['../structgf__version__t.html#a18c4ea6d16bd4d27da71586779ea3295',1,'gf_version_t']]],
['mesh_1',['mesh',['../structgf__model__t.html#aa28477a09739d0ef7566532fdb62aa06',1,'gf_model_t']]],
['minor_2',['minor',['../structgf__version__t.html#a573839ca44261b9ccbd73e43be57d326',1,'gf_version_t']]],
['mod_3',['mod',['../structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc',1,'gf_audio_decoder_t']]],
['mouse_5fflag_4',['mouse_flag',['../structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1',1,'gf_input_t']]],
['mouse_5fx_5',['mouse_x',['../structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5',1,'gf_input_t']]],
['mouse_5fy_6',['mouse_y',['../structgf__input__t.html#ac47540120552de68249a985e09d7bd9f',1,'gf_input_t']]],
['mutex_7',['mutex',['../structgf__audio__t.html#a8dc02290f6f59821db420f365985f592',1,'gf_audio_t']]]
['mouse_5fflag_3',['mouse_flag',['../structgf__input__t.html#a72fd9e5cdc44ca92b7846babcf2bfbb1',1,'gf_input_t']]],
['mouse_5fx_4',['mouse_x',['../structgf__input__t.html#afbcc3c078ca608826acd824499a8b8b5',1,'gf_input_t']]],
['mouse_5fy_5',['mouse_y',['../structgf__input__t.html#ac47540120552de68249a985e09d7bd9f',1,'gf_input_t']]]
];

View File

@ -1,5 +1,4 @@
var searchData=
[
['samples_0',['samples',['../structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663',1,'gf_audio_decoder_t']]],
['server_1',['server',['../structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390',1,'gf_engine_t']]]
['server_0',['server',['../structgf__engine__t.html#a2ddb35da78854ca79e6f3be1cd5b8390',1,'gf_engine_t']]]
];

View File

@ -104,51 +104,21 @@ $(document).ready(function(){initNavTree('structgf__audio__decoder__t.html','');
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:ac4aa6a2898558edf21a109d8184cdd01" id="r_ac4aa6a2898558edf21a109d8184cdd01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgf__audio__t.html">gf_audio_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01">audio</a></td></tr>
<tr class="memdesc:ac4aa6a2898558edf21a109d8184cdd01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio interface. <br /></td></tr>
<tr class="separator:ac4aa6a2898558edf21a109d8184cdd01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf94e1820e821535b56790c58c970a5" id="r_a3bf94e1820e821535b56790c58c970a5"><td class="memItemLeft" align="right" valign="top">ma_decoder_config&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5">decoder_config</a></td></tr>
<tr class="memdesc:a3bf94e1820e821535b56790c58c970a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">miniaudio decoder config <br /></td></tr>
<tr class="separator:a3bf94e1820e821535b56790c58c970a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad67a57c8f3ddf0b79b18e0f1c2754581" id="r_ad67a57c8f3ddf0b79b18e0f1c2754581"><td class="memItemLeft" align="right" valign="top">ma_decoder *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581">decoder</a></td></tr>
<tr class="memdesc:ad67a57c8f3ddf0b79b18e0f1c2754581"><td class="mdescLeft">&#160;</td><td class="mdescRight">miniaudio decoder <br /></td></tr>
<tr class="separator:ad67a57c8f3ddf0b79b18e0f1c2754581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a235fb4ae132de9acce9b313bba264393" id="r_a235fb4ae132de9acce9b313bba264393"><td class="memItemLeft" align="right" valign="top">jar_xm_context_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393">xm</a></td></tr>
<tr class="memdesc:a235fb4ae132de9acce9b313bba264393"><td class="mdescLeft">&#160;</td><td class="mdescRight">XM context. <br /></td></tr>
<tr class="separator:a235fb4ae132de9acce9b313bba264393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85b2f1e6b87106f02d51ea0b91989ffc" id="r_a85b2f1e6b87106f02d51ea0b91989ffc"><td class="memItemLeft" align="right" valign="top">jar_mod_context_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc">mod</a></td></tr>
<tr class="memdesc:a85b2f1e6b87106f02d51ea0b91989ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">MOD context. <br /></td></tr>
<tr class="separator:a85b2f1e6b87106f02d51ea0b91989ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68358269fb9d3e8501f3b2c861e08663" id="r_a68358269fb9d3e8501f3b2c861e08663"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663">samples</a></td></tr>
<tr class="memdesc:a68358269fb9d3e8501f3b2c861e08663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remaining samples. <br /></td></tr>
<tr class="separator:a68358269fb9d3e8501f3b2c861e08663"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a570e988d60764a3ce263c8185081886b" id="r_a570e988d60764a3ce263c8185081886b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b">used</a></td></tr>
<tr class="memdesc:a570e988d60764a3ce263c8185081886b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>1</code> if used, <code>-1</code> if used but paused, otherwise <code>0</code> <br /></td></tr>
<tr class="memdesc:a570e988d60764a3ce263c8185081886b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>1</code> if used, otherwise <code>0</code> <br /></td></tr>
<tr class="separator:a570e988d60764a3ce263c8185081886b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Audio decoder. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00049">49</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="ac4aa6a2898558edf21a109d8184cdd01" name="ac4aa6a2898558edf21a109d8184cdd01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4aa6a2898558edf21a109d8184cdd01">&#9670;&#160;</a></span>audio</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gf_audio_decoder_t::audio</td>
</tr>
</table>
</div><div class="memdoc">
<p>Audio interface. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<a id="ad67a57c8f3ddf0b79b18e0f1c2754581" name="ad67a57c8f3ddf0b79b18e0f1c2754581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad67a57c8f3ddf0b79b18e0f1c2754581">&#9670;&#160;</a></span>decoder</h2>
@ -163,7 +133,7 @@ Data Fields</h2></td></tr>
<p>miniaudio decoder </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00049">49</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
@ -181,43 +151,7 @@ Data Fields</h2></td></tr>
<p>miniaudio decoder config </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<a id="a85b2f1e6b87106f02d51ea0b91989ffc" name="a85b2f1e6b87106f02d51ea0b91989ffc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85b2f1e6b87106f02d51ea0b91989ffc">&#9670;&#160;</a></span>mod</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gf_audio_decoder_t::mod</td>
</tr>
</table>
</div><div class="memdoc">
<p>MOD context. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<a id="a68358269fb9d3e8501f3b2c861e08663" name="a68358269fb9d3e8501f3b2c861e08663"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68358269fb9d3e8501f3b2c861e08663">&#9670;&#160;</a></span>samples</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gf_audio_decoder_t::samples</td>
</tr>
</table>
</div><div class="memdoc">
<p>Remaining samples. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00049">49</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
@ -233,27 +167,9 @@ Data Fields</h2></td></tr>
</table>
</div><div class="memdoc">
<p><code>1</code> if used, <code>-1</code> if used but paused, otherwise <code>0</code> </p>
<p><code>1</code> if used, otherwise <code>0</code> </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<a id="a235fb4ae132de9acce9b313bba264393" name="a235fb4ae132de9acce9b313bba264393"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a235fb4ae132de9acce9b313bba264393">&#9670;&#160;</a></span>xm</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gf_audio_decoder_t::xm</td>
</tr>
</table>
</div><div class="memdoc">
<p>XM context. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00069">69</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00049">49</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>

View File

@ -1,10 +1,6 @@
var structgf__audio__decoder__t =
[
[ "audio", "structgf__audio__decoder__t.html#ac4aa6a2898558edf21a109d8184cdd01", null ],
[ "decoder", "structgf__audio__decoder__t.html#ad67a57c8f3ddf0b79b18e0f1c2754581", null ],
[ "decoder_config", "structgf__audio__decoder__t.html#a3bf94e1820e821535b56790c58c970a5", null ],
[ "mod", "structgf__audio__decoder__t.html#a85b2f1e6b87106f02d51ea0b91989ffc", null ],
[ "samples", "structgf__audio__decoder__t.html#a68358269fb9d3e8501f3b2c861e08663", null ],
[ "used", "structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b", null ],
[ "xm", "structgf__audio__decoder__t.html#a235fb4ae132de9acce9b313bba264393", null ]
[ "used", "structgf__audio__decoder__t.html#a570e988d60764a3ce263c8185081886b", null ]
];

View File

@ -116,14 +116,11 @@ Data Fields</h2></td></tr>
<tr class="memitem:a9494a0d7083e3eff5ba66d7d26cce1ac" id="r_a9494a0d7083e3eff5ba66d7d26cce1ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgf__audio__decoder__t.html">gf_audio_decoder_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac">decoder</a> [64]</td></tr>
<tr class="memdesc:a9494a0d7083e3eff5ba66d7d26cce1ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decoder. <br /></td></tr>
<tr class="separator:a9494a0d7083e3eff5ba66d7d26cce1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc02290f6f59821db420f365985f592" id="r_a8dc02290f6f59821db420f365985f592"><td class="memItemLeft" align="right" valign="top">ma_mutex *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgf__audio__t.html#a8dc02290f6f59821db420f365985f592">mutex</a></td></tr>
<tr class="memdesc:a8dc02290f6f59821db420f365985f592"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex. <br /></td></tr>
<tr class="separator:a8dc02290f6f59821db420f365985f592"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Audio interface. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00073">73</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a9494a0d7083e3eff5ba66d7d26cce1ac" name="a9494a0d7083e3eff5ba66d7d26cce1ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9494a0d7083e3eff5ba66d7d26cce1ac">&#9670;&#160;</a></span>decoder</h2>
@ -139,7 +136,7 @@ Data Fields</h2></td></tr>
<p>Decoder. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00073">73</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
@ -157,7 +154,7 @@ Data Fields</h2></td></tr>
<p>miniaudio device </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00073">73</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
@ -175,7 +172,7 @@ Data Fields</h2></td></tr>
<p>miniaudio device config </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00073">73</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
@ -193,25 +190,7 @@ Data Fields</h2></td></tr>
<p>Engine instance. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>
<a id="a8dc02290f6f59821db420f365985f592" name="a8dc02290f6f59821db420f365985f592"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dc02290f6f59821db420f365985f592">&#9670;&#160;</a></span>mutex</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gf_audio_t::mutex</td>
</tr>
</table>
</div><div class="memdoc">
<p>Mutex. </p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00097">97</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="audio_8h_source.html#l00073">73</a> of file <a class="el" href="audio_8h_source.html">audio.h</a>.</p>
</div>
</div>

View File

@ -3,6 +3,5 @@ var structgf__audio__t =
[ "decoder", "structgf__audio__t.html#a9494a0d7083e3eff5ba66d7d26cce1ac", null ],
[ "device", "structgf__audio__t.html#a2dafdd739c5d3b1a7ced62d76788a1f9", null ],
[ "device_config", "structgf__audio__t.html#a0e3429dd984c065144f431bf34e2b4c4", null ],
[ "engine", "structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5", null ],
[ "mutex", "structgf__audio__t.html#a8dc02290f6f59821db420f365985f592", null ]
[ "engine", "structgf__audio__t.html#ac838983342cbe6cb03ceea6d763116a5", null ]
];