proteaAudio/doc/pro_audio_rt_8h-source.html
2012-05-27 18:34:36 -04:00

61 lines
8.6 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>proteaAudio</title>
<link href="protea.css" rel="stylesheet" type="text/css">
</head><body>
<div style="text-align: center"><img src="proteaAudio.png"/></div>
<!-- Generated by Doxygen 1.4.3 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>proAudioRt.h</h1><a href="pro_audio_rt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "<a class="code" href="pro_audio_8h.html">proAudio.h</a>"</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;RtAudio.h&gt;</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;map&gt;</span>
<a name="l00004"></a>00004
<a name="l00011"></a>00011 <span class="keyword">struct </span>_AudioTrack;
<a name="l00012"></a>00012
<a name="l00014"></a>00014
<a name="l00016"></a><a class="code" href="class_device_audio_rt.html">00016</a> <span class="keyword">class </span><a class="code" href="class_device_audio_rt.html">DeviceAudioRt</a> : <span class="keyword">public</span> <a class="code" href="class_device_audio.html">DeviceAudio</a> {
<a name="l00017"></a>00017 <span class="keyword">public</span>:
<a name="l00019"></a>00019
<a name="l00026"></a>00026 <span class="keyword">static</span> <a class="code" href="class_device_audio.html">DeviceAudio</a>* <a class="code" href="class_device_audio_rt.html#e0">create</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTracks=8, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frequency=22050, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chunkSize=1024);
<a name="l00027"></a>00027
<a name="l00029"></a>00029 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#a0">sampleFromMemory</a>(<span class="keyword">const</span> <a class="code" href="class_audio_sample.html">AudioSample</a> &amp; <a class="code" href="class_device_audio_rt.html#a2">sample</a>, <span class="keywordtype">float</span> <a class="code" href="class_device_audio.html#a0">volume</a>=1.0f);
<a name="l00031"></a>00031 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_device_audio_rt.html#a1">sampleDestroy</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sample);
<a name="l00033"></a>00033 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="class_audio_sample.html">AudioSample</a>* <a class="code" href="class_device_audio_rt.html#a2">sample</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> handle) <span class="keyword">const</span>;
<a name="l00034"></a>00034
<a name="l00036"></a>00036
<a name="l00042"></a>00042 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#a3">soundPlay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sample, <span class="keywordtype">float</span> volumeL=1.0f, <span class="keywordtype">float</span> volumeR=1.0f, <span class="keywordtype">float</span> disparity=0.0f, <span class="keywordtype">float</span> pitch=1.0f );
<a name="l00050"></a>00050 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#a4">soundLoop</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sample, <span class="keywordtype">float</span> volumeL=1.0f, <span class="keywordtype">float</span> volumeR=1.0f, <span class="keywordtype">float</span> disparity=0.0f, <span class="keywordtype">float</span> pitch=1.0f );
<a name="l00052"></a>00052
<a name="l00058"></a>00058 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_device_audio_rt.html#a5">soundUpdate</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sound, <span class="keywordtype">float</span> volumeL, <span class="keywordtype">float</span> volumeR, <span class="keywordtype">float</span> disparity=0.0f, <span class="keywordtype">float</span> pitch=1.0f );
<a name="l00060"></a>00060 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_device_audio_rt.html#a7">soundStop</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sound);
<a name="l00062"></a>00062 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_device_audio_rt.html#a7">soundStop</a>();
<a name="l00064"></a>00064 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="class_device_audio_rt.html#a8">soundActive</a>() <span class="keyword">const</span>;
<a name="l00065"></a>00065 <span class="keyword">protected</span>:
<a name="l00067"></a>00067 <a class="code" href="class_device_audio_rt.html#b0">DeviceAudioRt</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nTracks, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> frequency, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chunkSize);
<a name="l00069"></a>00069 <span class="keyword">virtual</span> <a class="code" href="class_device_audio_rt.html#b1">~DeviceAudioRt</a>();
<a name="l00071"></a>00071 <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#b2">mixOutputFloat</a>(<span class="keywordtype">signed</span> <span class="keywordtype">short</span> *outputBuffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames);
<a name="l00072"></a>00072
<a name="l00074"></a><a class="code" href="class_device_audio_rt.html#p0">00074</a> std::map&lt;unsigned int, AudioSample*&gt; <a class="code" href="class_device_audio_rt.html#p0">mm_sample</a>;
<a name="l00076"></a><a class="code" href="class_device_audio_rt.html#p1">00076</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#p1">m_sampleCounter</a>;
<a name="l00077"></a>00077
<a name="l00079"></a><a class="code" href="class_device_audio_rt.html#p2">00079</a> _AudioTrack * <a class="code" href="class_device_audio_rt.html#p2">ma_sound</a>;
<a name="l00081"></a><a class="code" href="class_device_audio_rt.html#p3">00081</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#p3">m_nSound</a>;
<a name="l00083"></a><a class="code" href="class_device_audio_rt.html#p4">00083</a> RtAudio <a class="code" href="class_device_audio_rt.html#p4">m_dac</a>;
<a name="l00084"></a>00084
<a name="l00086"></a><a class="code" href="class_device_audio_rt.html#f0">00086</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_device_audio_rt.html#f0">cbMix</a>(<span class="keywordtype">void</span> *outputBuffer, <span class="keywordtype">void</span> *inputBuffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nFrames, <span class="keywordtype">double</span> streamTime, RtAudioStreamStatus status, <span class="keywordtype">void</span> *data) {
<a name="l00087"></a>00087 <span class="keywordflow">return</span> static_cast&lt;DeviceAudioRt*&gt;(data)-&gt;mixOutputFloat((<span class="keywordtype">signed</span> <span class="keywordtype">short</span>*)outputBuffer, nFrames); }
<a name="l00088"></a>00088 };
</pre></div><div style="border-width: 1px; border-top-color: gray; border-top-style: solid; margin: 2em 0 0 0;">
<table cols="2" width="100%" border="0"><tr>
<td style = "text-align: left; font-size: 75%; padding: 0em 2em;">
&copy; 2009-02-04 by Gerald Franz, www.viremo.de
</td>
<td style = "text-align: right; font-size: 75%; padding: 0em 2em;">
<a href="../impressum.html">impressum</a>
</td>
</tr></table>
</div>
</body>
</html>