Imported Upstream version 1.2
[platform/upstream/alure.git] / docs / html / files / streamplay-cpp.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
2
3 <html><head><title>Automatic Playback - ALURE</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
4 if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
5
6 <!--  Generated by Natural Docs, version 1.4 -->
7 <!--  http://www.naturaldocs.org  -->
8
9 <!-- saved from url=(0026)http://www.naturaldocs.org -->
10
11
12
13
14 <div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Automatic_Playback"></a>Automatic Playback</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Automatic_Playback" >Automatic Playback</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#alurePlaySourceStream" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a></td><td class=SDescription>Starts playing a stream, using the specified source ID. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#alurePlaySource" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">alurePlaySource</a></td><td class=SDescription>Plays the specified source ID and watches for it to stop. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#alureStopSource" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">alureStopSource</a></td><td class=SDescription>Stops the specified source ID, and any associated stream. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#alurePauseSource" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">alurePauseSource</a></td><td class=SDescription>Pauses the specified source ID, and any associated stream. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#alureResumeSource" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">alureResumeSource</a></td><td class=SDescription>Resumes the specified source ID after being paused.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#alureUpdate" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">alureUpdate</a></td><td class=SDescription>Updates the running list of streams, and checks for stopped sources. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#alureUpdateInterval" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">alureUpdateInterval</a></td><td class=SDescription>Sets up a timer or thread to automatically call <a href="#alureUpdate" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')">alureUpdate</a> at the given interval, in seconds. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
15
16 <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
17
18 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alurePlaySourceStream"></a>alurePlaySourceStream</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=4>ALURE_API ALboolean ALURE_APIENTRY alurePlaySourceStream(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>source,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>alureStream&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>stream,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>numBufs,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>loopcount,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>(*eos_callback)(void *userdata, ALuint source),</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>userdata</td></tr><tr><td class=PAfterParameters colspan=4>)</td></tr></table></td></tr></table></blockquote><p>Starts playing a stream, using the specified source ID.&nbsp; A stream can only be played if it is not already playing.&nbsp; You must call <a href="#alureUpdate" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt6', 'link9')" onMouseOut="HideTip('tt6')">alureUpdate</a> at regular intervals to keep the stream playing, or else the stream will underrun and cause a break in the playback until an update call can restart it.&nbsp; It is also important that the current context is kept for <a href="#alureUpdate" class=LFunction id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut="HideTip('tt6')">alureUpdate</a> calls if ALC_EXT_thread_local_context is not supported, otherwise the method may start calling OpenAL with invalid IDs.&nbsp; Note that checking the state of the specified source is not a good method to determine if a stream is playing.&nbsp; If an underrun occurs, the source will enter a stopped state until it is automatically restarted.&nbsp; Instead, set a flag using the callback to indicate the stream being stopped.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>source</td><td class=CDLDescription>The source ID to play the stream with.&nbsp; Any buffers on the source will be unqueued.&nbsp; It is valid to set source properties not related to the buffer queue or playback state (ie. you may change the source&rsquo;s position, pitch, gain, etc, but you must not stop the source or queue/unqueue buffers on it).&nbsp; To pause the source, call <a href="#alurePauseSource" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">alurePauseSource</a>.</td></tr><tr><td class=CDLEntry>stream</td><td class=CDLDescription>The stream to play.&nbsp; Any valid stream will work, although looping will only work if the stream can be rewound (eg. streams made with <a href="stream-cpp.html#alureCreateStreamFromCallback" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt8', 'link12')" onMouseOut="HideTip('tt8')">alureCreateStreamFromCallback</a> cannot loop, but will play for as long as the callback provides data).</td></tr><tr><td class=CDLEntry>numBufs</td><td class=CDLDescription>The number of buffers used to queue with the OpenAL source.&nbsp; Each buffer will be filled with the chunk length specified when the stream was created.&nbsp; This value must be at least 2.&nbsp; More buffers at a larger size will increase the time needed between updates, but at the cost of more memory usage.</td></tr><tr><td class=CDLEntry>loopcount</td><td class=CDLDescription>The number of times to loop the stream.&nbsp; When the stream reaches the end of processing, it will be rewound to continue buffering data.&nbsp; A value of -1 will cause the stream to loop indefinitely (or until <a href="#alureStopSource" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">alureStopSource</a> is called).</td></tr><tr><td class=CDLEntry>eos_callback</td><td class=CDLDescription>This callback will be called when the stream reaches the end, no more loops are pending, and the source reaches a stopped state.&nbsp; It will also be called if an error occured and playback terminated.</td></tr><tr><td class=CDLEntry>userdata</td><td class=CDLDescription>An opaque user pointer passed to the callback.</td></tr></table><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alureStopSource" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt3', 'link14')" onMouseOut="HideTip('tt3')">alureStopSource</a>, <a href="#alurePauseSource" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt4', 'link15')" onMouseOut="HideTip('tt4')">alurePauseSource</a>, <a href="#alureUpdate" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt6', 'link16')" onMouseOut="HideTip('tt6')">alureUpdate</a></p></div></div></div>
19
20 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alurePlaySource"></a>alurePlaySource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=4>ALURE_API ALboolean ALURE_APIENTRY alurePlaySource(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>source,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>(*callback)(void *userdata, ALuint source),</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>userdata</td></tr><tr><td class=PAfterParameters colspan=4>)</td></tr></table></td></tr></table></blockquote><p>Plays the specified source ID and watches for it to stop.&nbsp; When the source enters an AL_STOPPED or AL_INITIAL state, the specified callback will be called by <a href="#alureUpdate" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt6', 'link17')" onMouseOut="HideTip('tt6')">alureUpdate</a> to alert the application.&nbsp; If ALC_EXT_thread_local_context is not supported, the current context must not be changed while the source is being watched (before the callback is called or <a href="#alureStopSource" class=LFunction id=link18 onMouseOver="ShowTip(event, 'tt3', 'link18')" onMouseOut="HideTip('tt3')">alureStopSource</a> is called).&nbsp; It also must not be deleted while being watched.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>source</td><td class=CDLDescription>The source ID to play.&nbsp; As with <a href="#alurePlaySourceStream" class=LFunction id=link19 onMouseOver="ShowTip(event, 'tt1', 'link19')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a>, it is valid to set source properties not related to the playback state (ie. you may change a source&rsquo;s position, pitch, gain, etc).&nbsp; Pausing a source and restarting a paused source is allowed, and the callback will still be called when the source reaches an AL_STOPPED or AL_INITIAL state.</td></tr><tr><td class=CDLEntry>callback</td><td class=CDLDescription>The callback to be called when the source stops.</td></tr><tr><td class=CDLEntry>userdata</td><td class=CDLDescription>An opaque user pointer passed to the callback.</td></tr></table><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alureStopSource" class=LFunction id=link20 onMouseOver="ShowTip(event, 'tt3', 'link20')" onMouseOut="HideTip('tt3')">alureStopSource</a>, <a href="#alureUpdate" class=LFunction id=link21 onMouseOver="ShowTip(event, 'tt6', 'link21')" onMouseOut="HideTip('tt6')">alureUpdate</a></p></div></div></div>
21
22 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alureStopSource"></a>alureStopSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureStopSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PType nowrap>ALboolean&nbsp;</td><td class=PParameter nowrap>run_callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stops the specified source ID, and any associated stream.&nbsp; The previously specified callback will be invoked if &lsquo;run_callback&rsquo; is not AL_FALSE.&nbsp; Sources that were not started with <a href="#alurePlaySourceStream" class=LFunction id=link22 onMouseOver="ShowTip(event, 'tt1', 'link22')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a> or <a href="#alurePlaySource" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt2', 'link23')" onMouseOut="HideTip('tt2')">alurePlaySource</a> will still be stopped, but will not have any callback called for them.</p><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alurePlaySourceStream" class=LFunction id=link24 onMouseOver="ShowTip(event, 'tt1', 'link24')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a>, <a href="#alurePlaySource" class=LFunction id=link25 onMouseOver="ShowTip(event, 'tt2', 'link25')" onMouseOut="HideTip('tt2')">alurePlaySource</a></p></div></div></div>
23
24 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alurePauseSource"></a>alurePauseSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alurePauseSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Pauses the specified source ID, and any associated stream.&nbsp; This is needed to avoid potential race conditions with sources that are playing a stream.</p><p>Note that it is possible for the specified source to become stopped, and any associated stream to finish, before this function is called, causing the callback to be delayed until after the function returns and <a href="#alureUpdate" class=LFunction id=link26 onMouseOver="ShowTip(event, 'tt6', 'link26')" onMouseOut="HideTip('tt6')">alureUpdate</a> detects the stopped source.</p><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alureResumeSource" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt5', 'link27')" onMouseOut="HideTip('tt5')">alureResumeSource</a>, <a href="#alurePlaySourceStream" class=LFunction id=link28 onMouseOver="ShowTip(event, 'tt1', 'link28')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a>, <a href="#alurePlaySource" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt2', 'link29')" onMouseOut="HideTip('tt2')">alurePlaySource</a></p></div></div></div>
25
26 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alureResumeSource"></a>alureResumeSource</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureResumeSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Resumes the specified source ID after being paused.</p><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alurePauseSource" class=LFunction id=link30 onMouseOver="ShowTip(event, 'tt4', 'link30')" onMouseOut="HideTip('tt4')">alurePauseSource</a></p></div></div></div>
27
28 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alureUpdate"></a>alureUpdate</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API void ALURE_APIENTRY alureUpdate(</td><td class=PParameter nowrap>void</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates the running list of streams, and checks for stopped sources.&nbsp; This makes sure that sources played with <a href="#alurePlaySourceStream" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt1', 'link31')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a> are kept fed from their associated stream, and sources played with <a href="#alurePlaySource" class=LFunction id=link32 onMouseOver="ShowTip(event, 'tt2', 'link32')" onMouseOut="HideTip('tt2')">alurePlaySource</a> are still playing.&nbsp; It will call their callbacks as needed.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alurePlaySourceStream" class=LFunction id=link33 onMouseOver="ShowTip(event, 'tt1', 'link33')" onMouseOut="HideTip('tt1')">alurePlaySourceStream</a>, <a href="#alurePlaySource" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt2', 'link34')" onMouseOut="HideTip('tt2')">alurePlaySource</a></p></div></div></div>
29
30 <div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="alureUpdateInterval"></a>alureUpdateInterval</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureUpdateInterval(</td><td class=PType nowrap>ALfloat&nbsp;</td><td class=PParameter nowrap>interval</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets up a timer or thread to automatically call <a href="#alureUpdate" class=LFunction id=link35 onMouseOver="ShowTip(event, 'tt6', 'link35')" onMouseOut="HideTip('tt6')">alureUpdate</a> at the given interval, in seconds.&nbsp; If the timer or thread is already running, the update interval will be modified.&nbsp; A 0 or negative interval will stop <a href="#alureUpdate" class=LFunction id=link36 onMouseOver="ShowTip(event, 'tt6', 'link36')" onMouseOut="HideTip('tt6')">alureUpdate</a> from being called.</p><h4 class=CHeading>Returns</h4><p>AL_FALSE on error.</p><p><b>Version Added</b>: 1.1</p><h4 class=CHeading>See Also</h4><p><a href="#alureUpdate" class=LFunction id=link37 onMouseOver="ShowTip(event, 'tt6', 'link37')" onMouseOut="HideTip('tt6')">alureUpdate</a></p></div></div></div>
31
32 </div><!--Content-->
33
34
35 <div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
36
37
38 <div id=Menu><div class=MTitle>ALURE<div class=MSubTitle>API Reference</div></div><div class=MEntry><div class=MFile><a href="alure-cpp.html">Main and Miscellanious</a></div></div><div class=MEntry><div class=MFile><a href="buffer-cpp.html">File Loading</a></div></div><div class=MEntry><div class=MFile><a href="stream-cpp.html">Streaming</a></div></div><div class=MEntry><div class=MFile><a href="istream-cpp.html">File I/<wbr>O</a></div></div><div class=MEntry><div class=MFile id=MSelected>Automatic Playback</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
39 var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
40 --></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
41
42
43
44 <!--START_ND_TOOLTIPS-->
45 <div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=4>ALURE_API ALboolean ALURE_APIENTRY alurePlaySourceStream(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>source,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>alureStream&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>stream,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>numBufs,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>loopcount,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>(*eos_callback)(void *userdata, ALuint source),</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>userdata</td></tr><tr><td class=PAfterParameters colspan=4>)</td></tr></table></td></tr></table></blockquote>Starts playing a stream, using the specified source ID. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=4>ALURE_API ALboolean ALURE_APIENTRY alurePlaySource(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>source,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>(*callback)(void *userdata, ALuint source),</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>userdata</td></tr><tr><td class=PAfterParameters colspan=4>)</td></tr></table></td></tr></table></blockquote>Plays the specified source ID and watches for it to stop. </div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureStopSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PType nowrap>ALboolean&nbsp;</td><td class=PParameter nowrap>run_callback</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stops the specified source ID, and any associated stream. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alurePauseSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Pauses the specified source ID, and any associated stream. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureResumeSource(</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameter nowrap>source</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Resumes the specified source ID after being paused.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API void ALURE_APIENTRY alureUpdate(</td><td class=PParameter nowrap>void</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Updates the running list of streams, and checks for stopped sources. </div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>ALURE_API ALboolean ALURE_APIENTRY alureUpdateInterval(</td><td class=PType nowrap>ALfloat&nbsp;</td><td class=PParameter nowrap>interval</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets up a timer or thread to automatically call alureUpdate at the given interval, in seconds. </div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=4>ALURE_API alureStream* ALURE_APIENTRY alureCreateStreamFromCallback(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>(*callback)(void *userdata, ALubyte *data, ALuint bytes),</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>userdata,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALenum&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>format,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>samplerate,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>chunkLength,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALsizei&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap width=100%>numBufs,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>ALuint&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap width=100%>bufs</td></tr><tr><td class=PAfterParameters colspan=4>)</td></tr></table></td></tr></table></blockquote>Creates a stream using the specified callback to retrieve data. </div></div><!--END_ND_TOOLTIPS-->
46
47
48
49
50 <div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
51
52
53 <script language=JavaScript><!--
54 if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>