⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound_8h-source.html

📁 pwlib开发文档
💻 HTML
📖 第 1 页 / 共 3 页
字号:
00144 <span class="preprocessor"></span>00145 <a name="l00153"></a><a class="code" href="classPSound.html">00153</a> <span class="keyword">class </span><a class="code" href="classPSound.html">PSound</a> : <span class="keyword">public</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a>00154 {00155   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPSound.html">PSound</a>, <a class="code" href="classPBYTEArray.html">PBYTEArray</a>);00156 00157   <span class="keyword">public</span>:00166     <a class="code" href="classPSound.html#z379_0">PSound</a>(00167       <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#n1">numChannels</a> = 1,    00168       <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#n2">sampleRate</a> = 8000,  00169       <span class="keywordtype">unsigned</span> bitsPerSample = 16, 00170       PINDEX   bufferSize = 0,     00171       <span class="keyword">const</span> BYTE * data = NULL     00172     );00173 00176     <a class="code" href="classPSound.html#z379_0">PSound</a>(00177       <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> &amp; filename   00178     );00179 00182     <a class="code" href="classPSound.html">PSound</a> &amp; <a class="code" href="classPSound.html#z379_2">operator=</a>(00183       <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> &amp; data  <span class="comment">// New data for sound</span>00184     );00186 00198     BOOL <a class="code" href="classPSound.html#z381_0">Load</a>(00199       <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> &amp; filename   00200     );00201 00208     BOOL <a class="code" href="classPSound.html#z381_1">Save</a>(00209       <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> &amp; filename   <span class="comment">// Sound file to load.</span>00210     );00212 00215 00216     BOOL <a class="code" href="classPSound.html#z383_0">Play</a>();00217 00221     <span class="keywordtype">void</span> <a class="code" href="classPSound.html#z383_1">SetFormat</a>(00222       <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#n1">numChannels</a>,   <span class="comment">// Number of channels eg mono/stereo</span>00223       <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#n2">sampleRate</a>,    00224       <span class="keywordtype">unsigned</span> bitsPerSample  00225     );00226 <a name="l00230"></a><a class="code" href="classPSound.html#z383_2">00230</a>     <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#z383_2">GetEncoding</a>()   <span class="keyword">const</span> { <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n0">encoding</a>; }00231 <a name="l00233"></a><a class="code" href="classPSound.html#z383_3">00233</a>     <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#z383_3">GetChannels</a>()   <span class="keyword">const</span> { <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n1">numChannels</a>; }00234 <a name="l00236"></a><a class="code" href="classPSound.html#z383_4">00236</a>     <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#z383_4">GetSampleRate</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n2">sampleRate</a>; }00237 <a name="l00239"></a><a class="code" href="classPSound.html#z383_5">00239</a>     <span class="keywordtype">unsigned</span> <a class="code" href="classPSound.html#z383_5">GetSampleSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n3">sampleSize</a>; }00240 <a name="l00242"></a><a class="code" href="classPSound.html#z383_6">00242</a>     DWORD    <a class="code" href="classPSound.html#z383_6">GetErrorCode</a>()  <span class="keyword">const</span> { <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n4">dwLastError</a>; }00243 <a name="l00245"></a><a class="code" href="classPSound.html#z383_7">00245</a>     PINDEX   <a class="code" href="classPSound.html#z383_7">GetFormatInfoSize</a>()  <span class="keyword">const</span> { <span class="keywordflow">return</span> <a class="code" href="classPSound.html#n5">formatInfo</a>.GetSize(); }00246 <a name="l00248"></a><a class="code" href="classPSound.html#z383_8">00248</a>     <span class="keyword">const</span> <span class="keywordtype">void</span> * <a class="code" href="classPSound.html#z383_8">GetFormatInfoData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<span class="keyword">const</span> BYTE *)<a class="code" href="classPSound.html#n5">formatInfo</a>; }00250 00261     <span class="keyword">static</span> BOOL <a class="code" href="classPSound.html#z385_0">PlayFile</a>(00262       <span class="keyword">const</span> <a class="code" href="classPFilePath.html">PFilePath</a> &amp; file, 00263       BOOL wait = TRUE        00264     );00265 00267     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classPSound.html#z385_1">Beep</a>();00269 00270   <span class="keyword">protected</span>:<a name="l00272"></a><a class="code" href="classPSound.html#n0">00272</a>     <span class="keywordtype">unsigned</span>   <a class="code" href="classPSound.html#n0">encoding</a>;      <a name="l00274"></a><a class="code" href="classPSound.html#n1">00274</a>     <span class="keywordtype">unsigned</span>   <a class="code" href="classPSound.html#n1">numChannels</a>;   <a name="l00276"></a><a class="code" href="classPSound.html#n2">00276</a>     <span class="keywordtype">unsigned</span>   <a class="code" href="classPSound.html#n2">sampleRate</a>;    <a name="l00278"></a><a class="code" href="classPSound.html#n3">00278</a>     <span class="keywordtype">unsigned</span>   <a class="code" href="classPSound.html#n3">sampleSize</a>;    <a name="l00280"></a><a class="code" href="classPSound.html#n4">00280</a>     DWORD      <a class="code" href="classPSound.html#n4">dwLastError</a>;   <a name="l00282"></a><a class="code" href="classPSound.html#n5">00282</a>     <a class="code" href="classPBYTEArray.html">PBYTEArray</a> <a class="code" href="classPSound.html#n5">formatInfo</a>;    00283 };00284 00285 <a name="l00316"></a><a class="code" href="classPSoundChannel.html">00316</a> <span class="keyword">class </span><a class="code" href="classPSoundChannel.html">PSoundChannel</a> : <span class="keyword">public</span> <a class="code" href="classPChannel.html">PChannel</a>00317 {00318   <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPSoundChannel.html">PSoundChannel</a>, <a class="code" href="classPChannel.html">PChannel</a>);00319 00320   <span class="keyword">public</span>:<a name="l00323"></a><a class="code" href="classPSoundChannel.html#z387_0">00323</a>     <span class="keyword">enum</span> <a class="code" href="classPSoundChannel.html#z387_0">Directions</a> {00324       <a class="code" href="classPSoundChannel.html#z387_0s0">Recorder</a>,00325       <a class="code" href="classPSoundChannel.html#z387_0s1">Player</a>00326     };00327 00329     <a class="code" href="classPSoundChannel.html#z387_1">PSoundChannel</a>();00330 00334     <a class="code" href="classPSoundChannel.html#z387_1">PSoundChannel</a>(00335       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; device,       00336       <a class="code" href="classPSoundChannel.html#z387_0">Directions</a> dir,               00337       <span class="keywordtype">unsigned</span> numChannels = 1,     00338       <span class="keywordtype">unsigned</span> sampleRate = 8000,   00339       <span class="keywordtype">unsigned</span> bitsPerSample = 16   00340     );00341     <span class="comment">// </span>00342 00343     <span class="keyword">virtual</span> <a class="code" href="classPSoundChannel.html#z387_3">~PSoundChannel</a>();00344     <span class="comment">// Destroy and close the sound driver</span>00346 <span class="comment"></span>00352 <span class="comment"></span>    <span class="keyword">static</span> <a class="code" href="classPStringList.html">PStringList</a> <a class="code" href="classPSoundChannel.html#z389_4">GetDriverNames</a>(<a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL);00353 00357     <span class="keyword">static</span> <a class="code" href="classPStringList.html">PStringList</a> <a class="code" href="classPSoundChannel.html#z389_5">GetDeviceNames</a>(00358          <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp;driverName,00359          <span class="keyword">const</span> <a class="code" href="classPSoundChannel.html#z387_0">PSoundChannel::Directions</a>,00360          <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00361     );00362 00366     <span class="keyword">static</span> <a class="code" href="classPSoundChannel.html">PSoundChannel</a> *<a class="code" href="classPSoundChannel.html#z389_6">CreateChannel</a> (00367       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp;driverName,00368       <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00369     );00370 00374     <span class="keyword">static</span> <a class="code" href="classPSoundChannel.html">PSoundChannel</a> * <a class="code" href="classPSoundChannel.html#z389_7">CreateOpenedChannel</a>(00375       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; driverName,00376       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; deviceName,00377       <span class="keyword">const</span> <a class="code" href="classPSoundChannel.html#z387_0">PSoundChannel::Directions</a>,00378       <span class="keywordtype">unsigned</span> numChannels = 1,00379       <span class="keywordtype">unsigned</span> sampleRate = 8000,00380       <span class="keywordtype">unsigned</span> bitsPerSample = 1600381     );00382 00391     <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPSoundChannel.html#z389_8">GetDefaultDevice</a>(00392       <a class="code" href="classPSoundChannel.html#z387_0">Directions</a> dir    <span class="comment">// Sound I/O direction</span>00393     );00394 00403     <span class="keyword">static</span> <a class="code" href="classPStringList.html">PStringList</a> <a class="code" href="classPSoundChannel.html#z389_5">GetDeviceNames</a>(00404       <a class="code" href="classPSoundChannel.html#z387_0">Directions</a> dir    <span class="comment">// Sound I/O direction</span>00405     );00406 00413     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSoundChannel.html#z389_0">Open</a>(00414       <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &amp; device,       00415       <a class="code" href="classPSoundChannel.html#z387_0">Directions</a> dir,               00416       <span class="keywordtype">unsigned</span> numChannels = 1,     00417       <span class="keywordtype">unsigned</span> sampleRate = 8000,   00418       <span class="keywordtype">unsigned</span> bitsPerSample = 16   00419     );00420 <a name="l00426"></a><a class="code" href="classPSoundChannel.html#z389_1">00426</a>     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSoundChannel.html#z389_1">IsOpen</a>()<span class="keyword"> const</span>00427 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (<a class="code" href="classPSoundChannel.html#n0">baseChannel</a> == NULL) ? FALSE : <a class="code" href="classPSoundChannel.html#n0">baseChannel</a>-&gt;PChannel::IsOpen(); }00428 <a name="l00434"></a><a class="code" href="classPSoundChannel.html#z389_2">00434</a>     <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classPSoundChannel.html#z389_2">GetHandle</a>()<span class="keyword"> const</span>00435 <span class="keyword">      </span>{ <span class="keywordflow">return</span> (<a class="code" href="classPSoundChannel.html#n0">baseChannel</a> == NULL) ? -1 : <a class="code" href="classPSoundChannel.html#n0">baseChannel</a>-&gt;PChannel::GetHandle(); }00436 <a name="l00442"></a><a class="code" href="classPSoundChannel.html#z389_3">00442</a>     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSoundChannel.html#z389_3">Abort</a>()00443     { <span class="keywordflow">return</span> (<a class="code" href="classPSoundChannel.html#n0">baseChannel</a> == NULL) ? FALSE : <a class="code" href="classPSoundChannel.html#n0">baseChannel</a>-&gt;<a class="code" href="classPSoundChannel.html#z389_3">Abort</a>(); }00445 <a name="l00457"></a><a class="code" href="classPSoundChannel.html#z391_1">00457</a>     <span class="keyword">virtual</span> BOOL <a class="code" href="classPSoundChannel.html#z391_1">SetFormat</a>(00458       <span class="keywordtype">unsigned</span> numChannels = 1,     00459       <span class="keywordtype">unsigned</span> sampleRate = 8000,   00460       <span class="keywordtype">unsigned</span> bitsPerSample = 16   00461     )00462     { <span class="keywordflow">return</span> (<a class="code" href="classPSoundChannel.html#n0">baseChannel</a> == NULL) ? FALSE : <a class="code" href="classPSoundChannel.html#n0">baseChannel</a>-&gt;<a class="code" href="classPSoundChannel.html#z391_1">SetFormat</a>(numChannels, sampleRate, bitsPerSample); }00463 <a name="l00465"></a><a class="code" href="classPSoundChannel.html#z391_2">00465</a>     <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classPSoundChannel.html#z391_2">GetChannels</a>()   <span class="keyword">const</span>00466     { <span class="keywordflow">return</span> (<a class="code" href="classPSoundChannel.html#n0">baseChannel</a> == NULL) ? 0 : <a class="code" href="classPSoundChannel.html#n0">baseChannel</a>-&gt;<a class="code" href="classPSoundChannel.html#z391_2">GetChannels</a>(); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -