<!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"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Audaspace: IReader Interface Reference</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> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.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 style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Audaspace  <span id="projectnumber">1.3.0</span> </div> <div id="projectbrief">A high level audio library.</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ var searchBox = new SearchBox("searchBox", "search",false,'Search'); /* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */</script> <div id="main-nav"></div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classIReader-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">IReader Interface Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p>This class represents a sound source as stream or as buffer which can be read for example by another reader, a device or whatever. <a href="classIReader.html#details">More...</a></p> <p><code>#include <<a class="el" href="IReader_8h_source.html">IReader.h</a>></code></p> <div class="dynheader"> Inheritance diagram for IReader:</div> <div class="dyncontent"> <div class="center"><img src="classIReader__inherit__graph.png" border="0" usemap="#IReader_inherit__map" alt="Inheritance graph"/></div> <map name="IReader_inherit__map" id="IReader_inherit__map"> <area shape="rect" title="This class represents a sound source as stream or as buffer which can be read for example by another ..." alt="" coords="5,461,75,488"/> <area shape="rect" href="classBinauralReader.html" title="This class represents a reader for a sound that can sound different depending on its realtive positio..." alt="" coords="130,56,245,83"/> <area shape="rect" href="classBufferReader.html" title="This class represents a simple reader from a buffer that exists in memory." alt="" coords="136,107,239,133"/> <area shape="rect" href="classConvolverReader.html" title="This class represents a reader for a sound that can be modified depending on a given impulse response..." alt="" coords="124,157,251,184"/> <area shape="rect" href="classDoubleReader.html" title="This reader plays two readers sequently." alt="" coords="133,208,242,235"/> <area shape="rect" href="classEffectReader.html" title="This reader is a base class for all effect readers that take one other reader as input." alt="" coords="137,259,237,285"/> <area shape="rect" href="classFFMPEGReader.html" title="This class reads a sound file via ffmpeg." alt="" coords="128,309,247,336"/> <area shape="rect" href="classMutableReader.html" title="This class represents a reader for a sound that can change with each playback." alt="" coords="130,360,245,387"/> <area shape="rect" href="classOpenALReader.html" title="This class is used for sine tone playback." alt="" coords="130,411,245,437"/> <area shape="rect" href="classSawtoothReader.html" title="This class is used for sawtooth tone playback." alt="" coords="125,461,249,488"/> <area shape="rect" href="classSequenceReader.html" title="This reader plays back sequenced entries." alt="" coords="126,512,249,539"/> <area shape="rect" href="classSilenceReader.html" title="This class is used for silence playback." alt="" coords="133,563,241,589"/> <area shape="rect" href="classSineReader.html" title="This class is used for sine tone playback." alt="" coords="142,613,233,640"/> <area shape="rect" href="classSndFileReader.html" title="This class reads a sound file via libsndfile." alt="" coords="132,664,243,691"/> <area shape="rect" href="classSquareReader.html" title="This class is used for square tone playback." alt="" coords="134,715,241,741"/> <area shape="rect" href="classSuperposeReader.html" title="This reader plays two readers with the same specs in parallel." alt="" coords="123,765,252,792"/> <area shape="rect" href="classTriangleReader.html" title="This class is used for sawtooth tone playback." alt="" coords="130,816,245,843"/> <area shape="rect" href="classVolumeReader.html" title="This class represents a reader for a sound that has its own shared volume." alt="" coords="131,867,243,893"/> <area shape="rect" href="classADSRReader.html" title="This class is an ADSR filters." alt="" coords="331,5,432,32"/> <area shape="rect" href="classBaseIIRFilterReader.html" title="This class is a base class for infinite impulse response filters." alt="" coords="310,56,453,83"/> <area shape="rect" href="classChannelMapperReader.html" title="This class maps a sound source's channels to a specific output channel count." alt="" coords="300,107,463,133"/> <area shape="rect" href="classConverterReader.html" title="This class converts a sound source from one to another format." alt="" coords="319,157,444,184"/> <area shape="rect" href="classDelayReader.html" title="This class reads another reader and delays it." alt="" coords="332,208,431,235"/> <area shape="rect" href="classFaderReader.html" title="This class fades another reader." alt="" coords="331,259,431,285"/> <area shape="rect" href="classLimiterReader.html" title="This reader limits another reader in start and end times." alt="" coords="328,309,435,336"/> <area shape="rect" href="classLoopReader.html" title="This class reads another reader and loops it." alt="" coords="333,360,429,387"/> <area shape="rect" href="classPitchReader.html" title="This class reads another reader and changes it's pitch." alt="" coords="334,411,429,437"/> <area shape="rect" href="classResampleReader.html" title="This is the base class for all resampling readers." alt="" coords="319,461,444,488"/> <area shape="rect" href="classReverseReader.html" title="This class reads another reader from back to front." alt="" coords="325,512,437,539"/> <area shape="rect" href="classCallbackIIRFilterReader.html" title="This class provides an interface for infinite impulse response filters via a callback filter function..." alt="" coords="511,31,677,57"/> <area shape="rect" href="classIIRFilterReader.html" title="This class is for infinite impulse response filters with simple coefficients." alt="" coords="537,81,651,108"/> <area shape="rect" href="classDynamicIIRFilterReader.html" title="This class is for dynamic infinite impulse response filters with simple coefficients that change depe..." alt="" coords="725,81,892,108"/> <area shape="rect" href="classJOSResampleReader.html" title="This resampling reader uses Julius O." alt="" coords="519,436,669,463"/> <area shape="rect" href="classLinearResampleReader.html" title="This resampling reader does simple first-order hold resampling." alt="" coords="513,487,675,513"/> </map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a3489c23855da532dd3a10cfae78bc899"><td class="memItemLeft" align="right" valign="top"><a id="a3489c23855da532dd3a10cfae78bc899"></a> virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#a3489c23855da532dd3a10cfae78bc899">~IReader</a> ()</td></tr> <tr class="memdesc:a3489c23855da532dd3a10cfae78bc899"><td class="mdescLeft"> </td><td class="mdescRight">Destroys the reader. <br /></td></tr> <tr class="separator:a3489c23855da532dd3a10cfae78bc899"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf13bbdc14e680c21122981f7d3bf6be"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#acf13bbdc14e680c21122981f7d3bf6be">isSeekable</a> () const =0</td></tr> <tr class="memdesc:acf13bbdc14e680c21122981f7d3bf6be"><td class="mdescLeft"> </td><td class="mdescRight">Tells whether the source provides seeking functionality or not. <a href="#acf13bbdc14e680c21122981f7d3bf6be">More...</a><br /></td></tr> <tr class="separator:acf13bbdc14e680c21122981f7d3bf6be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad9fc74bb6f4c2b1ecc0f75b7118c1458"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#ad9fc74bb6f4c2b1ecc0f75b7118c1458">seek</a> (int position)=0</td></tr> <tr class="memdesc:ad9fc74bb6f4c2b1ecc0f75b7118c1458"><td class="mdescLeft"> </td><td class="mdescRight">Seeks to a specific position in the source. <a href="#ad9fc74bb6f4c2b1ecc0f75b7118c1458">More...</a><br /></td></tr> <tr class="separator:ad9fc74bb6f4c2b1ecc0f75b7118c1458"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a384465b5d988cc802702ae4bdc56ea85"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#a384465b5d988cc802702ae4bdc56ea85">getLength</a> () const =0</td></tr> <tr class="memdesc:a384465b5d988cc802702ae4bdc56ea85"><td class="mdescLeft"> </td><td class="mdescRight">Returns an approximated length of the source in samples. <a href="#a384465b5d988cc802702ae4bdc56ea85">More...</a><br /></td></tr> <tr class="separator:a384465b5d988cc802702ae4bdc56ea85"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a47a8f86fd242a02ff626eb506cdb319d"><td class="memItemLeft" align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#a47a8f86fd242a02ff626eb506cdb319d">getPosition</a> () const =0</td></tr> <tr class="memdesc:a47a8f86fd242a02ff626eb506cdb319d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the position of the source as a sample count value. <a href="#a47a8f86fd242a02ff626eb506cdb319d">More...</a><br /></td></tr> <tr class="separator:a47a8f86fd242a02ff626eb506cdb319d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aac4f3a14d42e5c4280488db98dd771b1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structSpecs.html">Specs</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#aac4f3a14d42e5c4280488db98dd771b1">getSpecs</a> () const =0</td></tr> <tr class="memdesc:aac4f3a14d42e5c4280488db98dd771b1"><td class="mdescLeft"> </td><td class="mdescRight">Returns the specification of the reader. <a href="#aac4f3a14d42e5c4280488db98dd771b1">More...</a><br /></td></tr> <tr class="separator:aac4f3a14d42e5c4280488db98dd771b1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aef6fa21dfb71d3065fb14517bf0f24d5"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classIReader.html#aef6fa21dfb71d3065fb14517bf0f24d5">read</a> (int &length, bool &eos, <a class="el" href="Audaspace_8h.html#aa0798f7ea0975b143a1d9deac8c05d43">sample_t</a> *buffer)=0</td></tr> <tr class="memdesc:aef6fa21dfb71d3065fb14517bf0f24d5"><td class="mdescLeft"> </td><td class="mdescRight">Request to read the next length samples out of the source. <a href="#aef6fa21dfb71d3065fb14517bf0f24d5">More...</a><br /></td></tr> <tr class="separator:aef6fa21dfb71d3065fb14517bf0f24d5"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>This class represents a sound source as stream or as buffer which can be read for example by another reader, a device or whatever. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="a384465b5d988cc802702ae4bdc56ea85"></a> <h2 class="memtitle"><span class="permalink"><a href="#a384465b5d988cc802702ae4bdc56ea85">◆ </a></span>getLength()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int IReader::getLength </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns an approximated length of the source in samples. </p> <dl class="section return"><dt>Returns</dt><dd>The length as sample count. May be negative if unknown. </dd></dl> <p>Implemented in <a class="el" href="classBinauralReader.html#aaedec93a477916c1d9aaf860835d0c9f">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#abf671263d9395dd0829d4a8064beb975">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#a27b7a086089f3c25efd602ba4fa8ada1">ConvolverReader</a>, <a class="el" href="classJOSResampleReader.html#af6a9dde0ecba6e00ebf756c09155716c">JOSResampleReader</a>, <a class="el" href="classSndFileReader.html#a0b01ccd178b43834eef804f6df695979">SndFileReader</a>, <a class="el" href="classSequenceReader.html#adc88ee1ef7fb07b5dd4e2a747790a0da">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a3e25033d50296f896c03e64679cf0f4c">SawtoothReader</a>, <a class="el" href="classSquareReader.html#ab04bd3e0e38cdfba0f109a1149e8258f">SquareReader</a>, <a class="el" href="classTriangleReader.html#a8a56ee9e514d9a4d4ba371eae39ccc70">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a4ec13ce9e06910d0a58632f5df812596">OpenALReader</a>, <a class="el" href="classLinearResampleReader.html#a872a9c8b0dc14a2a1565d2ef89def2ad">LinearResampleReader</a>, <a class="el" href="classSuperposeReader.html#af22d1b2ac7e4f13c8ddcc8134636c202">SuperposeReader</a>, <a class="el" href="classSineReader.html#a44805c846b7023147ea6e556210bddd1">SineReader</a>, <a class="el" href="classDoubleReader.html#a7897720a138addb1ee57181a71d63479">DoubleReader</a>, <a class="el" href="classBufferReader.html#aa8a40bf05a2a91e12a55002ffdfe1f7a">BufferReader</a>, <a class="el" href="classMutableReader.html#aeff098ea846f56a526cd7f8bcf32c749">MutableReader</a>, <a class="el" href="classVolumeReader.html#a0e8b86af78e089b6e41f000e81f50d08">VolumeReader</a>, <a class="el" href="classEffectReader.html#ae628230020b2e85f02a62f8c54fb0983">EffectReader</a>, <a class="el" href="classLimiterReader.html#a3096d0840b446584eab6947cb3ceef88">LimiterReader</a>, <a class="el" href="classLoopReader.html#a36704772c0c347f9dcd91df3dcf5e041">LoopReader</a>, <a class="el" href="classReverseReader.html#aa3de08a7fd7ba8c14b484757d53e6c20">ReverseReader</a>, <a class="el" href="classDelayReader.html#ae8306bbf1926da20c7623e730528787e">DelayReader</a>, and <a class="el" href="classSilenceReader.html#a4ff2912b9164aab084e9a114c2b93456">SilenceReader</a>.</p> </div> </div> <a id="a47a8f86fd242a02ff626eb506cdb319d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a47a8f86fd242a02ff626eb506cdb319d">◆ </a></span>getPosition()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int IReader::getPosition </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the position of the source as a sample count value. </p> <dl class="section return"><dt>Returns</dt><dd>The current position in the source. A negative value indicates that the position is unknown. </dd></dl> <dl class="section warning"><dt>Warning</dt><dd>The value returned doesn't always have to be correct for readers, especially after seeking. </dd></dl> <p>Implemented in <a class="el" href="classBinauralReader.html#aa1a8e21378cdd1070f6503cbf0e1f71b">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#af65ee75e88571d44d8c345faef76c021">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#a6ded00ba34b9d64a9bd86c19c4309475">ConvolverReader</a>, <a class="el" href="classJOSResampleReader.html#af5c3427896b6d03bbd7fde4c4eed6c85">JOSResampleReader</a>, <a class="el" href="classSndFileReader.html#aab7522195d194d272f18f7cc072fd4bb">SndFileReader</a>, <a class="el" href="classSequenceReader.html#a2a6caa0b38ba17380316e4e18fef9270">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a902c54f88301c4d3507241120f3451fd">SawtoothReader</a>, <a class="el" href="classSquareReader.html#aeaa538be5511eb2db6d113232b6f5bbe">SquareReader</a>, <a class="el" href="classTriangleReader.html#ab784ed665dd34927d83b8774574f7346">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a7c3c1a0be18c620576aa61eb64912844">OpenALReader</a>, <a class="el" href="classLinearResampleReader.html#a77b79603b8c4877231e6447c98c8900e">LinearResampleReader</a>, <a class="el" href="classSuperposeReader.html#a2fdab30bae0891c4767bb66ad2911f57">SuperposeReader</a>, <a class="el" href="classSineReader.html#a5c2da00aa3e7c9eb9e2c0007479eec75">SineReader</a>, <a class="el" href="classDoubleReader.html#aa9ca1194d455374f928dd938810ef2ea">DoubleReader</a>, <a class="el" href="classBufferReader.html#abf47985a907e069434fe97824e6d5a7c">BufferReader</a>, <a class="el" href="classMutableReader.html#a8c034845192bd374cb4b17141e2beb3c">MutableReader</a>, <a class="el" href="classVolumeReader.html#ac9abe14b8a08f9c8819f7a60ba470686">VolumeReader</a>, <a class="el" href="classEffectReader.html#af1d48c9edfadd0ea892245975e2c9994">EffectReader</a>, <a class="el" href="classLimiterReader.html#a811778051474eba5659d8988f64f9d3c">LimiterReader</a>, <a class="el" href="classLoopReader.html#a7854357698f9a29e0f8e2650521dba8a">LoopReader</a>, <a class="el" href="classReverseReader.html#a15c19c4ac04b2302d8bf59c3c26aae3a">ReverseReader</a>, <a class="el" href="classDelayReader.html#af473f47fa7bf23141a6d6878475c2838">DelayReader</a>, and <a class="el" href="classSilenceReader.html#a2d146ed20c71429dd29de434f98849c1">SilenceReader</a>.</p> </div> </div> <a id="aac4f3a14d42e5c4280488db98dd771b1"></a> <h2 class="memtitle"><span class="permalink"><a href="#aac4f3a14d42e5c4280488db98dd771b1">◆ </a></span>getSpecs()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="structSpecs.html">Specs</a> IReader::getSpecs </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the specification of the reader. </p> <dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structSpecs.html" title="Specification of a sound source.">Specs</a> structure. </dd></dl> <p>Implemented in <a class="el" href="classBinauralReader.html#a932f935bd2c7d71e83f745670de276ba">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#a8efad01dd252263a128b3a5de5759f40">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#ae19b227b998ade8ace6aa333d7d7deb8">ConvolverReader</a>, <a class="el" href="classChannelMapperReader.html#a40cd391be1b9629f4cd2358fdd5c07b5">ChannelMapperReader</a>, <a class="el" href="classJOSResampleReader.html#a3bfb9323855ab14d5b3764ad121a2d9a">JOSResampleReader</a>, <a class="el" href="classSndFileReader.html#ac22963b1bb5a09b656436dec4ab95093">SndFileReader</a>, <a class="el" href="classSequenceReader.html#ab4dde1521f72c0ab699c14d27a9112af">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a0071d0158717625440f38afdd5ffe0ef">SawtoothReader</a>, <a class="el" href="classSquareReader.html#a983a405c161cb419e8c205e38924d562">SquareReader</a>, <a class="el" href="classTriangleReader.html#a7bc7b397e728e47700200e2ee19bb8d1">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a8b51bd45ac2953297b8614662820921c">OpenALReader</a>, <a class="el" href="classLinearResampleReader.html#a54b689ae36e847ce9e2c7dd7c21d6a92">LinearResampleReader</a>, <a class="el" href="classSuperposeReader.html#a3fcbe19a4d7b86a616a1556973203995">SuperposeReader</a>, <a class="el" href="classSineReader.html#a619ee1aa35f64a768e46dd268bb2893b">SineReader</a>, <a class="el" href="classDoubleReader.html#a2ee2213723a8685bdab78ed6d73c2898">DoubleReader</a>, <a class="el" href="classBufferReader.html#a4e4cb92e039c33371d734a4a9295c213">BufferReader</a>, <a class="el" href="classMutableReader.html#ad30788fb96706c3a46ce46cb235b9b5a">MutableReader</a>, <a class="el" href="classVolumeReader.html#a1b8e64c092d7f8fd235c4eacf1fabc16">VolumeReader</a>, <a class="el" href="classEffectReader.html#a3d82581f492bb2cadf80bd466cb2aec5">EffectReader</a>, <a class="el" href="classSilenceReader.html#a50bf0c844883e574f46f6e496990090d">SilenceReader</a>, and <a class="el" href="classPitchReader.html#a1b91c28ae764081780b8151bcd44cb5f">PitchReader</a>.</p> </div> </div> <a id="acf13bbdc14e680c21122981f7d3bf6be"></a> <h2 class="memtitle"><span class="permalink"><a href="#acf13bbdc14e680c21122981f7d3bf6be">◆ </a></span>isSeekable()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual bool IReader::isSeekable </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Tells whether the source provides seeking functionality or not. </p> <dl class="section warning"><dt>Warning</dt><dd>This doesn't mean that the seeking always has to succeed. </dd></dl> <dl class="section return"><dt>Returns</dt><dd>Always returns true for readers of buffering types. </dd></dl> <p>Implemented in <a class="el" href="classBinauralReader.html#a3caea4eb49bb2de41c2cfb3dbb6354e8">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#abad35b0edee01a16016d41bdb7eee2a7">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#aa62046cf89a9a7ed4ab7873fd8560c87">ConvolverReader</a>, <a class="el" href="classSndFileReader.html#ae4251a9f6a28662f361ae0c37781b7cc">SndFileReader</a>, <a class="el" href="classSequenceReader.html#a8b68c438cbef5b21761ac16910394a55">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a0d21c430efe864b54a3c94a44964d36c">SawtoothReader</a>, <a class="el" href="classSquareReader.html#a2a77588682af5bf9720027d3026b66de">SquareReader</a>, <a class="el" href="classTriangleReader.html#a7b6be00ceb74c23a6502d72691270145">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a9350f30200ee36e7eeed72aa27780143">OpenALReader</a>, <a class="el" href="classSuperposeReader.html#aeef11095f6dfbf45ea288b1fc518bd99">SuperposeReader</a>, <a class="el" href="classSineReader.html#a11d951c62d766437b43dc19a2f333f5d">SineReader</a>, <a class="el" href="classDoubleReader.html#ae7df8d269402c7dff4f914208f3ee8a2">DoubleReader</a>, <a class="el" href="classBufferReader.html#a4d8f3d9fb983cfb1d995cda3bc74d94d">BufferReader</a>, <a class="el" href="classMutableReader.html#a2b5d8637ef753d1c7be18b7569be2252">MutableReader</a>, <a class="el" href="classVolumeReader.html#ac301a06b28a9d1e82bfb5dba9146b267">VolumeReader</a>, <a class="el" href="classEffectReader.html#a633b8c01babc0b8cdfb9bb0b91b2b516">EffectReader</a>, and <a class="el" href="classSilenceReader.html#a7a591f0503dbae498690d1475ad2957d">SilenceReader</a>.</p> </div> </div> <a id="aef6fa21dfb71d3065fb14517bf0f24d5"></a> <h2 class="memtitle"><span class="permalink"><a href="#aef6fa21dfb71d3065fb14517bf0f24d5">◆ </a></span>read()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void IReader::read </td> <td>(</td> <td class="paramtype">int & </td> <td class="paramname"><em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>eos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="Audaspace_8h.html#aa0798f7ea0975b143a1d9deac8c05d43">sample_t</a> * </td> <td class="paramname"><em>buffer</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Request to read the next length samples out of the source. </p> <p>The buffer supplied has the needed size. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">length</td><td>The count of samples that should be read. Shall contain the real count of samples after reading, in case there were only fewer samples available. A smaller value also indicates the end of the reader. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">eos</td><td>End of stream, whether the end is reached or not. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The pointer to the buffer to read into. </td></tr> </table> </dd> </dl> <p>Implemented in <a class="el" href="classBinauralReader.html#acfba210af9da356e0f8583485ea2013b">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#a7405c72bdce36dcf476ce97200c5ac6d">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#acf761fbdad06bc46b00984d3451352a8">ConvolverReader</a>, <a class="el" href="classChannelMapperReader.html#a00b7ab9a6314baa0ac592c22d6050251">ChannelMapperReader</a>, <a class="el" href="classJOSResampleReader.html#aec88430c49ea51013be38703aa253621">JOSResampleReader</a>, <a class="el" href="classSndFileReader.html#a53ee13a5bebc63fb7cda83552fe1c32f">SndFileReader</a>, <a class="el" href="classBaseIIRFilterReader.html#a2d98cbf232c8bb7fda7b2a90b40e194a">BaseIIRFilterReader</a>, <a class="el" href="classADSRReader.html#a0ebcfda85da83401aa6de11e44c173d3">ADSRReader</a>, <a class="el" href="classSequenceReader.html#abb3cc43957055717abbf19846da5025f">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a2fbc284102e952e7430032e247f87704">SawtoothReader</a>, <a class="el" href="classSquareReader.html#a1ba7600e36a11180d980d7388d818e35">SquareReader</a>, <a class="el" href="classTriangleReader.html#a55c0dd35c679d09ed853f6db12b84177">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a69fd6142dfe1e6a167114ce5808f9749">OpenALReader</a>, <a class="el" href="classLinearResampleReader.html#a1a777bd715c713208f2912ff17258bed">LinearResampleReader</a>, <a class="el" href="classSuperposeReader.html#a8fe58d41a7837c7ca8010f11143c49de">SuperposeReader</a>, <a class="el" href="classFaderReader.html#a98da7a4171614e705cb6fa11afe28190">FaderReader</a>, <a class="el" href="classSineReader.html#aefcc6474b392ecdcb8e7eede4456180d">SineReader</a>, <a class="el" href="classDoubleReader.html#a21fc63aba93db02b1e9cf2ed41026218">DoubleReader</a>, <a class="el" href="classBufferReader.html#a6c7d82f59cd83a28810fe304c736c081">BufferReader</a>, <a class="el" href="classMutableReader.html#a43a0c05317ee33b40a6718c075c2ab4d">MutableReader</a>, <a class="el" href="classVolumeReader.html#ab549f99d1f10ca8f00a3ac1d83616887">VolumeReader</a>, <a class="el" href="classEffectReader.html#a2c0a347337dc390caec08acb8fde95ba">EffectReader</a>, <a class="el" href="classConverterReader.html#a00d02d1b528bd81c1d739d7c6ca15c62">ConverterReader</a>, <a class="el" href="classLimiterReader.html#a5142a68e8e108ebc8f3900c33947deb7">LimiterReader</a>, <a class="el" href="classLoopReader.html#adacc35583811828d7e735262cb73ce5e">LoopReader</a>, <a class="el" href="classReverseReader.html#a2d2ada2fac6ca264a90fbec576f5cbf2">ReverseReader</a>, <a class="el" href="classDelayReader.html#a71a6e2965d61702ab0c710b68c87eccc">DelayReader</a>, and <a class="el" href="classSilenceReader.html#a3dea7d2c3a86d35ed28a84f8b76270ae">SilenceReader</a>.</p> </div> </div> <a id="ad9fc74bb6f4c2b1ecc0f75b7118c1458"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad9fc74bb6f4c2b1ecc0f75b7118c1458">◆ </a></span>seek()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void IReader::seek </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>position</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Seeks to a specific position in the source. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">position</td><td>The position to seek for measured in samples. To get from a given time to the samples you simply have to multiply the time value in seconds with the sample rate of the reader. </td></tr> </table> </dd> </dl> <dl class="section warning"><dt>Warning</dt><dd>This may work or not, depending on the actual reader. </dd></dl> <p>Implemented in <a class="el" href="classBinauralReader.html#aa4d5baa716b30967da1ba368cf5fe8c8">BinauralReader</a>, <a class="el" href="classFFMPEGReader.html#ae43028ad91846e3791df4b68ca03fe21">FFMPEGReader</a>, <a class="el" href="classConvolverReader.html#aef092e97a4dc58f56585b64847967b52">ConvolverReader</a>, <a class="el" href="classJOSResampleReader.html#a24d49694688dec220f579903ff06a614">JOSResampleReader</a>, <a class="el" href="classSndFileReader.html#af424cfd5cf33372971ca5c1a5119176a">SndFileReader</a>, <a class="el" href="classSequenceReader.html#a5c705129bb19ce668a2c0ef5b01b6410">SequenceReader</a>, <a class="el" href="classSawtoothReader.html#a34cc688453cb4f698df25620d69dc05c">SawtoothReader</a>, <a class="el" href="classSquareReader.html#ad711eceadb52a8c7f1bd2e1a59e3d388">SquareReader</a>, <a class="el" href="classTriangleReader.html#aed971d4ffcf5c8bb5336560315a4746f">TriangleReader</a>, <a class="el" href="classOpenALReader.html#a4189f70b8ac7859cb074bf9b1fa744ba">OpenALReader</a>, <a class="el" href="classLinearResampleReader.html#a689d0820dc0239907d46b78a002c071e">LinearResampleReader</a>, <a class="el" href="classSuperposeReader.html#a05952b8d147c8a8aca7e438ed3fef648">SuperposeReader</a>, <a class="el" href="classSineReader.html#a01625bf65706c549dfdd57e35f2e23c0">SineReader</a>, <a class="el" href="classDoubleReader.html#afad44dd3fa7d56a5f7611959df26406b">DoubleReader</a>, <a class="el" href="classBufferReader.html#aa4f2b6a8fd52eef023f39b3559f83719">BufferReader</a>, <a class="el" href="classMutableReader.html#a6121a911a2601592871c20ca6e246a33">MutableReader</a>, <a class="el" href="classVolumeReader.html#a433f7b214109455c2bae16359352309b">VolumeReader</a>, <a class="el" href="classEffectReader.html#a33297aeb697345439f4256fb9ac0e2ba">EffectReader</a>, <a class="el" href="classLimiterReader.html#ac436d0ee225a108528569d5039b3685c">LimiterReader</a>, <a class="el" href="classLoopReader.html#a977ea2621c59d145d660ef8cb26bb964">LoopReader</a>, <a class="el" href="classReverseReader.html#a3a9a6d52127924cced0c52703e101f6b">ReverseReader</a>, <a class="el" href="classDelayReader.html#a180f37a37b9b6c48c564ced598864a85">DelayReader</a>, and <a class="el" href="classSilenceReader.html#af3083224e56e1b848e4bf2e9d93a492f">SilenceReader</a>.</p> </div> </div> <hr/>The documentation for this interface was generated from the following file:<ul> <li><a class="el" href="IReader_8h_source.html">IReader.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.15 </small></address> </body> </html>