📄 sound_8h-source.html
字号:
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> & filename 00178 );00179 00182 <a class="code" href="classPSound.html">PSound</a> & <a class="code" href="classPSound.html#z379_2">operator=</a>(00183 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & 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> & 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> & 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> & 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> & 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> &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> &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> & driverName,00376 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & 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> & 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>->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>->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>-><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>-><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>-><a class="code" href="classPSoundChannel.html#z391_2">GetChannels</a>(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -