Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > os > by-pkgid > 9c481c872fb0ae0cbadccdc2f4a18ab6 > files > 169

libasync-devel-0.17.0-5.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Async: Async::AudioInterpolator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceAsync.html">Async</a>::<a class="el" href="classAsync_1_1AudioInterpolator.html">AudioInterpolator</a>
  </div>
</div>
<div class="contents">
<h1>Async::AudioInterpolator Class Reference</h1><!-- doxytag: class="Async::AudioInterpolator" --><!-- doxytag: inherits="Async::AudioProcessor" -->
<p>Interpolates a lower sampling rate to a higher one.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="AsyncAudioInterpolator_8h_source.html">AsyncAudioInterpolator.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Async::AudioInterpolator:</div>
<div class="dynsection">
 <div class="center">
  <img src="classAsync_1_1AudioInterpolator.png" usemap="#Async::AudioInterpolator_map" alt=""/>
  <map id="Async::AudioInterpolator_map" name="Async::AudioInterpolator_map">
<area href="classAsync_1_1AudioProcessor.html" alt="Async::AudioProcessor" shape="rect" coords="80,56,231,80"/>
<area href="classAsync_1_1AudioSink.html" alt="Async::AudioSink" shape="rect" coords="0,0,151,24"/>
<area href="classAsync_1_1AudioSource.html" alt="Async::AudioSource" shape="rect" coords="161,0,312,24"/>
</map>
 </div>
</div>

<p><a href="classAsync_1_1AudioInterpolator-members.html">List of all members.</a></p>
<h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="classAsync_1_1AudioInterpolator.html#af2523399a89561430762c2c9e4574230">AudioInterpolator</a> (int interpolation_factor, const float *filter_coeff, int taps)
<dl class="el"><dd class="mdescRight">Constuctor.  <a href="#af2523399a89561430762c2c9e4574230"></a><br/></dl><li><a class="el" href="classAsync_1_1AudioInterpolator.html#a434b9357701f423930174ce4abfb6119">~AudioInterpolator</a> (void)
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#a434b9357701f423930174ce4abfb6119"></a><br/></dl></ul>
<h2>Protected Member Functions</h2>
<ul>
<li>virtual void <a class="el" href="classAsync_1_1AudioInterpolator.html#ac07152b14156911489e2502537e1a980">processSamples</a> (float *dest, const float *src, int count)
<dl class="el"><dd class="mdescRight">Process incoming samples and put them into the output buffer.  <a href="#ac07152b14156911489e2502537e1a980"></a><br/></dl></ul>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Interpolates a lower sampling rate to a higher one. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Tobias Blomberg / SM0SVX </dd></dl>
<dl class="date"><dt><b>Date:</b></dt><dd>2008-04-06</dd></dl>
<p>This audio pipe class will interpolate an audio stream up to a higher sampling rate. Interpolation is a process where the sampling rate is increased by an integer factor. After the increase in sampling rate, a lowpass filter must be applied to avoid aliasing effects. This filter is built into this component. However, the filter coefficients (FIR) must be calculated manually.</p>
<p>Use this web page to calculate the coefficients: <a href="http://www.dsptutor.freeuk.com/remez/RemezFIRFilterDesign.html">http://www.dsptutor.freeuk.com/remez/RemezFIRFilterDesign.html</a></p>
<p>This implementation is based on the multirate FAQ at dspguru.com: <a href="http://dspguru.com/info/faqs/mrfaq.htm">http://dspguru.com/info/faqs/mrfaq.htm</a> </p>

<p>Definition at line <a class="el" href="AsyncAudioInterpolator_8h_source.html#l00117">117</a> of file <a class="el" href="AsyncAudioInterpolator_8h_source.html">AsyncAudioInterpolator.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af2523399a89561430762c2c9e4574230"></a><!-- doxytag: member="Async::AudioInterpolator::AudioInterpolator" ref="af2523399a89561430762c2c9e4574230" args="(int interpolation_factor, const float *filter_coeff, int taps)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Async::AudioInterpolator::AudioInterpolator </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>interpolation_factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&nbsp;</td>
          <td class="paramname"> <em>filter_coeff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>taps</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constuctor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>interpolation_factor</em>&nbsp;</td><td>The factor to increase the sample rate with </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filter_coeff</em>&nbsp;</td><td>The filter coefficients </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>taps</em>&nbsp;</td><td>The number of taps in the filter </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a434b9357701f423930174ce4abfb6119"></a><!-- doxytag: member="Async::AudioInterpolator::~AudioInterpolator" ref="a434b9357701f423930174ce4abfb6119" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Async::AudioInterpolator::~AudioInterpolator </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ac07152b14156911489e2502537e1a980"></a><!-- doxytag: member="Async::AudioInterpolator::processSamples" ref="ac07152b14156911489e2502537e1a980" args="(float *dest, const float *src, int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void Async::AudioInterpolator::processSamples </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&nbsp;</td>
          <td class="paramname"> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Process incoming samples and put them into the output buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>Destination buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>Source buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>Number of samples in the source buffer</td></tr>
  </table>
  </dd>
</dl>
<p>This function should be reimplemented by the inheriting class to do the actual processing of the incoming samples. All samples must be processed, otherwise they are lost and the output buffer will contain garbage. </p>

<p>Implements <a class="el" href="classAsync_1_1AudioProcessor.html#a2d7e4ec25a7bd6a9c5c20ae35c1adee3">Async::AudioProcessor</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="AsyncAudioInterpolator_8h_source.html">AsyncAudioInterpolator.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>