Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 3759

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: iSndSysStream Struct Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <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>
<h1>iSndSysStream Struct Reference<br>
<small>
[<a class="el" href="group__sndsys.html">Sound system</a>]</small>
</h1><!-- doxytag: class="iSndSysStream" --><!-- doxytag: inherits="iBase" -->The primary interface for a sound stream used by the audio system.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="ss__stream_8h-source.html">isndsys/ss_stream.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iSndSysStream:</div>
<div class="dynsection">
<p><center><img src="structiSndSysStream__inherit__graph.png" border="0" usemap="#iSndSysStream__inherit__map" alt="Inheritance graph"></center>
<map name="iSndSysStream__inherit__map">
<area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; CS::SndSys::SndSysBasicStream, iSndSysStream \&gt;" alt="" coords="5,161,512,188"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="231,7,287,33"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiSndSysStream-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#f1e3e9214dbf32b2a3c973173a88d68e">AdvancePosition</a> (size_t frame_delta)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position based on the provided frame count value which is considered as an elapsed frame count.  <a href="#f1e3e9214dbf32b2a3c973173a88d68e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#40af86fd33958cf14e0ff1e494966ec5">Get3dMode</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the 3D Mode the sound stream was created for.  <a href="#40af86fd33958cf14e0ff1e494966ec5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#ba67efcf175ff16e94af86be47afc472">GetAutoUnregister</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If AutoUnregister is set, when the stream is paused it, and all sources attached to it are removed from the sound engine.  <a href="#ba67efcf175ff16e94af86be47afc472"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#68af5f2a1f7e4bbbad3c260f8bf3ac78">GetAutoUnregisterRequested</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used by the sound renderer to determine if this stream needs to be unregistered.  <a href="#68af5f2a1f7e4bbbad3c260f8bf3ac78"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#19bec601b069a74920a2df68df96a808">GetDataPointers</a> (size_t *position_marker, size_t max_requested_frames, void **buffer1, size_t *buffer1_frames, void **buffer2, size_t *buffer2_frames)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to retrieve pointers to properly formatted sound data.  <a href="#19bec601b069a74920a2df68df96a808"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#f5a3d327ccf46f56aa014e977dfac1ed">GetDescription</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a description of this stream.  <a href="#f5a3d327ccf46f56aa014e977dfac1ed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#44e60d6dbbfb761a33527e1c786d9294">GetFrameCount</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get length of this stream in rendered frames.  <a href="#44e60d6dbbfb761a33527e1c786d9294"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#c472f9baf3a13a3a5a3d3e17df247b6e">GetLoopState</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the loop state of the stream.  <a href="#c472f9baf3a13a3a5a3d3e17df247b6e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#5a1468bfd07840c8dfa341821cd69ec4">GetPauseState</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the PAUSE state of the stream:<ul>
<li>CS_SNDSYS_STREAM_PAUSED - The stream is paused. </li></ul>
 <a href="#5a1468bfd07840c8dfa341821cd69ec4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#bf70b7f3a8229af62d20d9538fb6842b">GetPlayRatePercent</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the playback rate adjustment factor in percent.  <a href="#bf70b7f3a8229af62d20d9538fb6842b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#c86197b837a2e53ccfd46a26948c2207">GetPosition</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current position of this sound in rendered frames.  <a href="#c86197b837a2e53ccfd46a26948c2207"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
