1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.15"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>Oboe: oboe::AudioStreamBuilder Class Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="search/search.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="search/searchdata.js"></script>
14<script type="text/javascript" src="search/search.js"></script>
15<link href="doxygen.css" rel="stylesheet" type="text/css" />
16</head>
17<body>
18<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19<div id="titlearea">
20<table cellspacing="0" cellpadding="0">
21 <tbody>
22 <tr style="height: 56px;">
23  <td id="projectalign" style="padding-left: 0.5em;">
24   <div id="projectname">Oboe
25   &#160;<span id="projectnumber">1.5</span>
26   </div>
27   <div id="projectbrief">A library for creating real-time audio apps on Android</div>
28  </td>
29 </tr>
30 </tbody>
31</table>
32</div>
33<!-- end header part -->
34<!-- Generated by Doxygen 1.8.15 -->
35<script type="text/javascript">
36/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
37var searchBox = new SearchBox("searchBox", "search",false,'Search');
38/* @license-end */
39</script>
40<script type="text/javascript" src="menudata.js"></script>
41<script type="text/javascript" src="menu.js"></script>
42<script type="text/javascript">
43/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
44$(function() {
45  initMenu('',true,false,'search.php','Search');
46  $(document).ready(function() { init_search(); });
47});
48/* @license-end */</script>
49<div id="main-nav"></div>
50<!-- window showing the filter options -->
51<div id="MSearchSelectWindow"
52     onmouseover="return searchBox.OnSearchSelectShow()"
53     onmouseout="return searchBox.OnSearchSelectHide()"
54     onkeydown="return searchBox.OnSearchSelectKey(event)">
55</div>
56
57<!-- iframe showing the search results (closed by default) -->
58<div id="MSearchResultsWindow">
59<iframe src="javascript:void(0)" frameborder="0"
60        name="MSearchResults" id="MSearchResults">
61</iframe>
62</div>
63
64<div id="nav-path" class="navpath">
65  <ul>
66<li class="navelem"><a class="el" href="namespaceoboe.html">oboe</a></li><li class="navelem"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a></li>  </ul>
67</div>
68</div><!-- top -->
69<div class="header">
70  <div class="summary">
71<a href="#pub-methods">Public Member Functions</a> &#124;
72<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
73<a href="classoboe_1_1_audio_stream_builder-members.html">List of all members</a>  </div>
74  <div class="headertitle">
75<div class="title">oboe::AudioStreamBuilder Class Reference</div>  </div>
76</div><!--header-->
77<div class="contents">
78
79<p><code>#include &lt;<a class="el" href="_audio_stream_builder_8h_source.html">AudioStreamBuilder.h</a>&gt;</code></p>
80<div class="dynheader">
81Inheritance diagram for oboe::AudioStreamBuilder:</div>
82<div class="dyncontent">
83 <div class="center">
84  <img src="classoboe_1_1_audio_stream_builder.png" usemap="#oboe::AudioStreamBuilder_map" alt=""/>
85  <map id="oboe::AudioStreamBuilder_map" name="oboe::AudioStreamBuilder_map">
86<area href="classoboe_1_1_audio_stream_base.html" alt="oboe::AudioStreamBase" shape="rect" coords="0,0,158,24"/>
87  </map>
88</div></div>
89<table class="memberdecls">
90<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
91Public Member Functions</h2></td></tr>
92<tr class="memitem:a8f2cc75bfce8d839bf72ca8fb4a0793a"><td class="memItemLeft" align="right" valign="top"><a id="a8f2cc75bfce8d839bf72ca8fb4a0793a"></a>
93&#160;</td><td class="memItemRight" valign="bottom"><b>AudioStreamBuilder</b> (const <a class="el" href="classoboe_1_1_audio_stream_base.html">AudioStreamBase</a> &amp;audioStreamBase)</td></tr>
94<tr class="separator:a8f2cc75bfce8d839bf72ca8fb4a0793a"><td class="memSeparator" colspan="2">&#160;</td></tr>
95<tr class="memitem:a075d10291e1f998d90c2f73ef767b5a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a075d10291e1f998d90c2f73ef767b5a7">setChannelCount</a> (int channelCount)</td></tr>
96<tr class="separator:a075d10291e1f998d90c2f73ef767b5a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
97<tr class="memitem:ab3fbd47b06197619c26393637e26354c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#ab3fbd47b06197619c26393637e26354c">setDirection</a> (<a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">Direction</a> direction)</td></tr>
98<tr class="separator:ab3fbd47b06197619c26393637e26354c"><td class="memSeparator" colspan="2">&#160;</td></tr>
99<tr class="memitem:a30ef3d5f51d56a9f980dc09600ed139d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a30ef3d5f51d56a9f980dc09600ed139d">setSampleRate</a> (int32_t sampleRate)</td></tr>
100<tr class="separator:a30ef3d5f51d56a9f980dc09600ed139d"><td class="memSeparator" colspan="2">&#160;</td></tr>
101<tr class="memitem:a3f397821f61eabaeedaf31064c859a54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a3f397821f61eabaeedaf31064c859a54">setFramesPerCallback</a> (int framesPerCallback)</td></tr>
102<tr class="separator:a3f397821f61eabaeedaf31064c859a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
103<tr class="memitem:afb8e95e80df7edd1af27af490438785e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#afb8e95e80df7edd1af27af490438785e">setFramesPerDataCallback</a> (int framesPerCallback)</td></tr>
104<tr class="separator:afb8e95e80df7edd1af27af490438785e"><td class="memSeparator" colspan="2">&#160;</td></tr>
105<tr class="memitem:aa2e1d2d73cd6c2eb9f349bf2fe5f6515"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#aa2e1d2d73cd6c2eb9f349bf2fe5f6515">setFormat</a> (<a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a> format)</td></tr>
106<tr class="separator:aa2e1d2d73cd6c2eb9f349bf2fe5f6515"><td class="memSeparator" colspan="2">&#160;</td></tr>
107<tr class="memitem:abaff480867af51ca0899bfa6fd7cc3ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#abaff480867af51ca0899bfa6fd7cc3ef">setBufferCapacityInFrames</a> (int32_t bufferCapacityInFrames)</td></tr>
108<tr class="separator:abaff480867af51ca0899bfa6fd7cc3ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
109<tr class="memitem:ac9d41811c297fd28bc61833f640bb8d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">AudioApi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#ac9d41811c297fd28bc61833f640bb8d0">getAudioApi</a> () const</td></tr>
110<tr class="separator:ac9d41811c297fd28bc61833f640bb8d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
111<tr class="memitem:a38c6d6c5e718df1e3ac69daaac47c391"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a38c6d6c5e718df1e3ac69daaac47c391">setAudioApi</a> (<a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">AudioApi</a> audioApi)</td></tr>
112<tr class="separator:a38c6d6c5e718df1e3ac69daaac47c391"><td class="memSeparator" colspan="2">&#160;</td></tr>
113<tr class="memitem:a3e991742acbbfb6fe5ebcf592c478654"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a3e991742acbbfb6fe5ebcf592c478654">setSharingMode</a> (<a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">SharingMode</a> sharingMode)</td></tr>
114<tr class="separator:a3e991742acbbfb6fe5ebcf592c478654"><td class="memSeparator" colspan="2">&#160;</td></tr>
115<tr class="memitem:a6cd1d65612e844e59da71a68ea0ab3ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a6cd1d65612e844e59da71a68ea0ab3ee">setPerformanceMode</a> (<a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">PerformanceMode</a> performanceMode)</td></tr>
116<tr class="separator:a6cd1d65612e844e59da71a68ea0ab3ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
117<tr class="memitem:a593255a2f5eb972665775cfc5bc58f6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a593255a2f5eb972665775cfc5bc58f6a">setUsage</a> (<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">Usage</a> usage)</td></tr>
118<tr class="separator:a593255a2f5eb972665775cfc5bc58f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
119<tr class="memitem:a6a17bafc217c2b624179fbbf77fe4468"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a6a17bafc217c2b624179fbbf77fe4468">setContentType</a> (<a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">ContentType</a> contentType)</td></tr>
120<tr class="separator:a6a17bafc217c2b624179fbbf77fe4468"><td class="memSeparator" colspan="2">&#160;</td></tr>
121<tr class="memitem:a144a3d095fd668210282f1a91f23e1f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a144a3d095fd668210282f1a91f23e1f0">setInputPreset</a> (<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">InputPreset</a> inputPreset)</td></tr>
122<tr class="separator:a144a3d095fd668210282f1a91f23e1f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
123<tr class="memitem:a54c1651bdbe089d0d714af499e8a5f1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a54c1651bdbe089d0d714af499e8a5f1d">setSessionId</a> (<a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">SessionId</a> sessionId)</td></tr>
124<tr class="separator:a54c1651bdbe089d0d714af499e8a5f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
125<tr class="memitem:af36ddcd00686a9e1de661bdac0685a8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#af36ddcd00686a9e1de661bdac0685a8e">setDeviceId</a> (int32_t deviceId)</td></tr>
126<tr class="separator:af36ddcd00686a9e1de661bdac0685a8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
127<tr class="memitem:acad307720e0f370267b4e2f9a626ae70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#acad307720e0f370267b4e2f9a626ae70">setDataCallback</a> (<a class="el" href="classoboe_1_1_audio_stream_data_callback.html">oboe::AudioStreamDataCallback</a> *dataCallback)</td></tr>
128<tr class="separator:acad307720e0f370267b4e2f9a626ae70"><td class="memSeparator" colspan="2">&#160;</td></tr>
129<tr class="memitem:aacb66f530bfc6f545911b5e169774567"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#aacb66f530bfc6f545911b5e169774567">setErrorCallback</a> (<a class="el" href="classoboe_1_1_audio_stream_error_callback.html">oboe::AudioStreamErrorCallback</a> *errorCallback)</td></tr>
130<tr class="separator:aacb66f530bfc6f545911b5e169774567"><td class="memSeparator" colspan="2">&#160;</td></tr>
131<tr class="memitem:a698cefa9af73bc97c020c004821fccbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a698cefa9af73bc97c020c004821fccbd">setCallback</a> (<a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a> *streamCallback)</td></tr>
132<tr class="separator:a698cefa9af73bc97c020c004821fccbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
133<tr class="memitem:ad50f5d20cdf420d982bf499790cd3563"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#ad50f5d20cdf420d982bf499790cd3563">setChannelConversionAllowed</a> (bool allowed)</td></tr>
134<tr class="separator:ad50f5d20cdf420d982bf499790cd3563"><td class="memSeparator" colspan="2">&#160;</td></tr>
135<tr class="memitem:a7ec5f427cd6fe55cb1ce536ff0cbb4d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a7ec5f427cd6fe55cb1ce536ff0cbb4d2">setFormatConversionAllowed</a> (bool allowed)</td></tr>
136<tr class="separator:a7ec5f427cd6fe55cb1ce536ff0cbb4d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:af7d24a9ec975d430732151e5ee0d1027"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#af7d24a9ec975d430732151e5ee0d1027">setSampleRateConversionQuality</a> (<a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">SampleRateConversionQuality</a> quality)</td></tr>
138<tr class="separator:af7d24a9ec975d430732151e5ee0d1027"><td class="memSeparator" colspan="2">&#160;</td></tr>
139<tr class="memitem:aa07ea100fcb107d9f7913f206c2214f4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#aa07ea100fcb107d9f7913f206c2214f4">willUseAAudio</a> () const</td></tr>
140<tr class="separator:aa07ea100fcb107d9f7913f206c2214f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:a86b94cfa47729bef2e04dce1a9086074"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a86b94cfa47729bef2e04dce1a9086074">openStream</a> (<a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a> **stream)</td></tr>
142<tr class="separator:a86b94cfa47729bef2e04dce1a9086074"><td class="memSeparator" colspan="2">&#160;</td></tr>
143<tr class="memitem:a44b68216c48f8fb08a9e63178e0b0eeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a44b68216c48f8fb08a9e63178e0b0eeb">openStream</a> (std::shared_ptr&lt; <a class="el" href="classoboe_1_1_audio_stream.html">oboe::AudioStream</a> &gt; &amp;stream)</td></tr>
144<tr class="separator:a44b68216c48f8fb08a9e63178e0b0eeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
145<tr class="memitem:a7ab172a9be4fca2489aa5cbcc48c20ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a7ab172a9be4fca2489aa5cbcc48c20ff">openManagedStream</a> (ManagedStream &amp;stream)</td></tr>
146<tr class="separator:a7ab172a9be4fca2489aa5cbcc48c20ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="inherit_header pub_methods_classoboe_1_1_audio_stream_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classoboe_1_1_audio_stream_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classoboe_1_1_audio_stream_base.html">oboe::AudioStreamBase</a></td></tr>
148<tr class="memitem:aa6b103e1b0f808bbc4949d56f0829f98 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#aa6b103e1b0f808bbc4949d56f0829f98">AudioStreamBase</a> (const <a class="el" href="classoboe_1_1_audio_stream_base.html">AudioStreamBase</a> &amp;)=default</td></tr>
149<tr class="separator:aa6b103e1b0f808bbc4949d56f0829f98 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
150<tr class="memitem:aa9c987a59555d7a60b9f7a63f4afc7fc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_base.html">AudioStreamBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#aa9c987a59555d7a60b9f7a63f4afc7fc">operator=</a> (const <a class="el" href="classoboe_1_1_audio_stream_base.html">AudioStreamBase</a> &amp;)=default</td></tr>
151<tr class="separator:aa9c987a59555d7a60b9f7a63f4afc7fc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
152<tr class="memitem:a87e6bf37d6a2a5e983b8ca8d29aea575 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a87e6bf37d6a2a5e983b8ca8d29aea575">getChannelCount</a> () const</td></tr>
153<tr class="separator:a87e6bf37d6a2a5e983b8ca8d29aea575 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
154<tr class="memitem:a6f86f2233a04c5a0b056f0c1c261f1b1 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a6f86f2233a04c5a0b056f0c1c261f1b1">getDirection</a> () const</td></tr>
155<tr class="separator:a6f86f2233a04c5a0b056f0c1c261f1b1 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
156<tr class="memitem:ae9d32f3e09174bad69e74f147ee33087 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ae9d32f3e09174bad69e74f147ee33087">getSampleRate</a> () const</td></tr>
157<tr class="separator:ae9d32f3e09174bad69e74f147ee33087 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
158<tr class="memitem:a8878a90949badbb5486cc2e022a57086 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a8878a90949badbb5486cc2e022a57086">getFramesPerCallback</a> () const</td></tr>
159<tr class="separator:a8878a90949badbb5486cc2e022a57086 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
160<tr class="memitem:abc3ee2815568b425d15a40e132aa8e38 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#abc3ee2815568b425d15a40e132aa8e38">getFramesPerDataCallback</a> () const</td></tr>
161<tr class="separator:abc3ee2815568b425d15a40e132aa8e38 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
162<tr class="memitem:ab1e640461d7bf9d596decb913da7ac86 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ab1e640461d7bf9d596decb913da7ac86">getFormat</a> () const</td></tr>
163<tr class="separator:ab1e640461d7bf9d596decb913da7ac86 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
164<tr class="memitem:af5217ab05bfde0d7637024b599302d0b inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">virtual int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#af5217ab05bfde0d7637024b599302d0b">getBufferSizeInFrames</a> ()</td></tr>
165<tr class="separator:af5217ab05bfde0d7637024b599302d0b inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
166<tr class="memitem:ab1531253e64aaebe9e9eddbafb9098fc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">virtual int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ab1531253e64aaebe9e9eddbafb9098fc">getBufferCapacityInFrames</a> () const</td></tr>
167<tr class="separator:ab1531253e64aaebe9e9eddbafb9098fc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
168<tr class="memitem:a1fb033fc963f971bd1aa8f6707e49b41 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">SharingMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a1fb033fc963f971bd1aa8f6707e49b41">getSharingMode</a> () const</td></tr>
169<tr class="separator:a1fb033fc963f971bd1aa8f6707e49b41 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
170<tr class="memitem:a2ddb935de0e24dd7ae8e2cfbecac9fdc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">PerformanceMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a2ddb935de0e24dd7ae8e2cfbecac9fdc">getPerformanceMode</a> () const</td></tr>
171<tr class="separator:a2ddb935de0e24dd7ae8e2cfbecac9fdc inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
172<tr class="memitem:a093057d625bc896864b959974c265f21 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a093057d625bc896864b959974c265f21">getDeviceId</a> () const</td></tr>
173<tr class="separator:a093057d625bc896864b959974c265f21 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
174<tr class="memitem:a9fb2f34ae62dbda2c10e8513b754fa0c inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_data_callback.html">AudioStreamDataCallback</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a9fb2f34ae62dbda2c10e8513b754fa0c">getDataCallback</a> () const</td></tr>
175<tr class="separator:a9fb2f34ae62dbda2c10e8513b754fa0c inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
176<tr class="memitem:a1328fb9288166ff325995ce1ea1867f0 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_error_callback.html">AudioStreamErrorCallback</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a1328fb9288166ff325995ce1ea1867f0">getErrorCallback</a> () const</td></tr>
177<tr class="separator:a1328fb9288166ff325995ce1ea1867f0 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
178<tr class="memitem:a9a54d38b985a2eb12c6972104dc0ce73 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a9a54d38b985a2eb12c6972104dc0ce73">isDataCallbackSpecified</a> () const</td></tr>
179<tr class="separator:a9a54d38b985a2eb12c6972104dc0ce73 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
180<tr class="memitem:aef579f6d1f779c89d051f0963f2976b3 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#aef579f6d1f779c89d051f0963f2976b3">isErrorCallbackSpecified</a> () const</td></tr>
181<tr class="separator:aef579f6d1f779c89d051f0963f2976b3 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
182<tr class="memitem:a0bcfb2f8bd11c92b541fd910da9af397 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">Usage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a0bcfb2f8bd11c92b541fd910da9af397">getUsage</a> () const</td></tr>
183<tr class="separator:a0bcfb2f8bd11c92b541fd910da9af397 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
184<tr class="memitem:ab12e2d068fa87e0553b01a400d96eb82 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">ContentType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ab12e2d068fa87e0553b01a400d96eb82">getContentType</a> () const</td></tr>
185<tr class="separator:ab12e2d068fa87e0553b01a400d96eb82 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
186<tr class="memitem:a5c773b93b8aa38191c7199cab023428a inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">InputPreset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a5c773b93b8aa38191c7199cab023428a">getInputPreset</a> () const</td></tr>
187<tr class="separator:a5c773b93b8aa38191c7199cab023428a inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
188<tr class="memitem:aa3c502ce09bbad7690a2dd6acaf8892e inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">SessionId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#aa3c502ce09bbad7690a2dd6acaf8892e">getSessionId</a> () const</td></tr>
189<tr class="separator:aa3c502ce09bbad7690a2dd6acaf8892e inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
190<tr class="memitem:aa4ec3aa76e69350fbce6f00786211495 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#aa4ec3aa76e69350fbce6f00786211495">isChannelConversionAllowed</a> () const</td></tr>
191<tr class="separator:aa4ec3aa76e69350fbce6f00786211495 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
192<tr class="memitem:ace3625a7332bf02a86818fdf63fcccb4 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ace3625a7332bf02a86818fdf63fcccb4">isFormatConversionAllowed</a> () const</td></tr>
193<tr class="separator:ace3625a7332bf02a86818fdf63fcccb4 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
194<tr class="memitem:a1de8d6982d411a0cf50a32efba0ca3f2 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">SampleRateConversionQuality</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a1de8d6982d411a0cf50a32efba0ca3f2">getSampleRateConversionQuality</a> () const</td></tr>
195<tr class="separator:a1de8d6982d411a0cf50a32efba0ca3f2 inherit pub_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
196</table><table class="memberdecls">
197<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
198Static Public Member Functions</h2></td></tr>
199<tr class="memitem:a18e7b5f7554a4c2ca763e35e8117d699"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a18e7b5f7554a4c2ca763e35e8117d699">isAAudioSupported</a> ()</td></tr>
200<tr class="separator:a18e7b5f7554a4c2ca763e35e8117d699"><td class="memSeparator" colspan="2">&#160;</td></tr>
201<tr class="memitem:a622732bbe5c6577356d749f7dc2108df"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html#a622732bbe5c6577356d749f7dc2108df">isAAudioRecommended</a> ()</td></tr>
202<tr class="separator:a622732bbe5c6577356d749f7dc2108df"><td class="memSeparator" colspan="2">&#160;</td></tr>
203</table><table class="memberdecls">
204<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
205Additional Inherited Members</h2></td></tr>
206<tr class="inherit_header pro_methods_classoboe_1_1_audio_stream_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classoboe_1_1_audio_stream_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classoboe_1_1_audio_stream_base.html">oboe::AudioStreamBase</a></td></tr>
207<tr class="memitem:a5d5e07e98921d0193a5c0ccbe06f68c2 inherit pro_methods_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a5d5e07e98921d0193a5c0ccbe06f68c2">isValidConfig</a> ()</td></tr>
208<tr class="separator:a5d5e07e98921d0193a5c0ccbe06f68c2 inherit pro_methods_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
209<tr class="inherit_header pro_attribs_classoboe_1_1_audio_stream_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classoboe_1_1_audio_stream_base')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classoboe_1_1_audio_stream_base.html">oboe::AudioStreamBase</a></td></tr>
210<tr class="memitem:a6d8493f66a945cb426506c70f0358e5f inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_data_callback.html">AudioStreamDataCallback</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a6d8493f66a945cb426506c70f0358e5f">mDataCallback</a> = nullptr</td></tr>
211<tr class="separator:a6d8493f66a945cb426506c70f0358e5f inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
212<tr class="memitem:adc0c8cc54adb6d3350c62b8a74b9c57b inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classoboe_1_1_audio_stream_error_callback.html">AudioStreamErrorCallback</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#adc0c8cc54adb6d3350c62b8a74b9c57b">mErrorCallback</a> = nullptr</td></tr>
213<tr class="separator:adc0c8cc54adb6d3350c62b8a74b9c57b inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
214<tr class="memitem:a3962eb94420ad0ecea70029236001899 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a3962eb94420ad0ecea70029236001899">mFramesPerCallback</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
215<tr class="separator:a3962eb94420ad0ecea70029236001899 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:a5ff460bac9d14dfeac4eeddfcbb6e206 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a5ff460bac9d14dfeac4eeddfcbb6e206">mChannelCount</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
217<tr class="separator:a5ff460bac9d14dfeac4eeddfcbb6e206 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
218<tr class="memitem:a998885bb6c4f37e145f4626ad4177dea inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a998885bb6c4f37e145f4626ad4177dea">mSampleRate</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
219<tr class="separator:a998885bb6c4f37e145f4626ad4177dea inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
220<tr class="memitem:a23dafa12fb1a6242b088ebd5a52798c8 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a23dafa12fb1a6242b088ebd5a52798c8">mDeviceId</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
221<tr class="separator:a23dafa12fb1a6242b088ebd5a52798c8 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
222<tr class="memitem:ac81d4719b350f8138aad1af38f0873b6 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ac81d4719b350f8138aad1af38f0873b6">mBufferCapacityInFrames</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
223<tr class="separator:ac81d4719b350f8138aad1af38f0873b6 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
224<tr class="memitem:a3b65595d26d1eae1b8ce9925a5b98f6a inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a3b65595d26d1eae1b8ce9925a5b98f6a">mBufferSizeInFrames</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
225<tr class="separator:a3b65595d26d1eae1b8ce9925a5b98f6a inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
226<tr class="memitem:a54061319ed348329a29d883a5de2482e inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a54061319ed348329a29d883a5de2482e">mFramesPerBurst</a> = <a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a></td></tr>
227<tr class="separator:a54061319ed348329a29d883a5de2482e inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
228<tr class="memitem:ae9187492b679c97a0963e264954be473 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">SharingMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ae9187492b679c97a0963e264954be473">mSharingMode</a> = <a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520aa6156ea9d66fef24e87e841fbabf7cca">SharingMode::Shared</a></td></tr>
229<tr class="separator:ae9187492b679c97a0963e264954be473 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
230<tr class="memitem:a7869f04836c2c2bdc10c7309ad4b8e09 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a7869f04836c2c2bdc10c7309ad4b8e09">mFormat</a> = AudioFormat::Unspecified</td></tr>
231<tr class="separator:a7869f04836c2c2bdc10c7309ad4b8e09 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
232<tr class="memitem:a26e9294721561d3b16bcaeec5faf4880 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">Direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a26e9294721561d3b16bcaeec5faf4880">mDirection</a> = <a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea29c2c02a361c9d7028472e5d92cd4a54">Direction::Output</a></td></tr>
233<tr class="separator:a26e9294721561d3b16bcaeec5faf4880 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
234<tr class="memitem:ab99671c2d0552557e75dc7b4afe91765 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">PerformanceMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#ab99671c2d0552557e75dc7b4afe91765">mPerformanceMode</a> = PerformanceMode::None</td></tr>
235<tr class="separator:ab99671c2d0552557e75dc7b4afe91765 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
236<tr class="memitem:a5b518e82f39c9fcbd7050fd66adb253c inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">Usage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a5b518e82f39c9fcbd7050fd66adb253c">mUsage</a> = <a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a3b563524fdb17b4a86590470d40bef74">Usage::Media</a></td></tr>
237<tr class="separator:a5b518e82f39c9fcbd7050fd66adb253c inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
238<tr class="memitem:a5f8f0e5add381b841856de80ea4cdb2b inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">ContentType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a5f8f0e5add381b841856de80ea4cdb2b">mContentType</a> = ContentType::Music</td></tr>
239<tr class="separator:a5f8f0e5add381b841856de80ea4cdb2b inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<tr class="memitem:a1e5d4f5b30c4cc36f81ffd858cc00589 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">InputPreset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#a1e5d4f5b30c4cc36f81ffd858cc00589">mInputPreset</a> = InputPreset::VoiceRecognition</td></tr>
241<tr class="separator:a1e5d4f5b30c4cc36f81ffd858cc00589 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
242<tr class="memitem:abe1c1e9cada1ced9b5c1504ac9b07737 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">SessionId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html#abe1c1e9cada1ced9b5c1504ac9b07737">mSessionId</a> = SessionId::None</td></tr>
243<tr class="separator:abe1c1e9cada1ced9b5c1504ac9b07737 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
244<tr class="memitem:ae47a39b573250751f933dd159d09bf0f inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a id="ae47a39b573250751f933dd159d09bf0f"></a>
245bool&#160;</td><td class="memItemRight" valign="bottom"><b>mChannelConversionAllowed</b> = false</td></tr>
246<tr class="separator:ae47a39b573250751f933dd159d09bf0f inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
247<tr class="memitem:a9394a88eb5f8b74fa72eabf28f403f87 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a id="a9394a88eb5f8b74fa72eabf28f403f87"></a>
248bool&#160;</td><td class="memItemRight" valign="bottom"><b>mFormatConversionAllowed</b> = false</td></tr>
249<tr class="separator:a9394a88eb5f8b74fa72eabf28f403f87 inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
250<tr class="memitem:a2dd35a6f009f36172838260144218f6d inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memItemLeft" align="right" valign="top"><a id="a2dd35a6f009f36172838260144218f6d"></a>
251<a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">SampleRateConversionQuality</a>&#160;</td><td class="memItemRight" valign="bottom"><b>mSampleRateConversionQuality</b> = SampleRateConversionQuality::None</td></tr>
252<tr class="separator:a2dd35a6f009f36172838260144218f6d inherit pro_attribs_classoboe_1_1_audio_stream_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
253</table>
254<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
255<div class="textblock"><p>Factory class for an audio Stream. </p>
256</div><h2 class="groupheader">Member Function Documentation</h2>
257<a id="ac9d41811c297fd28bc61833f640bb8d0"></a>
258<h2 class="memtitle"><span class="permalink"><a href="#ac9d41811c297fd28bc61833f640bb8d0">&#9670;&nbsp;</a></span>getAudioApi()</h2>
259
260<div class="memitem">
261<div class="memproto">
262<table class="mlabels">
263  <tr>
264  <td class="mlabels-left">
265      <table class="memname">
266        <tr>
267          <td class="memname"><a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">AudioApi</a> oboe::AudioStreamBuilder::getAudioApi </td>
268          <td>(</td>
269          <td class="paramname"></td><td>)</td>
270          <td> const</td>
271        </tr>
272      </table>
273  </td>
274  <td class="mlabels-right">
275<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
276  </tr>
277</table>
278</div><div class="memdoc">
279<p>Get the audio API which will be requested when opening the stream. No guarantees that this is the API which will actually be used. Query the stream itself to find out the API which is being used.</p>
280<p>If you do not specify the API, then AAudio will be used if <a class="el" href="classoboe_1_1_audio_stream_builder.html#a622732bbe5c6577356d749f7dc2108df">isAAudioRecommended()</a> returns true. Otherwise OpenSL ES will be used.</p>
281<dl class="section return"><dt>Returns</dt><dd>the requested audio API </dd></dl>
282
283</div>
284</div>
285<a id="a622732bbe5c6577356d749f7dc2108df"></a>
286<h2 class="memtitle"><span class="permalink"><a href="#a622732bbe5c6577356d749f7dc2108df">&#9670;&nbsp;</a></span>isAAudioRecommended()</h2>
287
288<div class="memitem">
289<div class="memproto">
290<table class="mlabels">
291  <tr>
292  <td class="mlabels-left">
293      <table class="memname">
294        <tr>
295          <td class="memname">static bool oboe::AudioStreamBuilder::isAAudioRecommended </td>
296          <td>(</td>
297          <td class="paramname"></td><td>)</td>
298          <td></td>
299        </tr>
300      </table>
301  </td>
302  <td class="mlabels-right">
303<span class="mlabels"><span class="mlabel">static</span></span>  </td>
304  </tr>
305</table>
306</div><div class="memdoc">
307<p>Is the AAudio API recommended this device?</p>
308<p>AAudio may be supported but not recommended because of version specific issues. AAudio is not recommended for Android 8.0 or earlier versions.</p>
309<dl class="section return"><dt>Returns</dt><dd>true if recommended </dd></dl>
310
311</div>
312</div>
313<a id="a18e7b5f7554a4c2ca763e35e8117d699"></a>
314<h2 class="memtitle"><span class="permalink"><a href="#a18e7b5f7554a4c2ca763e35e8117d699">&#9670;&nbsp;</a></span>isAAudioSupported()</h2>
315
316<div class="memitem">
317<div class="memproto">
318<table class="mlabels">
319  <tr>
320  <td class="mlabels-left">
321      <table class="memname">
322        <tr>
323          <td class="memname">static bool oboe::AudioStreamBuilder::isAAudioSupported </td>
324          <td>(</td>
325          <td class="paramname"></td><td>)</td>
326          <td></td>
327        </tr>
328      </table>
329  </td>
330  <td class="mlabels-right">
331<span class="mlabels"><span class="mlabel">static</span></span>  </td>
332  </tr>
333</table>
334</div><div class="memdoc">
335<p>Is the AAudio API supported on this device?</p>
336<p>AAudio was introduced in the Oreo 8.0 release.</p>
337<dl class="section return"><dt>Returns</dt><dd>true if supported </dd></dl>
338
339</div>
340</div>
341<a id="a7ab172a9be4fca2489aa5cbcc48c20ff"></a>
342<h2 class="memtitle"><span class="permalink"><a href="#a7ab172a9be4fca2489aa5cbcc48c20ff">&#9670;&nbsp;</a></span>openManagedStream()</h2>
343
344<div class="memitem">
345<div class="memproto">
346      <table class="memname">
347        <tr>
348          <td class="memname"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a> oboe::AudioStreamBuilder::openManagedStream </td>
349          <td>(</td>
350          <td class="paramtype">ManagedStream &amp;&#160;</td>
351          <td class="paramname"><em>stream</em></td><td>)</td>
352          <td></td>
353        </tr>
354      </table>
355</div><div class="memdoc">
356<p>Create and open a ManagedStream object based on the current builder state.</p>
357<p>The caller must create a unique ptr, and pass by reference so it can be modified to point to an opened stream. The caller owns the unique ptr, and it will be automatically closed and deleted when going out of scope. </p><dl class="params"><dt>Parameters</dt><dd>
358  <table class="params">
359    <tr><td class="paramname">stream</td><td>Reference to the ManagedStream (uniqueptr) used to keep track of stream </td></tr>
360  </table>
361  </dd>
362</dl>
363<dl class="section return"><dt>Returns</dt><dd>OBOE_OK if successful or a negative error code. </dd></dl>
364
365</div>
366</div>
367<a id="a86b94cfa47729bef2e04dce1a9086074"></a>
368<h2 class="memtitle"><span class="permalink"><a href="#a86b94cfa47729bef2e04dce1a9086074">&#9670;&nbsp;</a></span>openStream() <span class="overload">[1/2]</span></h2>
369
370<div class="memitem">
371<div class="memproto">
372      <table class="memname">
373        <tr>
374          <td class="memname"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a> oboe::AudioStreamBuilder::openStream </td>
375          <td>(</td>
376          <td class="paramtype"><a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a> **&#160;</td>
377          <td class="paramname"><em>stream</em></td><td>)</td>
378          <td></td>
379        </tr>
380      </table>
381</div><div class="memdoc">
382<p>Create and open a stream object based on the current settings.</p>
383<p>The caller owns the pointer to the <a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a> object.</p>
384<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Use <a class="el" href="classoboe_1_1_audio_stream_builder.html#a44b68216c48f8fb08a9e63178e0b0eeb">openStream(std::shared_ptr&lt;oboe::AudioStream&gt; &amp;stream)</a> instead. </dd></dl>
385<dl class="params"><dt>Parameters</dt><dd>
386  <table class="params">
387    <tr><td class="paramname">stream</td><td>pointer to a variable to receive the stream address </td></tr>
388  </table>
389  </dd>
390</dl>
391<dl class="section return"><dt>Returns</dt><dd>OBOE_OK if successful or a negative error code </dd></dl>
392
393</div>
394</div>
395<a id="a44b68216c48f8fb08a9e63178e0b0eeb"></a>
396<h2 class="memtitle"><span class="permalink"><a href="#a44b68216c48f8fb08a9e63178e0b0eeb">&#9670;&nbsp;</a></span>openStream() <span class="overload">[2/2]</span></h2>
397
398<div class="memitem">
399<div class="memproto">
400      <table class="memname">
401        <tr>
402          <td class="memname"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a> oboe::AudioStreamBuilder::openStream </td>
403          <td>(</td>
404          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classoboe_1_1_audio_stream.html">oboe::AudioStream</a> &gt; &amp;&#160;</td>
405          <td class="paramname"><em>stream</em></td><td>)</td>
406          <td></td>
407        </tr>
408      </table>
409</div><div class="memdoc">
410<p>Create and open a stream object based on the current settings.</p>
411<p>The caller shares the pointer to the <a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a> object. The shared_ptr is used internally by Oboe to prevent the stream from being deleted while it is being used by callbacks.</p>
412<dl class="params"><dt>Parameters</dt><dd>
413  <table class="params">
414    <tr><td class="paramname">stream</td><td>reference to a shared_ptr to receive the stream address </td></tr>
415  </table>
416  </dd>
417</dl>
418<dl class="section return"><dt>Returns</dt><dd>OBOE_OK if successful or a negative error code </dd></dl>
419
420</div>
421</div>
422<a id="a38c6d6c5e718df1e3ac69daaac47c391"></a>
423<h2 class="memtitle"><span class="permalink"><a href="#a38c6d6c5e718df1e3ac69daaac47c391">&#9670;&nbsp;</a></span>setAudioApi()</h2>
424
425<div class="memitem">
426<div class="memproto">
427<table class="mlabels">
428  <tr>
429  <td class="mlabels-left">
430      <table class="memname">
431        <tr>
432          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setAudioApi </td>
433          <td>(</td>
434          <td class="paramtype"><a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">AudioApi</a>&#160;</td>
435          <td class="paramname"><em>audioApi</em></td><td>)</td>
436          <td></td>
437        </tr>
438      </table>
439  </td>
440  <td class="mlabels-right">
441<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
442  </tr>
443</table>
444</div><div class="memdoc">
445<p>If you leave this unspecified then Oboe will choose the best API for the device and SDK version at runtime.</p>
446<p>This should almost always be left unspecified, except for debugging purposes. Specifying AAudio will force Oboe to use AAudio on 8.0, which is extremely risky. Specifying OpenSLES should mainly be used to test legacy performance/functionality.</p>
447<p>If the caller requests AAudio and it is supported then AAudio will be used.</p>
448<dl class="params"><dt>Parameters</dt><dd>
449  <table class="params">
450    <tr><td class="paramname">audioApi</td><td>Must be AudioApi::Unspecified, <a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b">AudioApi::OpenSLES</a> or <a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6a99780b1e8d754eb42abed0ca5253e55b">AudioApi::AAudio</a>. </td></tr>
451  </table>
452  </dd>
453</dl>
454<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
455
456</div>
457</div>
458<a id="abaff480867af51ca0899bfa6fd7cc3ef"></a>
459<h2 class="memtitle"><span class="permalink"><a href="#abaff480867af51ca0899bfa6fd7cc3ef">&#9670;&nbsp;</a></span>setBufferCapacityInFrames()</h2>
460
461<div class="memitem">
462<div class="memproto">
463<table class="mlabels">
464  <tr>
465  <td class="mlabels-left">
466      <table class="memname">
467        <tr>
468          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setBufferCapacityInFrames </td>
469          <td>(</td>
470          <td class="paramtype">int32_t&#160;</td>
471          <td class="paramname"><em>bufferCapacityInFrames</em></td><td>)</td>
472          <td></td>
473        </tr>
474      </table>
475  </td>
476  <td class="mlabels-right">
477<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
478  </tr>
479</table>
480</div><div class="memdoc">
481<p>Set the requested buffer capacity in frames. BufferCapacityInFrames is the maximum possible BufferSizeInFrames.</p>
482<p>The final stream capacity may differ. For AAudio it should be at least this big. For OpenSL ES, it could be smaller.</p>
483<p>Default is kUnspecified.</p>
484<dl class="params"><dt>Parameters</dt><dd>
485  <table class="params">
486    <tr><td class="paramname">bufferCapacityInFrames</td><td>the desired buffer capacity in frames or kUnspecified </td></tr>
487  </table>
488  </dd>
489</dl>
490<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
491
492</div>
493</div>
494<a id="a698cefa9af73bc97c020c004821fccbd"></a>
495<h2 class="memtitle"><span class="permalink"><a href="#a698cefa9af73bc97c020c004821fccbd">&#9670;&nbsp;</a></span>setCallback()</h2>
496
497<div class="memitem">
498<div class="memproto">
499<table class="mlabels">
500  <tr>
501  <td class="mlabels-left">
502      <table class="memname">
503        <tr>
504          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setCallback </td>
505          <td>(</td>
506          <td class="paramtype"><a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a> *&#160;</td>
507          <td class="paramname"><em>streamCallback</em></td><td>)</td>
508          <td></td>
509        </tr>
510      </table>
511  </td>
512  <td class="mlabels-right">
513<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
514  </tr>
515</table>
516</div><div class="memdoc">
517<p>Specifies an object to handle data or error related callbacks from the underlying API.</p>
518<p>This is the equivalent of calling both <a class="el" href="classoboe_1_1_audio_stream_builder.html#acad307720e0f370267b4e2f9a626ae70">setDataCallback()</a> and <a class="el" href="classoboe_1_1_audio_stream_builder.html#aacb66f530bfc6f545911b5e169774567">setErrorCallback()</a>.</p>
519<p><b>Important: See <a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a> for restrictions on what may be called from the callback methods.</b></p>
520<p>When an error callback occurs, the associated stream will be stopped and closed in a separate thread.</p>
521<p>A note on why the streamCallback parameter is a raw pointer rather than a smart pointer:</p>
522<p>The caller should retain ownership of the object streamCallback points to. At first glance weak_ptr may seem like a good candidate for streamCallback as this implies temporary ownership. However, a weak_ptr can only be created from a shared_ptr. A shared_ptr incurs some performance overhead. The callback object is likely to be accessed every few milliseconds when the stream requires new data so this overhead is something we want to avoid.</p>
523<p>This leaves a raw pointer as the logical type choice. The only caveat being that the caller must not destroy the callback before the stream has been closed.</p>
524<dl class="params"><dt>Parameters</dt><dd>
525  <table class="params">
526    <tr><td class="paramname">streamCallback</td><td></td></tr>
527  </table>
528  </dd>
529</dl>
530<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
531
532</div>
533</div>
534<a id="ad50f5d20cdf420d982bf499790cd3563"></a>
535<h2 class="memtitle"><span class="permalink"><a href="#ad50f5d20cdf420d982bf499790cd3563">&#9670;&nbsp;</a></span>setChannelConversionAllowed()</h2>
536
537<div class="memitem">
538<div class="memproto">
539<table class="mlabels">
540  <tr>
541  <td class="mlabels-left">
542      <table class="memname">
543        <tr>
544          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setChannelConversionAllowed </td>
545          <td>(</td>
546          <td class="paramtype">bool&#160;</td>
547          <td class="paramname"><em>allowed</em></td><td>)</td>
548          <td></td>
549        </tr>
550      </table>
551  </td>
552  <td class="mlabels-right">
553<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
554  </tr>
555</table>
556</div><div class="memdoc">
557<p>If true then Oboe might convert channel counts to achieve optimal results. On some versions of Android for example, stereo streams could not use a FAST track. So a mono stream might be used instead and duplicated to two channels. On some devices, mono streams might be broken, so a stereo stream might be opened and converted to mono.</p>
558<p>Default is true. </p>
559
560</div>
561</div>
562<a id="a075d10291e1f998d90c2f73ef767b5a7"></a>
563<h2 class="memtitle"><span class="permalink"><a href="#a075d10291e1f998d90c2f73ef767b5a7">&#9670;&nbsp;</a></span>setChannelCount()</h2>
564
565<div class="memitem">
566<div class="memproto">
567<table class="mlabels">
568  <tr>
569  <td class="mlabels-left">
570      <table class="memname">
571        <tr>
572          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setChannelCount </td>
573          <td>(</td>
574          <td class="paramtype">int&#160;</td>
575          <td class="paramname"><em>channelCount</em></td><td>)</td>
576          <td></td>
577        </tr>
578      </table>
579  </td>
580  <td class="mlabels-right">
581<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
582  </tr>
583</table>
584</div><div class="memdoc">
585<p>Request a specific number of channels.</p>
586<p>Default is kUnspecified. If the value is unspecified then the application should query for the actual value after the stream is opened. </p>
587
588</div>
589</div>
590<a id="a6a17bafc217c2b624179fbbf77fe4468"></a>
591<h2 class="memtitle"><span class="permalink"><a href="#a6a17bafc217c2b624179fbbf77fe4468">&#9670;&nbsp;</a></span>setContentType()</h2>
592
593<div class="memitem">
594<div class="memproto">
595<table class="mlabels">
596  <tr>
597  <td class="mlabels-left">
598      <table class="memname">
599        <tr>
600          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setContentType </td>
601          <td>(</td>
602          <td class="paramtype"><a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">ContentType</a>&#160;</td>
603          <td class="paramname"><em>contentType</em></td><td>)</td>
604          <td></td>
605        </tr>
606      </table>
607  </td>
608  <td class="mlabels-right">
609<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
610  </tr>
611</table>
612</div><div class="memdoc">
613<p>Set the type of audio data that an output stream will carry.</p>
614<p>The system will use this information to optimize the behavior of the stream. This could, for example, affect whether a stream is paused when a notification occurs. The contentType is ignored for input streams.</p>
615<p>The default, if you do not call this function, is ContentType::Music.</p>
616<p>Added in API level 28.</p>
617<dl class="params"><dt>Parameters</dt><dd>
618  <table class="params">
619    <tr><td class="paramname">contentType</td><td>the type of audio data, eg. ContentType::Speech </td></tr>
620  </table>
621  </dd>
622</dl>
623
624</div>
625</div>
626<a id="acad307720e0f370267b4e2f9a626ae70"></a>
627<h2 class="memtitle"><span class="permalink"><a href="#acad307720e0f370267b4e2f9a626ae70">&#9670;&nbsp;</a></span>setDataCallback()</h2>
628
629<div class="memitem">
630<div class="memproto">
631<table class="mlabels">
632  <tr>
633  <td class="mlabels-left">
634      <table class="memname">
635        <tr>
636          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setDataCallback </td>
637          <td>(</td>
638          <td class="paramtype"><a class="el" href="classoboe_1_1_audio_stream_data_callback.html">oboe::AudioStreamDataCallback</a> *&#160;</td>
639          <td class="paramname"><em>dataCallback</em></td><td>)</td>
640          <td></td>
641        </tr>
642      </table>
643  </td>
644  <td class="mlabels-right">
645<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
646  </tr>
647</table>
648</div><div class="memdoc">
649<p>Specifies an object to handle data related callbacks from the underlying API.</p>
650<p><b>Important: See <a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a> for restrictions on what may be called from the callback methods.</b></p>
651<dl class="params"><dt>Parameters</dt><dd>
652  <table class="params">
653    <tr><td class="paramname">dataCallback</td><td></td></tr>
654  </table>
655  </dd>
656</dl>
657<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
658
659</div>
660</div>
661<a id="af36ddcd00686a9e1de661bdac0685a8e"></a>
662<h2 class="memtitle"><span class="permalink"><a href="#af36ddcd00686a9e1de661bdac0685a8e">&#9670;&nbsp;</a></span>setDeviceId()</h2>
663
664<div class="memitem">
665<div class="memproto">
666<table class="mlabels">
667  <tr>
668  <td class="mlabels-left">
669      <table class="memname">
670        <tr>
671          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setDeviceId </td>
672          <td>(</td>
673          <td class="paramtype">int32_t&#160;</td>
674          <td class="paramname"><em>deviceId</em></td><td>)</td>
675          <td></td>
676        </tr>
677      </table>
678  </td>
679  <td class="mlabels-right">
680<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
681  </tr>
682</table>
683</div><div class="memdoc">
684<p>Request a stream to a specific audio input/output device given an audio device ID.</p>
685<p>In most cases, the primary device will be the appropriate device to use, and the deviceId can be left kUnspecified.</p>
686<p>On Android, for example, the ID could be obtained from the Java AudioManager. AudioManager.getDevices() returns an array of AudioDeviceInfo[], which contains a getId() method (as well as other type information), that should be passed to this method.</p>
687<p>Note that when using OpenSL ES, this will be ignored and the created stream will have deviceId kUnspecified.</p>
688<dl class="params"><dt>Parameters</dt><dd>
689  <table class="params">
690    <tr><td class="paramname">deviceId</td><td>device identifier or kUnspecified </td></tr>
691  </table>
692  </dd>
693</dl>
694<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
695
696</div>
697</div>
698<a id="ab3fbd47b06197619c26393637e26354c"></a>
699<h2 class="memtitle"><span class="permalink"><a href="#ab3fbd47b06197619c26393637e26354c">&#9670;&nbsp;</a></span>setDirection()</h2>
700
701<div class="memitem">
702<div class="memproto">
703<table class="mlabels">
704  <tr>
705  <td class="mlabels-left">
706      <table class="memname">
707        <tr>
708          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setDirection </td>
709          <td>(</td>
710          <td class="paramtype"><a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">Direction</a>&#160;</td>
711          <td class="paramname"><em>direction</em></td><td>)</td>
712          <td></td>
713        </tr>
714      </table>
715  </td>
716  <td class="mlabels-right">
717<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
718  </tr>
719</table>
720</div><div class="memdoc">
721<p>Request the direction for a stream. The default is <a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea29c2c02a361c9d7028472e5d92cd4a54">Direction::Output</a>.</p>
722<dl class="params"><dt>Parameters</dt><dd>
723  <table class="params">
724    <tr><td class="paramname">direction</td><td><a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea29c2c02a361c9d7028472e5d92cd4a54">Direction::Output</a> or <a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea324118a6721dd6b8a9b9f4e327df2bf5">Direction::Input</a> </td></tr>
725  </table>
726  </dd>
727</dl>
728
729</div>
730</div>
731<a id="aacb66f530bfc6f545911b5e169774567"></a>
732<h2 class="memtitle"><span class="permalink"><a href="#aacb66f530bfc6f545911b5e169774567">&#9670;&nbsp;</a></span>setErrorCallback()</h2>
733
734<div class="memitem">
735<div class="memproto">
736<table class="mlabels">
737  <tr>
738  <td class="mlabels-left">
739      <table class="memname">
740        <tr>
741          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setErrorCallback </td>
742          <td>(</td>
743          <td class="paramtype"><a class="el" href="classoboe_1_1_audio_stream_error_callback.html">oboe::AudioStreamErrorCallback</a> *&#160;</td>
744          <td class="paramname"><em>errorCallback</em></td><td>)</td>
745          <td></td>
746        </tr>
747      </table>
748  </td>
749  <td class="mlabels-right">
750<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
751  </tr>
752</table>
753</div><div class="memdoc">
754<p>Specifies an object to handle error related callbacks from the underlying API. This can occur when a stream is disconnected because a headset is plugged in or unplugged. It can also occur if the audio service fails or if an exclusive stream is stolen by another stream.</p>
755<p><b>Important: See <a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a> for restrictions on what may be called from the callback methods.</b></p>
756<p><b>When an error callback occurs, the associated stream must be stopped and closed in a separate thread.</b></p>
757<dl class="params"><dt>Parameters</dt><dd>
758  <table class="params">
759    <tr><td class="paramname">errorCallback</td><td></td></tr>
760  </table>
761  </dd>
762</dl>
763<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
764
765</div>
766</div>
767<a id="aa2e1d2d73cd6c2eb9f349bf2fe5f6515"></a>
768<h2 class="memtitle"><span class="permalink"><a href="#aa2e1d2d73cd6c2eb9f349bf2fe5f6515">&#9670;&nbsp;</a></span>setFormat()</h2>
769
770<div class="memitem">
771<div class="memproto">
772<table class="mlabels">
773  <tr>
774  <td class="mlabels-left">
775      <table class="memname">
776        <tr>
777          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setFormat </td>
778          <td>(</td>
779          <td class="paramtype"><a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a>&#160;</td>
780          <td class="paramname"><em>format</em></td><td>)</td>
781          <td></td>
782        </tr>
783      </table>
784  </td>
785  <td class="mlabels-right">
786<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
787  </tr>
788</table>
789</div><div class="memdoc">
790<p>Request a sample data format, for example <a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6a22ae0e2b89e5e3d477f988cc36d3272b">Format::Float</a>.</p>
791<p>Default is Format::Unspecified. If the value is unspecified then the application should query for the actual value after the stream is opened. </p>
792
793</div>
794</div>
795<a id="a7ec5f427cd6fe55cb1ce536ff0cbb4d2"></a>
796<h2 class="memtitle"><span class="permalink"><a href="#a7ec5f427cd6fe55cb1ce536ff0cbb4d2">&#9670;&nbsp;</a></span>setFormatConversionAllowed()</h2>
797
798<div class="memitem">
799<div class="memproto">
800<table class="mlabels">
801  <tr>
802  <td class="mlabels-left">
803      <table class="memname">
804        <tr>
805          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setFormatConversionAllowed </td>
806          <td>(</td>
807          <td class="paramtype">bool&#160;</td>
808          <td class="paramname"><em>allowed</em></td><td>)</td>
809          <td></td>
810        </tr>
811      </table>
812  </td>
813  <td class="mlabels-right">
814<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
815  </tr>
816</table>
817</div><div class="memdoc">
818<p>If true then Oboe might convert data formats to achieve optimal results. On some versions of Android, for example, a float stream could not get a low latency data path. So an I16 stream might be opened and converted to float.</p>
819<p>Default is true. </p>
820
821</div>
822</div>
823<a id="a3f397821f61eabaeedaf31064c859a54"></a>
824<h2 class="memtitle"><span class="permalink"><a href="#a3f397821f61eabaeedaf31064c859a54">&#9670;&nbsp;</a></span>setFramesPerCallback()</h2>
825
826<div class="memitem">
827<div class="memproto">
828<table class="mlabels">
829  <tr>
830  <td class="mlabels-left">
831      <table class="memname">
832        <tr>
833          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setFramesPerCallback </td>
834          <td>(</td>
835          <td class="paramtype">int&#160;</td>
836          <td class="paramname"><em>framesPerCallback</em></td><td>)</td>
837          <td></td>
838        </tr>
839      </table>
840  </td>
841  <td class="mlabels-right">
842<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
843  </tr>
844</table>
845</div><div class="memdoc">
846<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>use <code>setFramesPerDataCallback</code> instead. </dd></dl>
847
848</div>
849</div>
850<a id="afb8e95e80df7edd1af27af490438785e"></a>
851<h2 class="memtitle"><span class="permalink"><a href="#afb8e95e80df7edd1af27af490438785e">&#9670;&nbsp;</a></span>setFramesPerDataCallback()</h2>
852
853<div class="memitem">
854<div class="memproto">
855<table class="mlabels">
856  <tr>
857  <td class="mlabels-left">
858      <table class="memname">
859        <tr>
860          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setFramesPerDataCallback </td>
861          <td>(</td>
862          <td class="paramtype">int&#160;</td>
863          <td class="paramname"><em>framesPerCallback</em></td><td>)</td>
864          <td></td>
865        </tr>
866      </table>
867  </td>
868  <td class="mlabels-right">
869<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
870  </tr>
871</table>
872</div><div class="memdoc">
873<p>Request a specific number of frames for the data callback.</p>
874<p>Default is kUnspecified. If the value is unspecified then the actual number may vary from callback to callback.</p>
875<p>If an application can handle a varying number of frames then we recommend leaving this unspecified. This allow the underlying API to optimize the callbacks. But if your application is, for example, doing FFTs or other block oriented operations, then call this function to get the sizes you need.</p>
876<dl class="params"><dt>Parameters</dt><dd>
877  <table class="params">
878    <tr><td class="paramname">framesPerCallback</td><td></td></tr>
879  </table>
880  </dd>
881</dl>
882<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
883
884</div>
885</div>
886<a id="a144a3d095fd668210282f1a91f23e1f0"></a>
887<h2 class="memtitle"><span class="permalink"><a href="#a144a3d095fd668210282f1a91f23e1f0">&#9670;&nbsp;</a></span>setInputPreset()</h2>
888
889<div class="memitem">
890<div class="memproto">
891<table class="mlabels">
892  <tr>
893  <td class="mlabels-left">
894      <table class="memname">
895        <tr>
896          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setInputPreset </td>
897          <td>(</td>
898          <td class="paramtype"><a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">InputPreset</a>&#160;</td>
899          <td class="paramname"><em>inputPreset</em></td><td>)</td>
900          <td></td>
901        </tr>
902      </table>
903  </td>
904  <td class="mlabels-right">
905<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
906  </tr>
907</table>
908</div><div class="memdoc">
909<p>Set the input (capture) preset for the stream.</p>
910<p>The system will use this information to optimize the behavior of the stream. This could, for example, affect which microphones are used and how the recorded data is processed.</p>
911<p>The default, if you do not call this function, is InputPreset::VoiceRecognition. That is because VoiceRecognition is the preset with the lowest latency on many platforms.</p>
912<p>Added in API level 28.</p>
913<dl class="params"><dt>Parameters</dt><dd>
914  <table class="params">
915    <tr><td class="paramname">inputPreset</td><td>the desired configuration for recording </td></tr>
916  </table>
917  </dd>
918</dl>
919
920</div>
921</div>
922<a id="a6cd1d65612e844e59da71a68ea0ab3ee"></a>
923<h2 class="memtitle"><span class="permalink"><a href="#a6cd1d65612e844e59da71a68ea0ab3ee">&#9670;&nbsp;</a></span>setPerformanceMode()</h2>
924
925<div class="memitem">
926<div class="memproto">
927<table class="mlabels">
928  <tr>
929  <td class="mlabels-left">
930      <table class="memname">
931        <tr>
932          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setPerformanceMode </td>
933          <td>(</td>
934          <td class="paramtype"><a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">PerformanceMode</a>&#160;</td>
935          <td class="paramname"><em>performanceMode</em></td><td>)</td>
936          <td></td>
937        </tr>
938      </table>
939  </td>
940  <td class="mlabels-right">
941<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
942  </tr>
943</table>
944</div><div class="memdoc">
945<p>Request a performance level for the stream. This will determine the latency, the power consumption, and the level of protection from glitches.</p>
946<dl class="params"><dt>Parameters</dt><dd>
947  <table class="params">
948    <tr><td class="paramname">performanceMode</td><td>for example, <a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184a611907b5ab1865515c35357efa41a9b9">PerformanceMode::LowLatency</a> </td></tr>
949  </table>
950  </dd>
951</dl>
952<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
953
954</div>
955</div>
956<a id="a30ef3d5f51d56a9f980dc09600ed139d"></a>
957<h2 class="memtitle"><span class="permalink"><a href="#a30ef3d5f51d56a9f980dc09600ed139d">&#9670;&nbsp;</a></span>setSampleRate()</h2>
958
959<div class="memitem">
960<div class="memproto">
961<table class="mlabels">
962  <tr>
963  <td class="mlabels-left">
964      <table class="memname">
965        <tr>
966          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setSampleRate </td>
967          <td>(</td>
968          <td class="paramtype">int32_t&#160;</td>
969          <td class="paramname"><em>sampleRate</em></td><td>)</td>
970          <td></td>
971        </tr>
972      </table>
973  </td>
974  <td class="mlabels-right">
975<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
976  </tr>
977</table>
978</div><div class="memdoc">
979<p>Request a specific sample rate in Hz.</p>
980<p>Default is kUnspecified. If the value is unspecified then the application should query for the actual value after the stream is opened.</p>
981<p>Technically, this should be called the "frame rate" or "frames per second", because it refers to the number of complete frames transferred per second. But it is traditionally called "sample rate". Se we use that term. </p>
982
983</div>
984</div>
985<a id="af7d24a9ec975d430732151e5ee0d1027"></a>
986<h2 class="memtitle"><span class="permalink"><a href="#af7d24a9ec975d430732151e5ee0d1027">&#9670;&nbsp;</a></span>setSampleRateConversionQuality()</h2>
987
988<div class="memitem">
989<div class="memproto">
990<table class="mlabels">
991  <tr>
992  <td class="mlabels-left">
993      <table class="memname">
994        <tr>
995          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setSampleRateConversionQuality </td>
996          <td>(</td>
997          <td class="paramtype"><a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">SampleRateConversionQuality</a>&#160;</td>
998          <td class="paramname"><em>quality</em></td><td>)</td>
999          <td></td>
1000        </tr>
1001      </table>
1002  </td>
1003  <td class="mlabels-right">
1004<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1005  </tr>
1006</table>
1007</div><div class="memdoc">
1008<p>Specify the quality of the sample rate converter in Oboe.</p>
1009<p>If set to None then Oboe will not do sample rate conversion. But the underlying APIs might still do sample rate conversion if you specify a sample rate. That can prevent you from getting a low latency stream.</p>
1010<p>If you do the conversion in Oboe then you might still get a low latency stream.</p>
1011<p>Default is SampleRateConversionQuality::None </p>
1012
1013</div>
1014</div>
1015<a id="a54c1651bdbe089d0d714af499e8a5f1d"></a>
1016<h2 class="memtitle"><span class="permalink"><a href="#a54c1651bdbe089d0d714af499e8a5f1d">&#9670;&nbsp;</a></span>setSessionId()</h2>
1017
1018<div class="memitem">
1019<div class="memproto">
1020<table class="mlabels">
1021  <tr>
1022  <td class="mlabels-left">
1023      <table class="memname">
1024        <tr>
1025          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setSessionId </td>
1026          <td>(</td>
1027          <td class="paramtype"><a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">SessionId</a>&#160;</td>
1028          <td class="paramname"><em>sessionId</em></td><td>)</td>
1029          <td></td>
1030        </tr>
1031      </table>
1032  </td>
1033  <td class="mlabels-right">
1034<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1035  </tr>
1036</table>
1037</div><div class="memdoc">
1038<p>Set the requested session ID.</p>
1039<p>The session ID can be used to associate a stream with effects processors. The effects are controlled using the Android AudioEffect Java API.</p>
1040<p>The default, if you do not call this function, is SessionId::None.</p>
1041<p>If set to SessionId::Allocate then a session ID will be allocated when the stream is opened.</p>
1042<p>The allocated session ID can be obtained by calling <a class="el" href="classoboe_1_1_audio_stream_base.html#aa3c502ce09bbad7690a2dd6acaf8892e">AudioStream::getSessionId()</a> and then used with this function when opening another stream. This allows effects to be shared between streams.</p>
1043<p>Session IDs from Oboe can be used the Android Java APIs and vice versa. So a session ID from an Oboe stream can be passed to Java and effects applied using the Java AudioEffect API.</p>
1044<p>Allocated session IDs will always be positive and nonzero.</p>
1045<p>Added in API level 28.</p>
1046<dl class="params"><dt>Parameters</dt><dd>
1047  <table class="params">
1048    <tr><td class="paramname">sessionId</td><td>an allocated sessionID or SessionId::Allocate </td></tr>
1049  </table>
1050  </dd>
1051</dl>
1052
1053</div>
1054</div>
1055<a id="a3e991742acbbfb6fe5ebcf592c478654"></a>
1056<h2 class="memtitle"><span class="permalink"><a href="#a3e991742acbbfb6fe5ebcf592c478654">&#9670;&nbsp;</a></span>setSharingMode()</h2>
1057
1058<div class="memitem">
1059<div class="memproto">
1060<table class="mlabels">
1061  <tr>
1062  <td class="mlabels-left">
1063      <table class="memname">
1064        <tr>
1065          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setSharingMode </td>
1066          <td>(</td>
1067          <td class="paramtype"><a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">SharingMode</a>&#160;</td>
1068          <td class="paramname"><em>sharingMode</em></td><td>)</td>
1069          <td></td>
1070        </tr>
1071      </table>
1072  </td>
1073  <td class="mlabels-right">
1074<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1075  </tr>
1076</table>
1077</div><div class="memdoc">
1078<p>Request a mode for sharing the device. The requested sharing mode may not be available. So the application should query for the actual mode after the stream is opened.</p>
1079<dl class="params"><dt>Parameters</dt><dd>
1080  <table class="params">
1081    <tr><td class="paramname">sharingMode</td><td><a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520aa6156ea9d66fef24e87e841fbabf7cca">SharingMode::Shared</a> or <a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520a2ef50b4c466304dc6ac77bac8a779971">SharingMode::Exclusive</a> </td></tr>
1082  </table>
1083  </dd>
1084</dl>
1085<dl class="section return"><dt>Returns</dt><dd>pointer to the builder so calls can be chained </dd></dl>
1086
1087</div>
1088</div>
1089<a id="a593255a2f5eb972665775cfc5bc58f6a"></a>
1090<h2 class="memtitle"><span class="permalink"><a href="#a593255a2f5eb972665775cfc5bc58f6a">&#9670;&nbsp;</a></span>setUsage()</h2>
1091
1092<div class="memitem">
1093<div class="memproto">
1094<table class="mlabels">
1095  <tr>
1096  <td class="mlabels-left">
1097      <table class="memname">
1098        <tr>
1099          <td class="memname"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a>* oboe::AudioStreamBuilder::setUsage </td>
1100          <td>(</td>
1101          <td class="paramtype"><a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">Usage</a>&#160;</td>
1102          <td class="paramname"><em>usage</em></td><td>)</td>
1103          <td></td>
1104        </tr>
1105      </table>
1106  </td>
1107  <td class="mlabels-right">
1108<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1109  </tr>
1110</table>
1111</div><div class="memdoc">
1112<p>Set the intended use case for an output stream.</p>
1113<p>The system will use this information to optimize the behavior of the stream. This could, for example, affect how volume and focus is handled for the stream. The usage is ignored for input streams.</p>
1114<p>The default, if you do not call this function, is <a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a3b563524fdb17b4a86590470d40bef74">Usage::Media</a>.</p>
1115<p>Added in API level 28.</p>
1116<dl class="params"><dt>Parameters</dt><dd>
1117  <table class="params">
1118    <tr><td class="paramname">usage</td><td>the desired usage, eg. <a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a63d72051e901c069f8aa1b32aa0c43bb">Usage::Game</a> </td></tr>
1119  </table>
1120  </dd>
1121</dl>
1122
1123</div>
1124</div>
1125<a id="aa07ea100fcb107d9f7913f206c2214f4"></a>
1126<h2 class="memtitle"><span class="permalink"><a href="#aa07ea100fcb107d9f7913f206c2214f4">&#9670;&nbsp;</a></span>willUseAAudio()</h2>
1127
1128<div class="memitem">
1129<div class="memproto">
1130<table class="mlabels">
1131  <tr>
1132  <td class="mlabels-left">
1133      <table class="memname">
1134        <tr>
1135          <td class="memname">bool oboe::AudioStreamBuilder::willUseAAudio </td>
1136          <td>(</td>
1137          <td class="paramname"></td><td>)</td>
1138          <td> const</td>
1139        </tr>
1140      </table>
1141  </td>
1142  <td class="mlabels-right">
1143<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
1144  </tr>
1145</table>
1146</div><div class="memdoc">
1147<dl class="section return"><dt>Returns</dt><dd>true if AAudio will be used based on the current settings. </dd></dl>
1148
1149</div>
1150</div>
1151<hr/>The documentation for this class was generated from the following file:<ul>
1152<li>include/oboe/<a class="el" href="_audio_stream_builder_8h_source.html">AudioStreamBuilder.h</a></li>
1153</ul>
1154</div><!-- contents -->
1155<!-- start footer part -->
1156<hr class="footer"/><address class="footer"><small>
1157Generated by &#160;<a href="http://www.doxygen.org/index.html">
1158<img class="footer" src="doxygen.png" alt="doxygen"/>
1159</a> 1.8.15
1160</small></address>
1161</body>
1162</html>
1163