Files
dl/document/html/dl__audio_8h_source.html
2026-09-16 14:07:40 +08:00

227 lines
32 KiB
HTML
Vendored

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/system/dl_audio.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_b2bcec82b594d980efe59d1a11da2bcc.html">system</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_audio.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__audio_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#pragma once</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="preprocessor">#ifndef DL_DISABLE_AUDIO</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;unordered_map&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="preprocessor">#include &quot;<a class="code" href="dl__memory__pool_8h.html">memory/dl_memory_pool.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;<a class="code" href="dl__json_8h.html">io/dl_json.h</a>&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>{</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="namespacedl.html#a66ff2e41291f927993493e6a84f044a2"> 30</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_variable" href="namespacedl.html#a66ff2e41291f927993493e6a84f044a2">NUM_MAX_FILE</a> = 256;</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="keyword">class </span>SoundImp;</div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="};">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html"> 34</a></span><span class="keyword">class </span>Sound</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>{</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#a211f008bd6a46efe478fe81d31e28933"> 36</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classdl_1_1_sound.html#a211f008bd6a46efe478fe81d31e28933">Audio</a>;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classdl_1_1_pool_list.html">PoolList</a>&lt;Sound&gt;;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">using </span>ID = unsigned;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#ab87826b364b3ce10a4b65d04d9a05be4"> 44</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_sound.html#ab87826b364b3ce10a4b65d04d9a05be4">Play</a>();</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#ac42512b5052ed58afc657aff556e4fa3"> 49</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_sound.html#ac42512b5052ed58afc657aff556e4fa3">Stop</a>();</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#a33c7abd5305f0c2904ee53083141ad2b"> 54</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_sound.html#a33c7abd5305f0c2904ee53083141ad2b">SetLoop</a>(<span class="keywordtype">bool</span> loop);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#abef621715662a459ea1ad3d2992de1ce"> 61</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_sound.html#abef621715662a459ea1ad3d2992de1ce">SetVolume</a>(<span class="keywordtype">float</span> volume);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classdl_1_1_sound.html#abde8d345b434ffa8d1cef285d61022ef"> 66</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_sound.html#abde8d345b434ffa8d1cef285d61022ef">IsPlaying</a>();</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"><a class="line" href="classdl_1_1_sound.html#a9d328dce8941447423921854519284f0"> 68</a></span> <a class="code hl_function" href="classdl_1_1_sound.html#a9d328dce8941447423921854519284f0">~Sound</a>();</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> Sound();</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> ID _source;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">bool</span> _deleteWaitStop;<span class="comment">// 删除时,等待播完</span></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"><a class="line" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec"> 75</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">gcSound</a> = <a class="code hl_class" href="classdl_1_1_g_c.html">GC&lt;Sound&gt;</a>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="keyword">class </span>AudioImp;</div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="};">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html"> 79</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_audio.html#aab339b33b8d18dd6f455e3833b065558">Audio</a></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span>{</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#af18a9ee98e70982bfe2975391d7221a5"> 81</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classdl_1_1_audio.html#af18a9ee98e70982bfe2975391d7221a5">System</a>;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#aab339b33b8d18dd6f455e3833b065558"> 83</a></span> <a class="code hl_function" href="classdl_1_1_audio.html#aab339b33b8d18dd6f455e3833b065558">Audio</a>(<span class="keywordtype">bool</span> open);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a3c94f3253ddd8271b3760d71533ab259"> 88</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#a3c94f3253ddd8271b3760d71533ab259">Init</a>(std::string_view path_name);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#aaf3d3808a0601561b039af71d21bf8f5"> 93</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_audio.html#aaf3d3808a0601561b039af71d21bf8f5">IsOpen</a>() { <span class="keywordflow">return</span> _bOpen; }</div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a68ed1e5ecbe2e5972875634556576891"> 98</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#a68ed1e5ecbe2e5972875634556576891">SetPath</a>(std::string_view path)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> _bSetPath = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> _strPath = path;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> }</div>
</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span></div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a1f2a315953bfc68cfd1761d2bfd80958"> 108</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#a1f2a315953bfc68cfd1761d2bfd80958">SetWhitelist</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; vec_load)</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> _vecWhitelist = vec_load;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> }</div>
</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#aef18417d258cef87318615f590119c88"> 117</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#aef18417d258cef87318615f590119c88">Load</a>(std::string_view name, std::string_view path_name);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a4da30d6b500d6990a61eafed9cc1e938"> 122</a></span> std::vector&lt;std::string&gt; <a class="code hl_function" href="classdl_1_1_audio.html#a4da30d6b500d6990a61eafed9cc1e938">GetAllSound</a>();</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a72f5f6390a18b55d20c243d4aa9fa92d"> 129</a></span> <a class="code hl_typedef" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">gcSound</a> <a class="code hl_function" href="classdl_1_1_audio.html#a72f5f6390a18b55d20c243d4aa9fa92d">Create</a>(std::string_view name);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="foldopen" id="foldopen00131" data-start="{" data-end="}">
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a6852c1d50c7d2159ba8b8d5372d18042"> 131</a></span> <a class="code hl_typedef" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">gcSound</a> <a class="code hl_function" href="classdl_1_1_audio.html#a6852c1d50c7d2159ba8b8d5372d18042">CreateDefault</a>()</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl.html#a106e7fc6f72449d977852f2771eddcda">get_gc&lt;Sound&gt;</a>();</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#a663bd3fcbcab7fbbd5dc112f74cbd6a3"> 137</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#a663bd3fcbcab7fbbd5dc112f74cbd6a3">_load</a>();</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classdl_1_1_audio.html#ad445e8539c9abcf41baca27b2e215a20"> 139</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_audio.html#ad445e8539c9abcf41baca27b2e215a20">_delete_sound</a>(<a class="code hl_class" href="classdl_1_1_sound.html">Sound</a>* snd);</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"><a class="line" href="classdl_1_1_audio.html#a387af8b3795bc61cae45ef0db8cb52cd"> 141</a></span> <a class="code hl_function" href="classdl_1_1_audio.html#a387af8b3795bc61cae45ef0db8cb52cd">~Audio</a>();</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> AudioImp* _imp;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordtype">bool</span> _bSetPath;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordtype">bool</span> _bOpen; <span class="comment">// 初始化前手动关闭,或声音设备不存在时设置</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> std::string _strPath;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> std::vector&lt;std::string&gt; _vecWhitelist;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// name -&gt; buffer下标</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> std::unordered_map&lt;std::string, size_t&gt; _mapName2Buffer;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// 删除列表(延迟删除)</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> std::list&lt;Sound::ID&gt; _listDelete;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>};</div>
</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="keyword">extern</span> <a class="code hl_class" href="classdl_1_1_audio.html">Audio</a>* <a class="code hl_variable" href="namespacedl.html#a0d52b37cf028e2cd9d903f58047c12d9">g_audio</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span></div>
<div class="foldopen" id="foldopen00162" data-start="{" data-end="}">
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="namespacedl.html#a783e65ebfbf11927dc028edd2ed4f309"> 162</a></span><span class="keyword">inline</span> <a class="code hl_typedef" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">gcSound</a> <a class="code hl_function" href="namespacedl.html#a783e65ebfbf11927dc028edd2ed4f309">snd_play</a>(std::string_view name, <span class="keywordtype">size_t</span> group_id = 0, <span class="keywordtype">float</span> volume = 1.0f)</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span>{</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_typedef" href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">gcSound</a> voc = <a class="code hl_variable" href="namespacedl.html#a0d52b37cf028e2cd9d903f58047c12d9">g_audio</a>-&gt;Create(name);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span> (!voc)</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> <a class="code hl_define" href="dl__log_8h.html#abc86a6b34614cb6484cdf935d9350abd">log_err</a>(<span class="stringliteral">&quot;音效创建失败:{}&quot;</span>, name);</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="namespacedl.html#a0d52b37cf028e2cd9d903f58047c12d9">g_audio</a>-&gt;CreateDefault();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> voc-&gt;<a class="code hl_function" href="classdl_1_1_sound.html#abef621715662a459ea1ad3d2992de1ce">SetVolume</a>(volume);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> voc-&gt;<a class="code hl_function" href="classdl_1_1_sound.html#ab87826b364b3ce10a4b65d04d9a05be4">Play</a>();</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> voc;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span>}</div>
</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </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><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="preprocessor">#include &lt;string_view&gt;</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span>{</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl.html#a783e65ebfbf11927dc028edd2ed4f309">snd_play</a>(std::string_view name, <span class="keywordtype">size_t</span> group_id = 0, <span class="keywordtype">float</span> volume = 1.0f)</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> {</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>}</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassdl_1_1_audio_html"><div class="ttname"><a href="classdl_1_1_audio.html">dl::Audio</a></div><div class="ttdoc">音频主控</div><div class="ttdef"><b>定义</b> <a href="#l00079">dl_audio.h:80</a></div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a1f2a315953bfc68cfd1761d2bfd80958"><div class="ttname"><a href="classdl_1_1_audio.html#a1f2a315953bfc68cfd1761d2bfd80958">dl::Audio::SetWhitelist</a></div><div class="ttdeci">void SetWhitelist(const std::vector&lt; std::string &gt; &amp;vec_load)</div><div class="ttdoc">设置加载白名单</div><div class="ttdef"><b>定义</b> <a href="#l00108">dl_audio.h:108</a></div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a387af8b3795bc61cae45ef0db8cb52cd"><div class="ttname"><a href="classdl_1_1_audio.html#a387af8b3795bc61cae45ef0db8cb52cd">dl::Audio::~Audio</a></div><div class="ttdeci">~Audio()</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a3c94f3253ddd8271b3760d71533ab259"><div class="ttname"><a href="classdl_1_1_audio.html#a3c94f3253ddd8271b3760d71533ab259">dl::Audio::Init</a></div><div class="ttdeci">void Init(std::string_view path_name)</div><div class="ttdoc">初始化配置</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a4da30d6b500d6990a61eafed9cc1e938"><div class="ttname"><a href="classdl_1_1_audio.html#a4da30d6b500d6990a61eafed9cc1e938">dl::Audio::GetAllSound</a></div><div class="ttdeci">std::vector&lt; std::string &gt; GetAllSound()</div><div class="ttdoc">返回所有加载的音效名</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a663bd3fcbcab7fbbd5dc112f74cbd6a3"><div class="ttname"><a href="classdl_1_1_audio.html#a663bd3fcbcab7fbbd5dc112f74cbd6a3">dl::Audio::_load</a></div><div class="ttdeci">void _load()</div><div class="ttdoc">由system调用</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a6852c1d50c7d2159ba8b8d5372d18042"><div class="ttname"><a href="classdl_1_1_audio.html#a6852c1d50c7d2159ba8b8d5372d18042">dl::Audio::CreateDefault</a></div><div class="ttdeci">gcSound CreateDefault()</div><div class="ttdef"><b>定义</b> <a href="#l00131">dl_audio.h:131</a></div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a68ed1e5ecbe2e5972875634556576891"><div class="ttname"><a href="classdl_1_1_audio.html#a68ed1e5ecbe2e5972875634556576891">dl::Audio::SetPath</a></div><div class="ttdeci">void SetPath(std::string_view path)</div><div class="ttdoc">设置资源路径(不设置则不会加载)</div><div class="ttdef"><b>定义</b> <a href="#l00098">dl_audio.h:98</a></div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_a72f5f6390a18b55d20c243d4aa9fa92d"><div class="ttname"><a href="classdl_1_1_audio.html#a72f5f6390a18b55d20c243d4aa9fa92d">dl::Audio::Create</a></div><div class="ttdeci">gcSound Create(std::string_view name)</div><div class="ttdoc">创建一个声音</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_aab339b33b8d18dd6f455e3833b065558"><div class="ttname"><a href="classdl_1_1_audio.html#aab339b33b8d18dd6f455e3833b065558">dl::Audio::Audio</a></div><div class="ttdeci">Audio(bool open)</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_aaf3d3808a0601561b039af71d21bf8f5"><div class="ttname"><a href="classdl_1_1_audio.html#aaf3d3808a0601561b039af71d21bf8f5">dl::Audio::IsOpen</a></div><div class="ttdeci">bool IsOpen()</div><div class="ttdoc">是否使用</div><div class="ttdef"><b>定义</b> <a href="#l00093">dl_audio.h:93</a></div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_ad445e8539c9abcf41baca27b2e215a20"><div class="ttname"><a href="classdl_1_1_audio.html#ad445e8539c9abcf41baca27b2e215a20">dl::Audio::_delete_sound</a></div><div class="ttdeci">void _delete_sound(Sound *snd)</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_aef18417d258cef87318615f590119c88"><div class="ttname"><a href="classdl_1_1_audio.html#aef18417d258cef87318615f590119c88">dl::Audio::Load</a></div><div class="ttdeci">void Load(std::string_view name, std::string_view path_name)</div><div class="ttdoc">加载一个音效</div></div>
<div class="ttc" id="aclassdl_1_1_audio_html_af18a9ee98e70982bfe2975391d7221a5"><div class="ttname"><a href="classdl_1_1_audio.html#af18a9ee98e70982bfe2975391d7221a5">dl::Audio::System</a></div><div class="ttdeci">friend class System</div><div class="ttdef"><b>定义</b> <a href="#l00081">dl_audio.h:81</a></div></div>
<div class="ttc" id="aclassdl_1_1_g_c_html"><div class="ttname"><a href="classdl_1_1_g_c.html">dl::GC</a></div><div class="ttdoc">引用计数对象,通过get_gc函数创建</div><div class="ttdef"><b>定义</b> <a href="dl__memory__pool_8h_source.html#l00048">dl_memory_pool.h:49</a></div></div>
<div class="ttc" id="aclassdl_1_1_pool_list_html"><div class="ttname"><a href="classdl_1_1_pool_list.html">dl::PoolList</a></div><div class="ttdoc">内存池数据</div><div class="ttdef"><b>定义</b> <a href="dl__memory__pool_8h_source.html#l00157">dl_memory_pool.h:158</a></div></div>
<div class="ttc" id="aclassdl_1_1_sound_html"><div class="ttname"><a href="classdl_1_1_sound.html">dl::Sound</a></div><div class="ttdoc">音频实例</div><div class="ttdef"><b>定义</b> <a href="#l00034">dl_audio.h:35</a></div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_a211f008bd6a46efe478fe81d31e28933"><div class="ttname"><a href="classdl_1_1_sound.html#a211f008bd6a46efe478fe81d31e28933">dl::Sound::Audio</a></div><div class="ttdeci">friend class Audio</div><div class="ttdef"><b>定义</b> <a href="#l00036">dl_audio.h:36</a></div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_a33c7abd5305f0c2904ee53083141ad2b"><div class="ttname"><a href="classdl_1_1_sound.html#a33c7abd5305f0c2904ee53083141ad2b">dl::Sound::SetLoop</a></div><div class="ttdeci">void SetLoop(bool loop)</div><div class="ttdoc">设置循环</div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_a9d328dce8941447423921854519284f0"><div class="ttname"><a href="classdl_1_1_sound.html#a9d328dce8941447423921854519284f0">dl::Sound::~Sound</a></div><div class="ttdeci">~Sound()</div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_ab87826b364b3ce10a4b65d04d9a05be4"><div class="ttname"><a href="classdl_1_1_sound.html#ab87826b364b3ce10a4b65d04d9a05be4">dl::Sound::Play</a></div><div class="ttdeci">void Play()</div><div class="ttdoc">播放</div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_abde8d345b434ffa8d1cef285d61022ef"><div class="ttname"><a href="classdl_1_1_sound.html#abde8d345b434ffa8d1cef285d61022ef">dl::Sound::IsPlaying</a></div><div class="ttdeci">bool IsPlaying()</div><div class="ttdoc">查询是否正在播放</div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_abef621715662a459ea1ad3d2992de1ce"><div class="ttname"><a href="classdl_1_1_sound.html#abef621715662a459ea1ad3d2992de1ce">dl::Sound::SetVolume</a></div><div class="ttdeci">void SetVolume(float volume)</div><div class="ttdoc">设置音量</div></div>
<div class="ttc" id="aclassdl_1_1_sound_html_ac42512b5052ed58afc657aff556e4fa3"><div class="ttname"><a href="classdl_1_1_sound.html#ac42512b5052ed58afc657aff556e4fa3">dl::Sound::Stop</a></div><div class="ttdeci">void Stop()</div><div class="ttdoc">停止</div></div>
<div class="ttc" id="adl__json_8h_html"><div class="ttname"><a href="dl__json_8h.html">dl_json.h</a></div><div class="ttdoc">json格式相关</div></div>
<div class="ttc" id="adl__log_8h_html_abc86a6b34614cb6484cdf935d9350abd"><div class="ttname"><a href="dl__log_8h.html#abc86a6b34614cb6484cdf935d9350abd">log_err</a></div><div class="ttdeci">#define log_err(...)</div><div class="ttdef"><b>定义</b> <a href="dl__log_8h_source.html#l00284">dl_log.h:284</a></div></div>
<div class="ttc" id="adl__memory__pool_8h_html"><div class="ttname"><a href="dl__memory__pool_8h.html">dl_memory_pool.h</a></div><div class="ttdoc">基于引用计数的内存池</div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a0d52b37cf028e2cd9d903f58047c12d9"><div class="ttname"><a href="namespacedl.html#a0d52b37cf028e2cd9d903f58047c12d9">dl::g_audio</a></div><div class="ttdeci">Audio * g_audio</div></div>
<div class="ttc" id="anamespacedl_html_a106e7fc6f72449d977852f2771eddcda"><div class="ttname"><a href="namespacedl.html#a106e7fc6f72449d977852f2771eddcda">dl::get_gc</a></div><div class="ttdeci">auto get_gc(Args &amp;&amp;...args)</div><div class="ttdoc">定义一个GC变量(引用计数内存池)</div><div class="ttdef"><b>定义</b> <a href="dl__memory__pool_8h_source.html#l00316">dl_memory_pool.h:316</a></div></div>
<div class="ttc" id="anamespacedl_html_a66ff2e41291f927993493e6a84f044a2"><div class="ttname"><a href="namespacedl.html#a66ff2e41291f927993493e6a84f044a2">dl::NUM_MAX_FILE</a></div><div class="ttdeci">constexpr size_t NUM_MAX_FILE</div><div class="ttdoc">可加载音频文件上限</div><div class="ttdef"><b>定义</b> <a href="#l00030">dl_audio.h:30</a></div></div>
<div class="ttc" id="anamespacedl_html_a783e65ebfbf11927dc028edd2ed4f309"><div class="ttname"><a href="namespacedl.html#a783e65ebfbf11927dc028edd2ed4f309">dl::snd_play</a></div><div class="ttdeci">gcSound snd_play(std::string_view name, size_t group_id=0, float volume=1.0f)</div><div class="ttdoc">播放一个音效</div><div class="ttdef"><b>定义</b> <a href="#l00162">dl_audio.h:162</a></div></div>
<div class="ttc" id="anamespacedl_html_a96aef6f78db733bb32961c2de9b408ec"><div class="ttname"><a href="namespacedl.html#a96aef6f78db733bb32961c2de9b408ec">dl::gcSound</a></div><div class="ttdeci">GC&lt; Sound &gt; gcSound</div><div class="ttdef"><b>定义</b> <a href="#l00075">dl_audio.h:75</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>