<a class="el" href="structcsSndSysSoundFormat.html">csSndSysSoundFormat</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#d66feda8245c8d13d6ea5803ed9883ef">GetRenderedFormat</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the format of the rendered sound data.  <a href="#d66feda8245c8d13d6ea5803ed9883ef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#c46bf5f08884d66a679bc313300b75f5">InitializeSourcePositionMarker</a> (size_t *position_marker)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill a size_t value that will be used to track a Source's position through calls to <a class="el" href="structiSndSysStream.html#19bec601b069a74920a2df68df96a808" title="Used to retrieve pointers to properly formatted sound data.">GetDataPointers()</a>.  <a href="#c46bf5f08884d66a679bc313300b75f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#3e92be14cdad9c61397d401abb0c5d56">Pause</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pauses the stream at the current position.  <a href="#3e92be14cdad9c61397d401abb0c5d56"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#3749cf5a883a62772a4f833d5e34e0a5">ProcessNotifications</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called by the sound system to allow a stream time to process pending notifications.  <a href="#3749cf5a883a62772a4f833d5e34e0a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#d976380424b7d0bfe29708bf1fa81483">RegisterCallback</a> (<a class="el" href="structiSndSysStreamCallback.html">iSndSysStreamCallback</a> *pCallback)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a component to receive notification of stream events.  <a href="#d976380424b7d0bfe29708bf1fa81483"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#4eff35dfab4aa95d24c37bb0eded202a">RegisterFrameNotification</a> (size_t frame_number)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a particular frame number which will trigger a callback notification when.  <a href="#4eff35dfab4aa95d24c37bb0eded202a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#61bf6816d14a6648ad071031fba4e24b">ResetPosition</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the position of the stream to the beginning if possible.  <a href="#61bf6816d14a6648ad071031fba4e24b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#a13945464cdd96a0d247ebdabca34c50">SCF_INTERFACE</a> (<a class="el" href="structiSndSysStream.html">iSndSysStream</a>, 0, 2, 1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SCF2006 - See <a href="http://www.crystalspace3d.org/cseps/csep-0010.html.">http://www.crystalspace3d.org/cseps/csep-0010.html.</a>  <a href="#a13945464cdd96a0d247ebdabca34c50"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#b2202b3acd98660da78b398e7737cb54">SetAutoUnregister</a> (bool autounreg)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If AutoUnregister is set, when the stream is paused it, and all sources attached to it are removed from the sound engine.  <a href="#b2202b3acd98660da78b398e7737cb54"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#d4b7bd25093db790232d998ea531a00b">SetLoopState</a> (int loopstate)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the loop state of the stream.  <a href="#d4b7bd25093db790232d998ea531a00b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#e3f0248eac62c91ab72f981bffd1a819">SetPlayRatePercent</a> (int percent)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the playback rate adjustment factor in percent.  <a href="#e3f0248eac62c91ab72f981bffd1a819"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#f783e03ac79634de917d8c19ef4e5aa3">SetPosition</a> (size_t newposition)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the position of the stream to a particular frame.  <a href="#f783e03ac79634de917d8c19ef4e5aa3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#9ef483cfe6b45d306ab87549ae19b99e">Unpause</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unpauses the stream and resumes providing data at the current position.  <a href="#9ef483cfe6b45d306ab87549ae19b99e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiSndSysStream.html#4d68fe9725aad5f598ac3abf5e37b716">UnregisterCallback</a> (<a class="el" href="structiSndSysStreamCallback.html">iSndSysStreamCallback</a> *pCallback)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unregister a previously registered callback component.  <a href="#4d68fe9725aad5f598ac3abf5e37b716"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The primary interface for a sound stream used by the audio system. 
<p>Definition at line <a class="el" href="ss__stream_8h-source.html#l00061">61</a> of file <a class="el" href="ss__stream_8h-source.html">ss_stream.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="f1e3e9214dbf32b2a3c973173a88d68e"></a><!-- doxytag: member="iSndSysStream::AdvancePosition" ref="f1e3e9214dbf32b2a3c973173a88d68e" args="(size_t frame_delta)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::AdvancePosition           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>frame_delta</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position based on the provided frame count value which is considered as an elapsed frame count. 
<p>
A Sound Element will usually store the last advance frame internally. When this function is called it will compare the last frame with the frame presented and retrieve more data from the associated <a class="el" href="structiSndSysData.html" title="The sound data is an interface to the container object controlling raw sound data...">iSndSysData</a> container as needed. It will then update its internal last advance frame value.<p>
This function is not necessarily thread safe and must be called ONLY from the Sound System's main processing thread. 
</div>
</div><p>
<a class="anchor" name="40af86fd33958cf14e0ff1e494966ec5"></a><!-- doxytag: member="iSndSysStream::Get3dMode" ref="40af86fd33958cf14e0ff1e494966ec5" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iSndSysStream::Get3dMode           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve the 3D Mode the sound stream was created for. 
<p>

</div>
</div><p>
<a class="anchor" name="ba67efcf175ff16e94af86be47afc472"></a><!-- doxytag: member="iSndSysStream::GetAutoUnregister" ref="ba67efcf175ff16e94af86be47afc472" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::GetAutoUnregister           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If AutoUnregister is set, when the stream is paused it, and all sources attached to it are removed from the sound engine. 
<p>

</div>
</div><p>
<a class="anchor" name="68af5f2a1f7e4bbbad3c260f8bf3ac78"></a><!-- doxytag: member="iSndSysStream::GetAutoUnregisterRequested" ref="68af5f2a1f7e4bbbad3c260f8bf3ac78" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::GetAutoUnregisterRequested           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used by the sound renderer to determine if this stream needs to be unregistered. 
<p>

</div>
</div><p>
<a class="anchor" name="19bec601b069a74920a2df68df96a808"></a><!-- doxytag: member="iSndSysStream::GetDataPointers" ref="19bec601b069a74920a2df68df96a808" args="(size_t *position_marker, size_t max_requested_frames, void **buffer1, size_t *buffer1_frames, void **buffer2, size_t *buffer2_frames)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::GetDataPointers           </td>
          <td>(</td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>position_marker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>max_requested_frames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>buffer1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>buffer1_frames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>buffer2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>buffer2_frames</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Used to retrieve pointers to properly formatted sound data. 
<p>
Since a Stream may be attached to multiple Sources, it will be most optimal to perform any decoded-data buffering at the stream level. The parameters passed to <a class="el" href="structiSndSysStream.html#19bec601b069a74920a2df68df96a808" title="Used to retrieve pointers to properly formatted sound data.">GetDataPointers()</a> should allow for proper interface to a cyclic buffering method to store this decoded-data.<p>
Since the data in the Stream buffer(s) and data related to how the buffers are accessed may change when <a class="el" href="structiSndSysStream.html#f1e3e9214dbf32b2a3c973173a88d68e" title="NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position...">AdvancePosition()</a> is called, this function is not safe to call while <a class="el" href="structiSndSysStream.html#f1e3e9214dbf32b2a3c973173a88d68e" title="NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position...">AdvancePosition()</a> is in operation. For this reason it is only safe to be called from the same thread that calls <a class="el" href="structiSndSysStream.html#f1e3e9214dbf32b2a3c973173a88d68e" title="NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position...">AdvancePosition()</a> - specifically the Sound System main processing thread.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position_marker</em>&nbsp;</td><td>Should point to a size_t initially filled by the Sound System internally when a Source is created - through a call to <a class="el" href="structiSndSysStream.html#c46bf5f08884d66a679bc313300b75f5" title="Fill a size_t value that will be used to track a Source&#39;s position through calls...">InitializeSourcePositionMarker()</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max_requested_frames</em>&nbsp;</td><td>Should contain the maximum number of frames the calling source is interested in receiving. On return, *buffer1_length + *buffer2_length must not exceed this value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer1</em>&nbsp;</td><td>should point to a (void *) that will be filled with a pointer to the first chunk of data on return or NULL (0) if no data is available </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer1_frames</em>&nbsp;</td><td>should point to a long that will be filled with the length, in frames, of valid data in the buffer pointed to by *buffer1 on return. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer2</em>&nbsp;</td><td>should point to a (void *) that will be filled with a pointer to the second chunk of data on return, or NULL (0) if no second chunk is needed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer2_frames</em>&nbsp;</td><td>should point to a long that will be filled with the length, in frames, of valid data in the buffer pointed to by *buffer1 on return.</td></tr>
  </table>
</dl>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Not intended to be called by an application. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f5a3d327ccf46f56aa014e977dfac1ed"></a><!-- doxytag: member="iSndSysStream::GetDescription" ref="f5a3d327ccf46f56aa014e977dfac1ed" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* iSndSysStream::GetDescription           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieve a description of this stream. 
<p>

</div>
</div><p>
<a class="anchor" name="44e60d6dbbfb761a33527e1c786d9294"></a><!-- doxytag: member="iSndSysStream::GetFrameCount" ref="44e60d6dbbfb761a33527e1c786d9294" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t iSndSysStream::GetFrameCount           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get length of this stream in rendered frames. 
<p>
May return CS_SNDSYS_STREAM_UNKNOWN_LENGTH if the stream is of unknown length. For example, sound data being streamed from a remote host may not have a pre-determinable length. 
</div>
</div><p>
<a class="anchor" name="c472f9baf3a13a3a5a3d3e17df247b6e"></a><!-- doxytag: member="iSndSysStream::GetLoopState" ref="c472f9baf3a13a3a5a3d3e17df247b6e" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iSndSysStream::GetLoopState           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the loop state of the stream. 
<p>
Current possible returns are CS_SNDSYS_STREAM_DONTLOOP and CS_SNDSYS_STREAM_LOOP. 
</div>
</div><p>
<a class="anchor" name="5a1468bfd07840c8dfa341821cd69ec4"></a><!-- doxytag: member="iSndSysStream::GetPauseState" ref="5a1468bfd07840c8dfa341821cd69ec4" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iSndSysStream::GetPauseState           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the PAUSE state of the stream:<ul>
<li>CS_SNDSYS_STREAM_PAUSED - The stream is paused. </li></ul>

<p>
<ul>
<li>CS_SNDSYS_STREAM_UNPAUSED - The stream is not paused. AdvancePosition is moving the stream position. </li></ul>

</div>
</div><p>
<a class="anchor" name="bf70b7f3a8229af62d20d9538fb6842b"></a><!-- doxytag: member="iSndSysStream::GetPlayRatePercent" ref="bf70b7f3a8229af62d20d9538fb6842b" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int iSndSysStream::GetPlayRatePercent           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the playback rate adjustment factor in percent. 
<p>
100 = 100% (normal speed) 
</div>
</div><p>
<a class="anchor" name="c86197b837a2e53ccfd46a26948c2207"></a><!-- doxytag: member="iSndSysStream::GetPosition" ref="c86197b837a2e53ccfd46a26948c2207" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t iSndSysStream::GetPosition           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the current position of this sound in rendered frames. 
<p>
This should return a valid value even if <a class="el" href="structiSndSysStream.html#44e60d6dbbfb761a33527e1c786d9294" title="Get length of this stream in rendered frames.">GetFrameCount()</a> returns CS_SNDSYS_STREAM_UNKNOWN_LENGTH since an object implementing this interface should know its position relative to the beginning of the data. In the case where the beginning may be ambiguous it should be considered to be at the point where the stream first started. In other words, where there is doubt, the position should start at 0 and advance as the position advances. 
</div>
</div><p>
<a class="anchor" name="d66feda8245c8d13d6ea5803ed9883ef"></a><!-- doxytag: member="iSndSysStream::GetRenderedFormat" ref="d66feda8245c8d13d6ea5803ed9883ef" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structcsSndSysSoundFormat.html">csSndSysSoundFormat</a>* iSndSysStream::GetRenderedFormat           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the format of the rendered sound data. 
<p>
This is for informational purposes only. 
</div>
</div><p>
<a class="anchor" name="c46bf5f08884d66a679bc313300b75f5"></a><!-- doxytag: member="iSndSysStream::InitializeSourcePositionMarker" ref="c46bf5f08884d66a679bc313300b75f5" args="(size_t *position_marker)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::InitializeSourcePositionMarker           </td>
          <td>(</td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>position_marker</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fill a size_t value that will be used to track a Source's position through calls to <a class="el" href="structiSndSysStream.html#19bec601b069a74920a2df68df96a808" title="Used to retrieve pointers to properly formatted sound data.">GetDataPointers()</a>. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Not intended to be called by an application. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3e92be14cdad9c61397d401abb0c5d56"></a><!-- doxytag: member="iSndSysStream::Pause" ref="3e92be14cdad9c61397d401abb0c5d56" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::Pause           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Pauses the stream at the current position. 
<p>
Data will not be provided through the GetData() call beyond the point of pausing. <a class="el" href="structiSndSysStream.html#f1e3e9214dbf32b2a3c973173a88d68e" title="NOT AN APPLICATION CALLABLE FUNCTION! This function advances the stream position...">AdvancePosition()</a> will NOT adjust the position of the stream.<p>
If either of the above conditions cannot be met, this call fails and returns FALSE. The sound element should continue operation as though this call were not made. For example, a stream coming from a remote host may not be able to be stopped or advance-buffered properly, in this case pausing the stream is not possible, and this function should return FALSE. 
</div>
</div><p>
<a class="anchor" name="3749cf5a883a62772a4f833d5e34e0a5"></a><!-- doxytag: member="iSndSysStream::ProcessNotifications" ref="3749cf5a883a62772a4f833d5e34e0a5" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::ProcessNotifications           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called by the sound system to allow a stream time to process pending notifications. 
<p>
<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Not intended to be called by an application. This is called from the main application thread. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d976380424b7d0bfe29708bf1fa81483"></a><!-- doxytag: member="iSndSysStream::RegisterCallback" ref="d976380424b7d0bfe29708bf1fa81483" args="(iSndSysStreamCallback *pCallback)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::RegisterCallback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiSndSysStreamCallback.html">iSndSysStreamCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>pCallback</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a component to receive notification of stream events. 
<p>

</div>
</div><p>
<a class="anchor" name="4eff35dfab4aa95d24c37bb0eded202a"></a><!-- doxytag: member="iSndSysStream::RegisterFrameNotification" ref="4eff35dfab4aa95d24c37bb0eded202a" args="(size_t frame_number)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::RegisterFrameNotification           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>frame_number</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a particular frame number which will trigger a callback notification when. 
<p>

</div>
</div><p>
<a class="anchor" name="61bf6816d14a6648ad071031fba4e24b"></a><!-- doxytag: member="iSndSysStream::ResetPosition" ref="61bf6816d14a6648ad071031fba4e24b" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::ResetPosition           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resets the position of the stream to the beginning if possible. 
<p>
FALSE may be returned if a reset operation is not permitted or not possible. 
</div>
</div><p>
<a class="anchor" name="a13945464cdd96a0d247ebdabca34c50"></a><!-- doxytag: member="iSndSysStream::SCF_INTERFACE" ref="a13945464cdd96a0d247ebdabca34c50" args="(iSndSysStream, 0, 2, 1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">iSndSysStream::SCF_INTERFACE           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiSndSysStream.html">iSndSysStream</a>&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">0&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">2&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">1&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
SCF2006 - See <a href="http://www.crystalspace3d.org/cseps/csep-0010.html.">http://www.crystalspace3d.org/cseps/csep-0010.html.</a> 
<p>

</div>
</div><p>
<a class="anchor" name="b2202b3acd98660da78b398e7737cb54"></a><!-- doxytag: member="iSndSysStream::SetAutoUnregister" ref="b2202b3acd98660da78b398e7737cb54" args="(bool autounreg)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::SetAutoUnregister           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>autounreg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If AutoUnregister is set, when the stream is paused it, and all sources attached to it are removed from the sound engine. 
<p>

</div>
</div><p>
<a class="anchor" name="d4b7bd25093db790232d998ea531a00b"></a><!-- doxytag: member="iSndSysStream::SetLoopState" ref="d4b7bd25093db790232d998ea531a00b" args="(int loopstate)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::SetLoopState           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>loopstate</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the loop state of the stream. 
<p>
Current acceptable values are CS_SNDSYS_STREAM_DONTLOOP and CS_SNDSYS_STREAM_LOOP May return FALSE if looping is not supported 
</div>
</div><p>
<a class="anchor" name="e3f0248eac62c91ab72f981bffd1a819"></a><!-- doxytag: member="iSndSysStream::SetPlayRatePercent" ref="e3f0248eac62c91ab72f981bffd1a819" args="(int percent)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iSndSysStream::SetPlayRatePercent           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>percent</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the playback rate adjustment factor in percent. 
<p>
100 = 100% (normal speed) 
</div>
</div><p>
<a class="anchor" name="f783e03ac79634de917d8c19ef4e5aa3"></a><!-- doxytag: member="iSndSysStream::SetPosition" ref="f783e03ac79634de917d8c19ef4e5aa3" args="(size_t newposition)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::SetPosition           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>newposition</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the position of the stream to a particular frame. 
<p>
FALSE may be returned if a set position operation is not permitted or not possible. 
</div>
</div><p>
<a class="anchor" name="9ef483cfe6b45d306ab87549ae19b99e"></a><!-- doxytag: member="iSndSysStream::Unpause" ref="9ef483cfe6b45d306ab87549ae19b99e" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::Unpause           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unpauses the stream and resumes providing data at the current position. 
<p>
If the stream is not currently paused this function returns FALSE. 
</div>
</div><p>
<a class="anchor" name="4d68fe9725aad5f598ac3abf5e37b716"></a><!-- doxytag: member="iSndSysStream::UnregisterCallback" ref="4d68fe9725aad5f598ac3abf5e37b716" args="(iSndSysStreamCallback *pCallback)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iSndSysStream::UnregisterCallback           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiSndSysStreamCallback.html">iSndSysStreamCallback</a> *&nbsp;</td>
          <td class="paramname"> <em>pCallback</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unregister a previously registered callback component. 
<p>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>isndsys/<a class="el" href="ss__stream_8h-source.html">ss_stream.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>