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 Namespace 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><!-- top -->
65<div class="header">
66  <div class="summary">
67<a href="#nested-classes">Classes</a> &#124;
68<a href="#typedef-members">Typedefs</a> &#124;
69<a href="#enum-members">Enumerations</a> &#124;
70<a href="#func-members">Functions</a> &#124;
71<a href="#var-members">Variables</a>  </div>
72  <div class="headertitle">
73<div class="title">oboe Namespace Reference</div>  </div>
74</div><!--header-->
75<div class="contents">
76<table class="memberdecls">
77<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
78Classes</h2></td></tr>
79<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a></td></tr>
80<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
81<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_base.html">AudioStreamBase</a></td></tr>
82<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
83<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_builder.html">AudioStreamBuilder</a></td></tr>
84<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
85<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_callback.html">AudioStreamCallback</a></td></tr>
86<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
87<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_data_callback.html">AudioStreamDataCallback</a></td></tr>
88<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
89<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_audio_stream_error_callback.html">AudioStreamErrorCallback</a></td></tr>
90<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
91<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_default_stream_values.html">DefaultStreamValues</a></td></tr>
92<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
93<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoboe_1_1_frame_timestamp.html">FrameTimestamp</a></td></tr>
94<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
95<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_latency_tuner.html">LatencyTuner</a></td></tr>
96<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
97<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_oboe_globals.html">OboeGlobals</a></td></tr>
98<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
99<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_result_with_value.html">ResultWithValue</a></td></tr>
100<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
101<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoboe_1_1_stabilized_callback.html">StabilizedCallback</a></td></tr>
102<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
103<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoboe_1_1_stream_deleter_functor.html">StreamDeleterFunctor</a></td></tr>
104<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
105<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structoboe_1_1_version.html">Version</a></td></tr>
106<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
107</table><table class="memberdecls">
108<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
109Typedefs</h2></td></tr>
110<tr class="memitem:a2b3b25550ebb0c6f792d0d5b870359cd"><td class="memItemLeft" align="right" valign="top"><a id="a2b3b25550ebb0c6f792d0d5b870359cd"></a>
111using&#160;</td><td class="memItemRight" valign="bottom"><b>ManagedStream</b> = std::unique_ptr&lt; <a class="el" href="classoboe_1_1_audio_stream.html">AudioStream</a>, <a class="el" href="structoboe_1_1_stream_deleter_functor.html">StreamDeleterFunctor</a> &gt;</td></tr>
112<tr class="separator:a2b3b25550ebb0c6f792d0d5b870359cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
113</table><table class="memberdecls">
114<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
115Enumerations</h2></td></tr>
116<tr class="memitem:a89fa2ce046723764618c29db737917f6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a89fa2ce046723764618c29db737917f6">StreamState</a> : int32_t { <br />
117&#160;&#160;<b>Uninitialized</b> = 0,
118<b>Unknown</b> = 1,
119<b>Open</b> = 2,
120<b>Starting</b> = 3,
121<br />
122&#160;&#160;<b>Started</b> = 4,
123<b>Pausing</b> = 5,
124<b>Paused</b> = 6,
125<b>Flushing</b> = 7,
126<br />
127&#160;&#160;<b>Flushed</b> = 8,
128<b>Stopping</b> = 9,
129<b>Stopped</b> = 10,
130<b>Closing</b> = 11,
131<br />
132&#160;&#160;<b>Closed</b> = 12,
133<b>Disconnected</b> = 13
134<br />
135 }</td></tr>
136<tr class="separator:a89fa2ce046723764618c29db737917f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
137<tr class="memitem:af2147500089212955498a08ef2edb5ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">Direction</a> : int32_t { <a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea29c2c02a361c9d7028472e5d92cd4a54">Direction::Output</a> = 0,
138<a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5aea324118a6721dd6b8a9b9f4e327df2bf5">Direction::Input</a> = 1
139 }</td></tr>
140<tr class="separator:af2147500089212955498a08ef2edb5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
141<tr class="memitem:a92afc593e856571aacbfd02e57075df6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a> : int32_t { <a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6a4bbb8f967da6d1a610596d7257179c2b">AudioFormat::Invalid</a> = -1,
142<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5">Unspecified</a> = 0,
143<a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6abcd774f891b5f9df7099f3ea75dadf8d">AudioFormat::I16</a> = 1,
144<a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6a22ae0e2b89e5e3d477f988cc36d3272b">AudioFormat::Float</a> = 2
145 }</td></tr>
146<tr class="separator:a92afc593e856571aacbfd02e57075df6"><td class="memSeparator" colspan="2">&#160;</td></tr>
147<tr class="memitem:af85fc9910a287df6c5df0ed396bb75cd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#af85fc9910a287df6c5df0ed396bb75cd">DataCallbackResult</a> : int32_t { <b>Continue</b> = 0,
148<b>Stop</b> = 1
149 }</td></tr>
150<tr class="separator:af85fc9910a287df6c5df0ed396bb75cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
151<tr class="memitem:a486512e787b609c80ba4436f23929af1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">Result</a> : int32_t { <br />
152&#160;&#160;<b>OK</b> = 0,
153<b>ErrorBase</b> = -900,
154<b>ErrorDisconnected</b> = -899,
155<b>ErrorIllegalArgument</b> = -898,
156<br />
157&#160;&#160;<b>ErrorInternal</b> = -896,
158<b>ErrorInvalidState</b> = -895,
159<b>ErrorInvalidHandle</b> = -892,
160<b>ErrorUnimplemented</b> = -890,
161<br />
162&#160;&#160;<b>ErrorUnavailable</b> = -889,
163<b>ErrorNoFreeHandles</b> = -888,
164<b>ErrorNoMemory</b> = -887,
165<b>ErrorNull</b> = -886,
166<br />
167&#160;&#160;<b>ErrorTimeout</b> = -885,
168<b>ErrorWouldBlock</b> = -884,
169<b>ErrorInvalidFormat</b> = -883,
170<b>ErrorOutOfRange</b> = -882,
171<br />
172&#160;&#160;<b>ErrorNoService</b> = -881,
173<b>ErrorInvalidRate</b> = -880,
174<b>Reserved1</b>,
175<b>Reserved2</b>,
176<br />
177&#160;&#160;<b>Reserved3</b>,
178<b>Reserved4</b>,
179<b>Reserved5</b>,
180<b>Reserved6</b>,
181<br />
182&#160;&#160;<b>Reserved7</b>,
183<b>Reserved8</b>,
184<b>Reserved9</b>,
185<b>Reserved10</b>,
186<br />
187&#160;&#160;<b>ErrorClosed</b>
188<br />
189 }</td></tr>
190<tr class="separator:a486512e787b609c80ba4436f23929af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
191<tr class="memitem:a8330247b25429953a08354f41834d520"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">SharingMode</a> : int32_t { <a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520a2ef50b4c466304dc6ac77bac8a779971">SharingMode::Exclusive</a> = 0,
192<a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520aa6156ea9d66fef24e87e841fbabf7cca">SharingMode::Shared</a> = 1
193 }</td></tr>
194<tr class="separator:a8330247b25429953a08354f41834d520"><td class="memSeparator" colspan="2">&#160;</td></tr>
195<tr class="memitem:a1068781f3920654b1bfd7ed136468184"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">PerformanceMode</a> : int32_t { <a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754">None</a> = 10,
196<a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184abbad080463ed11f9d77797c04aa1e5b1">PerformanceMode::PowerSaving</a> = 11,
197<a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184a611907b5ab1865515c35357efa41a9b9">PerformanceMode::LowLatency</a> = 12
198 }</td></tr>
199<tr class="separator:a1068781f3920654b1bfd7ed136468184"><td class="memSeparator" colspan="2">&#160;</td></tr>
200<tr class="memitem:a92972414867c81d5974cb2ed7abefbf6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">AudioApi</a> : int32_t { <a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5">Unspecified</a> = kUnspecified,
201<a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b">AudioApi::OpenSLES</a>,
202<a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6a99780b1e8d754eb42abed0ca5253e55b">AudioApi::AAudio</a>
203 }</td></tr>
204<tr class="separator:a92972414867c81d5974cb2ed7abefbf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
205<tr class="memitem:a82f3720eba7654aceb7282be36f9ff1d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">SampleRateConversionQuality</a> : int32_t { <br />
206&#160;&#160;<a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754">None</a>,
207<a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1da90fd7fdf6f41406a75e5265b9583bb4e">SampleRateConversionQuality::Fastest</a>,
208<b>Low</b>,
209<b>Medium</b>,
210<br />
211&#160;&#160;<b>High</b>,
212<a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1da68ef004de6166492c1d668eb8efe09bd">SampleRateConversionQuality::Best</a>
213<br />
214 }</td></tr>
215<tr class="separator:a82f3720eba7654aceb7282be36f9ff1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
216<tr class="memitem:a104ee8396c173fefac429759ea3c21a0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">Usage</a> : int32_t { <br />
217&#160;&#160;<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a3b563524fdb17b4a86590470d40bef74">Usage::Media</a> = 1,
218<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06a5bad8854288c956062ec1d4d7c14fed6">VoiceCommunication</a> = 2,
219<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a404f62633744bf4da0c6a27a2b78ce74">Usage::VoiceCommunicationSignalling</a> = 3,
220<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a46c4c4d980dfe025ae5b35aa0011dde4">Usage::Alarm</a> = 4,
221<br />
222&#160;&#160;<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a96d008db67fc0b5551a926842bbb6a71">Usage::Notification</a> = 5,
223<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a4e7a4b08274d472394b740a20d3bbdaf">Usage::NotificationRingtone</a> = 6,
224<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a089240b5380dbd12f1eac0ec258a3b2f">Usage::NotificationEvent</a> = 10,
225<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a639ffd54516c1a84a288a363c9469df8">Usage::AssistanceAccessibility</a> = 11,
226<br />
227&#160;&#160;<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0ade058a1314f9a8504593259ff4f21a1e">Usage::AssistanceNavigationGuidance</a> = 12,
228<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a1ce57a0572748beebfc0c664ca1077e7">Usage::AssistanceSonification</a> = 13,
229<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a63d72051e901c069f8aa1b32aa0c43bb">Usage::Game</a> = 14,
230<a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0a9b1363da9503dbd4142c0274a88e8d4b">Usage::Assistant</a> = 16
231<br />
232 }</td></tr>
233<tr class="separator:a104ee8396c173fefac429759ea3c21a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
234<tr class="memitem:a2a3cec6f021c1a324df60273710c604b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">ContentType</a> : int32_t { <a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604ba3dc48a4b4619aa4edd1da7b937b4dcd1">Speech</a> = 1,
235<a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604bac156fcc7b29059305cef26f3904d4517">Music</a> = 2,
236<a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604ba8b3b366178c2b7b1688bca6cd33758b1">Movie</a> = 3,
237<a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604ba0885eef555037e94a7cf39fe683c2799">Sonification</a> = 4
238 }</td></tr>
239<tr class="separator:a2a3cec6f021c1a324df60273710c604b"><td class="memSeparator" colspan="2">&#160;</td></tr>
240<tr class="memitem:a4477ed232b02e2694d9309baf55a8f06"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">InputPreset</a> : int32_t { <br />
241&#160;&#160;<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06a0ba6f369e7f8a700c14afe2992290544">Generic</a> = 1,
242<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06a6e8ef178769235d18b44fe2bb5ab33fe">Camcorder</a> = 5,
243<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06af6e440b4e9edf49afe18aa4be77be6fc">VoiceRecognition</a> = 6,
244<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06a1862e72c9730c448fbec6f61a5d8234d">VoiceCommunication</a> = 7,
245<br />
246&#160;&#160;<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06a5bad8854288c956062ec1d4d7c14fed6">VoiceCommunication</a> = 2,
247<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06acad9424158aefae0af7975901b11d85f">Unprocessed</a> = 9,
248<a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06ad19edec0a23e435c774bf3bbcf1d999c">VoicePerformance</a> = 10
249<br />
250 }</td></tr>
251<tr class="separator:a4477ed232b02e2694d9309baf55a8f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
252<tr class="memitem:a5752250c10e96179e3618d7f72937eaf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">SessionId</a> { <a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f">None</a> = -1,
253<a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754">None</a> = 10,
254<a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754">None</a>,
255<a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eafa8485ca716c8cd4aafee372fd7028c123">Allocate</a> = 0
256 }</td></tr>
257<tr class="separator:a5752250c10e96179e3618d7f72937eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
258<tr class="memitem:a522e6806948369987639a0d1df03c029"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029">ChannelCount</a> : int32_t { <br />
259&#160;&#160;<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76">Unspecified</a> = kUnspecified,
260<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5">Unspecified</a> = 0,
261<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5">Unspecified</a> = kUnspecified,
262<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79">Mono</a> = 1,
263<br />
264&#160;&#160;<a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba">Stereo</a> = 2
265<br />
266 }</td></tr>
267<tr class="separator:a522e6806948369987639a0d1df03c029"><td class="memSeparator" colspan="2">&#160;</td></tr>
268</table><table class="memberdecls">
269<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
270Functions</h2></td></tr>
271<tr class="memitem:aa403103686222502d1cfc47bafc10aeb"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
272<tr class="memitem:aa403103686222502d1cfc47bafc10aeb"><td class="memTemplItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#aa403103686222502d1cfc47bafc10aeb">operator&lt;&lt;</a> (std::ostream &amp;strm, const <a class="el" href="classoboe_1_1_result_with_value.html">ResultWithValue</a>&lt; T &gt; &amp;result)</td></tr>
273<tr class="separator:aa403103686222502d1cfc47bafc10aeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
274<tr class="memitem:adbda063116feb9fa98a31ee820170060"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#adbda063116feb9fa98a31ee820170060">convertFloatToPcm16</a> (const float *source, int16_t *destination, int32_t numSamples)</td></tr>
275<tr class="separator:adbda063116feb9fa98a31ee820170060"><td class="memSeparator" colspan="2">&#160;</td></tr>
276<tr class="memitem:ad17bee42828d13f2ef62a889e175c643"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#ad17bee42828d13f2ef62a889e175c643">convertPcm16ToFloat</a> (const int16_t *source, float *destination, int32_t numSamples)</td></tr>
277<tr class="separator:ad17bee42828d13f2ef62a889e175c643"><td class="memSeparator" colspan="2">&#160;</td></tr>
278<tr class="memitem:ac67383a3df0f6e7a51f8415ffd9fdaca"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#ac67383a3df0f6e7a51f8415ffd9fdaca">convertFormatToSizeInBytes</a> (<a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a> format)</td></tr>
279<tr class="separator:ac67383a3df0f6e7a51f8415ffd9fdaca"><td class="memSeparator" colspan="2">&#160;</td></tr>
280<tr class="memitem:af65aaea3c5d82eee6906664d61c094b3"><td class="memTemplParams" colspan="2">template&lt;typename FromType &gt; </td></tr>
281<tr class="memitem:af65aaea3c5d82eee6906664d61c094b3"><td class="memTemplItemLeft" align="right" valign="top">const char *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#af65aaea3c5d82eee6906664d61c094b3">convertToText</a> (FromType input)</td></tr>
282<tr class="separator:af65aaea3c5d82eee6906664d61c094b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
283<tr class="memitem:a1ff1f1323d722494dac353a6b4d1bd5b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a1ff1f1323d722494dac353a6b4d1bd5b">getPropertyString</a> (const char *name)</td></tr>
284<tr class="separator:a1ff1f1323d722494dac353a6b4d1bd5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
285<tr class="memitem:a4284cffcf4d852ca4f357429303d7af5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a4284cffcf4d852ca4f357429303d7af5">getPropertyInteger</a> (const char *name, int defaultValue)</td></tr>
286<tr class="separator:a4284cffcf4d852ca4f357429303d7af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
287<tr class="memitem:a54528938e9fccab7ad8947ccf0e409db"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a54528938e9fccab7ad8947ccf0e409db">getSdkVersion</a> ()</td></tr>
288<tr class="separator:a54528938e9fccab7ad8947ccf0e409db"><td class="memSeparator" colspan="2">&#160;</td></tr>
289<tr class="memitem:a78417a797f5306478c8a37cee53fd12a"><td class="memItemLeft" align="right" valign="top"><a id="a78417a797f5306478c8a37cee53fd12a"></a>
290const char *&#160;</td><td class="memItemRight" valign="bottom"><b>getVersionText</b> ()</td></tr>
291<tr class="separator:a78417a797f5306478c8a37cee53fd12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
292</table><table class="memberdecls">
293<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
294Variables</h2></td></tr>
295<tr class="memitem:aab8f5f081a8b2147e16ec920347c1b5c"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#aab8f5f081a8b2147e16ec920347c1b5c">kDefaultTimeoutNanos</a> = (2000 * <a class="el" href="namespaceoboe.html#a831e887150474c087170679eaca8672b">kNanosPerMillisecond</a>)</td></tr>
296<tr class="separator:aab8f5f081a8b2147e16ec920347c1b5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
297<tr class="memitem:ab0772052200184e514082eaa89be7905"><td class="memItemLeft" align="right" valign="top">constexpr int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#ab0772052200184e514082eaa89be7905">kUnspecified</a> = 0</td></tr>
298<tr class="separator:ab0772052200184e514082eaa89be7905"><td class="memSeparator" colspan="2">&#160;</td></tr>
299<tr class="memitem:aedef0759ae3622b6f0324799bcbdebf0"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#aedef0759ae3622b6f0324799bcbdebf0">kNanosPerMicrosecond</a> = 1000</td></tr>
300<tr class="separator:aedef0759ae3622b6f0324799bcbdebf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
301<tr class="memitem:a831e887150474c087170679eaca8672b"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a831e887150474c087170679eaca8672b">kNanosPerMillisecond</a> = <a class="el" href="namespaceoboe.html#aedef0759ae3622b6f0324799bcbdebf0">kNanosPerMicrosecond</a> * 1000</td></tr>
302<tr class="separator:a831e887150474c087170679eaca8672b"><td class="memSeparator" colspan="2">&#160;</td></tr>
303<tr class="memitem:ad1bb9f5626cec20d3a052a8721959873"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#ad1bb9f5626cec20d3a052a8721959873">kMillisPerSecond</a> = 1000</td></tr>
304<tr class="separator:ad1bb9f5626cec20d3a052a8721959873"><td class="memSeparator" colspan="2">&#160;</td></tr>
305<tr class="memitem:a5948466b593c4eab65f7025846a39f51"><td class="memItemLeft" align="right" valign="top">constexpr int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceoboe.html#a5948466b593c4eab65f7025846a39f51">kNanosPerSecond</a> = <a class="el" href="namespaceoboe.html#a831e887150474c087170679eaca8672b">kNanosPerMillisecond</a> * <a class="el" href="namespaceoboe.html#ad1bb9f5626cec20d3a052a8721959873">kMillisPerSecond</a></td></tr>
306<tr class="separator:a5948466b593c4eab65f7025846a39f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
307</table>
308<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
309<div class="textblock"><p>WARNING - UNDER CONSTRUCTION - THIS API WILL CHANGE. </p>
310</div><h2 class="groupheader">Enumeration Type Documentation</h2>
311<a id="a92972414867c81d5974cb2ed7abefbf6"></a>
312<h2 class="memtitle"><span class="permalink"><a href="#a92972414867c81d5974cb2ed7abefbf6">&#9670;&nbsp;</a></span>AudioApi</h2>
313
314<div class="memitem">
315<div class="memproto">
316<table class="mlabels">
317  <tr>
318  <td class="mlabels-left">
319      <table class="memname">
320        <tr>
321          <td class="memname">enum <a class="el" href="namespaceoboe.html#a92972414867c81d5974cb2ed7abefbf6">oboe::AudioApi</a> : int32_t</td>
322        </tr>
323      </table>
324  </td>
325  <td class="mlabels-right">
326<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
327  </tr>
328</table>
329</div><div class="memdoc">
330<p>The underlying audio API used by the audio stream. </p>
331<table class="fieldtable">
332<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5"></a>Unspecified&#160;</td><td class="fielddoc"><p>Try to use AAudio. If not available then use OpenSL ES. </p>
333</td></tr>
334<tr><td class="fieldname"><a id="a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b"></a>OpenSLES&#160;</td><td class="fielddoc"><p>Use OpenSL ES. </p>
335</td></tr>
336<tr><td class="fieldname"><a id="a92972414867c81d5974cb2ed7abefbf6a99780b1e8d754eb42abed0ca5253e55b"></a>AAudio&#160;</td><td class="fielddoc"><p>Try to use AAudio. Fail if unavailable. </p>
337</td></tr>
338</table>
339
340</div>
341</div>
342<a id="a92afc593e856571aacbfd02e57075df6"></a>
343<h2 class="memtitle"><span class="permalink"><a href="#a92afc593e856571aacbfd02e57075df6">&#9670;&nbsp;</a></span>AudioFormat</h2>
344
345<div class="memitem">
346<div class="memproto">
347<table class="mlabels">
348  <tr>
349  <td class="mlabels-left">
350      <table class="memname">
351        <tr>
352          <td class="memname">enum <a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">oboe::AudioFormat</a> : int32_t</td>
353        </tr>
354      </table>
355  </td>
356  <td class="mlabels-right">
357<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
358  </tr>
359</table>
360</div><div class="memdoc">
361<p>The format of audio samples. </p>
362<table class="fieldtable">
363<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a92afc593e856571aacbfd02e57075df6a4bbb8f967da6d1a610596d7257179c2b"></a>Invalid&#160;</td><td class="fielddoc"><p>Invalid format. </p>
364</td></tr>
365<tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5"></a>Unspecified&#160;</td><td class="fielddoc"><p>Unspecified format. Format will be decided by Oboe. </p>
366</td></tr>
367<tr><td class="fieldname"><a id="a92afc593e856571aacbfd02e57075df6abcd774f891b5f9df7099f3ea75dadf8d"></a>I16&#160;</td><td class="fielddoc"><p>Signed 16-bit integers. </p>
368</td></tr>
369<tr><td class="fieldname"><a id="a92afc593e856571aacbfd02e57075df6a22ae0e2b89e5e3d477f988cc36d3272b"></a>Float&#160;</td><td class="fielddoc"><p>Single precision floating points. </p>
370</td></tr>
371</table>
372
373</div>
374</div>
375<a id="a522e6806948369987639a0d1df03c029"></a>
376<h2 class="memtitle"><span class="permalink"><a href="#a522e6806948369987639a0d1df03c029">&#9670;&nbsp;</a></span>ChannelCount</h2>
377
378<div class="memitem">
379<div class="memproto">
380      <table class="memname">
381        <tr>
382          <td class="memname">enum <a class="el" href="namespaceoboe.html#a522e6806948369987639a0d1df03c029">oboe::ChannelCount</a> : int32_t</td>
383        </tr>
384      </table>
385</div><div class="memdoc">
386<p>The channel count of the audio stream. The underlying type is <code>int32_t</code>. Use of this enum is convenient to avoid "magic" numbers when specifying the channel count.</p>
387<p>For example, you can write <code>builder.setChannelCount(ChannelCount::Stereo)</code> rather than <code>builder.setChannelCount(2)</code> </p>
388<table class="fieldtable">
389<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76"></a>Unspecified&#160;</td><td class="fielddoc"><p>Audio channel count definition, use Mono or Stereo </p>
390</td></tr>
391<tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5"></a>Unspecified&#160;</td><td class="fielddoc"><p>Unspecified format. Format will be decided by Oboe. </p>
392</td></tr>
393<tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5"></a>Unspecified&#160;</td><td class="fielddoc"><p>Try to use AAudio. If not available then use OpenSL ES. </p>
394</td></tr>
395<tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79"></a>Mono&#160;</td><td class="fielddoc"><p>Use this for mono audio </p>
396</td></tr>
397<tr><td class="fieldname"><a id="a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba"></a>Stereo&#160;</td><td class="fielddoc"><p>Use this for stereo audio. </p>
398</td></tr>
399</table>
400
401</div>
402</div>
403<a id="a2a3cec6f021c1a324df60273710c604b"></a>
404<h2 class="memtitle"><span class="permalink"><a href="#a2a3cec6f021c1a324df60273710c604b">&#9670;&nbsp;</a></span>ContentType</h2>
405
406<div class="memitem">
407<div class="memproto">
408      <table class="memname">
409        <tr>
410          <td class="memname">enum <a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604b">oboe::ContentType</a> : int32_t</td>
411        </tr>
412      </table>
413</div><div class="memdoc">
414<p>The ContentType attribute describes <em>what</em> you are playing. It expresses the general category of the content. This information is optional. But in case it is known (for instance <a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604ba8b3b366178c2b7b1688bca6cd33758b1">Movie</a> for a movie streaming service or <a class="el" href="namespaceoboe.html#a2a3cec6f021c1a324df60273710c604ba3dc48a4b4619aa4edd1da7b937b4dcd1">Speech</a> for an audio book application) this information might be used by the audio framework to enforce audio focus.</p>
415<p>Note that these match the equivalent values in AudioAttributes in the Android Java API.</p>
416<p>This attribute only has an effect on Android API 28+. </p>
417<table class="fieldtable">
418<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a2a3cec6f021c1a324df60273710c604ba3dc48a4b4619aa4edd1da7b937b4dcd1"></a>Speech&#160;</td><td class="fielddoc"><p>Use this for spoken voice, audio books, etcetera. </p>
419</td></tr>
420<tr><td class="fieldname"><a id="a2a3cec6f021c1a324df60273710c604bac156fcc7b29059305cef26f3904d4517"></a>Music&#160;</td><td class="fielddoc"><p>Use this for pre-recorded or live music. </p>
421</td></tr>
422<tr><td class="fieldname"><a id="a2a3cec6f021c1a324df60273710c604ba8b3b366178c2b7b1688bca6cd33758b1"></a>Movie&#160;</td><td class="fielddoc"><p>Use this for a movie or video soundtrack. </p>
423</td></tr>
424<tr><td class="fieldname"><a id="a2a3cec6f021c1a324df60273710c604ba0885eef555037e94a7cf39fe683c2799"></a>Sonification&#160;</td><td class="fielddoc"><p>Use this for sound is designed to accompany a user action, such as a click or beep sound made when the user presses a button. </p>
425</td></tr>
426</table>
427
428</div>
429</div>
430<a id="af85fc9910a287df6c5df0ed396bb75cd"></a>
431<h2 class="memtitle"><span class="permalink"><a href="#af85fc9910a287df6c5df0ed396bb75cd">&#9670;&nbsp;</a></span>DataCallbackResult</h2>
432
433<div class="memitem">
434<div class="memproto">
435<table class="mlabels">
436  <tr>
437  <td class="mlabels-left">
438      <table class="memname">
439        <tr>
440          <td class="memname">enum <a class="el" href="namespaceoboe.html#af85fc9910a287df6c5df0ed396bb75cd">oboe::DataCallbackResult</a> : int32_t</td>
441        </tr>
442      </table>
443  </td>
444  <td class="mlabels-right">
445<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
446  </tr>
447</table>
448</div><div class="memdoc">
449<p>The result of an audio callback. </p>
450
451</div>
452</div>
453<a id="af2147500089212955498a08ef2edb5ae"></a>
454<h2 class="memtitle"><span class="permalink"><a href="#af2147500089212955498a08ef2edb5ae">&#9670;&nbsp;</a></span>Direction</h2>
455
456<div class="memitem">
457<div class="memproto">
458<table class="mlabels">
459  <tr>
460  <td class="mlabels-left">
461      <table class="memname">
462        <tr>
463          <td class="memname">enum <a class="el" href="namespaceoboe.html#af2147500089212955498a08ef2edb5ae">oboe::Direction</a> : int32_t</td>
464        </tr>
465      </table>
466  </td>
467  <td class="mlabels-right">
468<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
469  </tr>
470</table>
471</div><div class="memdoc">
472<p>The direction of the stream. </p>
473<table class="fieldtable">
474<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af2147500089212955498a08ef2edb5aea29c2c02a361c9d7028472e5d92cd4a54"></a>Output&#160;</td><td class="fielddoc"><p>Used for playback. </p>
475</td></tr>
476<tr><td class="fieldname"><a id="af2147500089212955498a08ef2edb5aea324118a6721dd6b8a9b9f4e327df2bf5"></a>Input&#160;</td><td class="fielddoc"><p>Used for recording. </p>
477</td></tr>
478</table>
479
480</div>
481</div>
482<a id="a4477ed232b02e2694d9309baf55a8f06"></a>
483<h2 class="memtitle"><span class="permalink"><a href="#a4477ed232b02e2694d9309baf55a8f06">&#9670;&nbsp;</a></span>InputPreset</h2>
484
485<div class="memitem">
486<div class="memproto">
487      <table class="memname">
488        <tr>
489          <td class="memname">enum <a class="el" href="namespaceoboe.html#a4477ed232b02e2694d9309baf55a8f06">oboe::InputPreset</a> : int32_t</td>
490        </tr>
491      </table>
492</div><div class="memdoc">
493<p>Defines the audio source. An audio source defines both a default physical source of audio signal, and a recording configuration.</p>
494<p>Note that these match the equivalent values in MediaRecorder.AudioSource in the Android Java API.</p>
495<p>This attribute only has an effect on Android API 28+. </p>
496<table class="fieldtable">
497<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06a0ba6f369e7f8a700c14afe2992290544"></a>Generic&#160;</td><td class="fielddoc"><p>Use this preset when other presets do not apply. </p>
498</td></tr>
499<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06a6e8ef178769235d18b44fe2bb5ab33fe"></a>Camcorder&#160;</td><td class="fielddoc"><p>Use this preset when recording video. </p>
500</td></tr>
501<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06af6e440b4e9edf49afe18aa4be77be6fc"></a>VoiceRecognition&#160;</td><td class="fielddoc"><p>Use this preset when doing speech recognition. </p>
502</td></tr>
503<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06a1862e72c9730c448fbec6f61a5d8234d"></a>VoiceCommunication&#160;</td><td class="fielddoc"><p>Use this preset when doing telephony or voice messaging. </p>
504</td></tr>
505<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06a5bad8854288c956062ec1d4d7c14fed6"></a>VoiceCommunication&#160;</td><td class="fielddoc"><p>Use this for voice over IP, telephony, etcetera. </p>
506</td></tr>
507<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06acad9424158aefae0af7975901b11d85f"></a>Unprocessed&#160;</td><td class="fielddoc"><p>Use this preset to obtain an input with no effects. Note that this input will not have automatic gain control so the recorded volume may be very low. </p>
508</td></tr>
509<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06ad19edec0a23e435c774bf3bbcf1d999c"></a>VoicePerformance&#160;</td><td class="fielddoc"><p>Use this preset for capturing audio meant to be processed in real time and played back for live performance (e.g karaoke). The capture path will minimize latency and coupling with playback path. </p>
510</td></tr>
511</table>
512
513</div>
514</div>
515<a id="a1068781f3920654b1bfd7ed136468184"></a>
516<h2 class="memtitle"><span class="permalink"><a href="#a1068781f3920654b1bfd7ed136468184">&#9670;&nbsp;</a></span>PerformanceMode</h2>
517
518<div class="memitem">
519<div class="memproto">
520<table class="mlabels">
521  <tr>
522  <td class="mlabels-left">
523      <table class="memname">
524        <tr>
525          <td class="memname">enum <a class="el" href="namespaceoboe.html#a1068781f3920654b1bfd7ed136468184">oboe::PerformanceMode</a> : int32_t</td>
526        </tr>
527      </table>
528  </td>
529  <td class="mlabels-right">
530<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
531  </tr>
532</table>
533</div><div class="memdoc">
534<p>The performance mode of the audio stream. </p>
535<table class="fieldtable">
536<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754"></a>None&#160;</td><td class="fielddoc"><p>No particular performance needs. Default. </p>
537</td></tr>
538<tr><td class="fieldname"><a id="a1068781f3920654b1bfd7ed136468184abbad080463ed11f9d77797c04aa1e5b1"></a>PowerSaving&#160;</td><td class="fielddoc"><p>Extending battery life is most important. </p>
539</td></tr>
540<tr><td class="fieldname"><a id="a1068781f3920654b1bfd7ed136468184a611907b5ab1865515c35357efa41a9b9"></a>LowLatency&#160;</td><td class="fielddoc"><p>Reducing latency is most important. </p>
541</td></tr>
542</table>
543
544</div>
545</div>
546<a id="a486512e787b609c80ba4436f23929af1"></a>
547<h2 class="memtitle"><span class="permalink"><a href="#a486512e787b609c80ba4436f23929af1">&#9670;&nbsp;</a></span>Result</h2>
548
549<div class="memitem">
550<div class="memproto">
551<table class="mlabels">
552  <tr>
553  <td class="mlabels-left">
554      <table class="memname">
555        <tr>
556          <td class="memname">enum <a class="el" href="namespaceoboe.html#a486512e787b609c80ba4436f23929af1">oboe::Result</a> : int32_t</td>
557        </tr>
558      </table>
559  </td>
560  <td class="mlabels-right">
561<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
562  </tr>
563</table>
564</div><div class="memdoc">
565<p>The result of an operation. All except the <code>OK</code> result indicates that an error occurred. The <code>Result</code> can be converted into a human readable string using <code>convertToText</code>. </p>
566
567</div>
568</div>
569<a id="a82f3720eba7654aceb7282be36f9ff1d"></a>
570<h2 class="memtitle"><span class="permalink"><a href="#a82f3720eba7654aceb7282be36f9ff1d">&#9670;&nbsp;</a></span>SampleRateConversionQuality</h2>
571
572<div class="memitem">
573<div class="memproto">
574<table class="mlabels">
575  <tr>
576  <td class="mlabels-left">
577      <table class="memname">
578        <tr>
579          <td class="memname">enum <a class="el" href="namespaceoboe.html#a82f3720eba7654aceb7282be36f9ff1d">oboe::SampleRateConversionQuality</a> : int32_t</td>
580        </tr>
581      </table>
582  </td>
583  <td class="mlabels-right">
584<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
585  </tr>
586</table>
587</div><div class="memdoc">
588<p>Specifies the quality of the sample rate conversion performed by Oboe. Higher quality will require more CPU load. Higher quality conversion will probably be implemented using a sinc based resampler. </p>
589<table class="fieldtable">
590<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754"></a>None&#160;</td><td class="fielddoc"><p>No conversion by Oboe. Underlying APIs may still do conversion. </p>
591</td></tr>
592<tr><td class="fieldname"><a id="a82f3720eba7654aceb7282be36f9ff1da90fd7fdf6f41406a75e5265b9583bb4e"></a>Fastest&#160;</td><td class="fielddoc"><p>Fastest conversion but may not sound great. This may be implemented using bilinear interpolation. </p>
593</td></tr>
594<tr><td class="fieldname"><a id="a82f3720eba7654aceb7282be36f9ff1da68ef004de6166492c1d668eb8efe09bd"></a>Best&#160;</td><td class="fielddoc"><p>Highest quality conversion, which may be expensive in terms of CPU. </p>
595</td></tr>
596</table>
597
598</div>
599</div>
600<a id="a5752250c10e96179e3618d7f72937eaf"></a>
601<h2 class="memtitle"><span class="permalink"><a href="#a5752250c10e96179e3618d7f72937eaf">&#9670;&nbsp;</a></span>SessionId</h2>
602
603<div class="memitem">
604<div class="memproto">
605      <table class="memname">
606        <tr>
607          <td class="memname">enum <a class="el" href="namespaceoboe.html#a5752250c10e96179e3618d7f72937eaf">oboe::SessionId</a></td>
608        </tr>
609      </table>
610</div><div class="memdoc">
611<p>This attribute can be used to allocate a session ID to the audio stream.</p>
612<p>This attribute only has an effect on Android API 28+. </p>
613<table class="fieldtable">
614<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f"></a>None&#160;</td><td class="fielddoc"><p>Do not allocate a session ID. Effects cannot be used with this stream. Default. </p>
615</td></tr>
616<tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754"></a>None&#160;</td><td class="fielddoc"><p>No particular performance needs. Default. </p>
617</td></tr>
618<tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754"></a>None&#160;</td><td class="fielddoc"><p>No conversion by Oboe. Underlying APIs may still do conversion. </p>
619</td></tr>
620<tr><td class="fieldname"><a id="a5752250c10e96179e3618d7f72937eafa8485ca716c8cd4aafee372fd7028c123"></a>Allocate&#160;</td><td class="fielddoc"><p>Allocate a session ID that can be used to attach and control effects using the Java AudioEffects API. Note that the use of this flag may result in higher latency.</p>
621<p>Note that this matches the value of AudioManager.AUDIO_SESSION_ID_GENERATE. </p>
622</td></tr>
623</table>
624
625</div>
626</div>
627<a id="a8330247b25429953a08354f41834d520"></a>
628<h2 class="memtitle"><span class="permalink"><a href="#a8330247b25429953a08354f41834d520">&#9670;&nbsp;</a></span>SharingMode</h2>
629
630<div class="memitem">
631<div class="memproto">
632<table class="mlabels">
633  <tr>
634  <td class="mlabels-left">
635      <table class="memname">
636        <tr>
637          <td class="memname">enum <a class="el" href="namespaceoboe.html#a8330247b25429953a08354f41834d520">oboe::SharingMode</a> : int32_t</td>
638        </tr>
639      </table>
640  </td>
641  <td class="mlabels-right">
642<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
643  </tr>
644</table>
645</div><div class="memdoc">
646<p>The sharing mode of the audio stream. </p>
647<table class="fieldtable">
648<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8330247b25429953a08354f41834d520a2ef50b4c466304dc6ac77bac8a779971"></a>Exclusive&#160;</td><td class="fielddoc"><p>This will be the only stream using a particular source or sink. This mode will provide the lowest possible latency. You should close EXCLUSIVE streams immediately when you are not using them.</p>
649<p>If you do not need the lowest possible latency then we recommend using Shared, which is the default. </p>
650</td></tr>
651<tr><td class="fieldname"><a id="a8330247b25429953a08354f41834d520aa6156ea9d66fef24e87e841fbabf7cca"></a>Shared&#160;</td><td class="fielddoc"><p>Multiple applications can share the same device. The data from output streams will be mixed by the audio service. The data for input streams will be distributed by the audio service.</p>
652<p>This will have higher latency than the EXCLUSIVE mode. </p>
653</td></tr>
654</table>
655
656</div>
657</div>
658<a id="a89fa2ce046723764618c29db737917f6"></a>
659<h2 class="memtitle"><span class="permalink"><a href="#a89fa2ce046723764618c29db737917f6">&#9670;&nbsp;</a></span>StreamState</h2>
660
661<div class="memitem">
662<div class="memproto">
663<table class="mlabels">
664  <tr>
665  <td class="mlabels-left">
666      <table class="memname">
667        <tr>
668          <td class="memname">enum <a class="el" href="namespaceoboe.html#a89fa2ce046723764618c29db737917f6">oboe::StreamState</a> : int32_t</td>
669        </tr>
670      </table>
671  </td>
672  <td class="mlabels-right">
673<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
674  </tr>
675</table>
676</div><div class="memdoc">
677<p>The state of the audio stream. </p>
678
679</div>
680</div>
681<a id="a104ee8396c173fefac429759ea3c21a0"></a>
682<h2 class="memtitle"><span class="permalink"><a href="#a104ee8396c173fefac429759ea3c21a0">&#9670;&nbsp;</a></span>Usage</h2>
683
684<div class="memitem">
685<div class="memproto">
686<table class="mlabels">
687  <tr>
688  <td class="mlabels-left">
689      <table class="memname">
690        <tr>
691          <td class="memname">enum <a class="el" href="namespaceoboe.html#a104ee8396c173fefac429759ea3c21a0">oboe::Usage</a> : int32_t</td>
692        </tr>
693      </table>
694  </td>
695  <td class="mlabels-right">
696<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
697  </tr>
698</table>
699</div><div class="memdoc">
700<p>The Usage attribute expresses <em>why</em> you are playing a sound, what is this sound used for. This information is used by certain platforms or routing policies to make more refined volume or routing decisions.</p>
701<p>Note that these match the equivalent values in AudioAttributes in the Android Java API.</p>
702<p>This attribute only has an effect on Android API 28+. </p>
703<table class="fieldtable">
704<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a3b563524fdb17b4a86590470d40bef74"></a>Media&#160;</td><td class="fielddoc"><p>Use this for streaming media, music performance, video, podcasts, etcetera. </p>
705</td></tr>
706<tr><td class="fieldname"><a id="a4477ed232b02e2694d9309baf55a8f06a5bad8854288c956062ec1d4d7c14fed6"></a>VoiceCommunication&#160;</td><td class="fielddoc"><p>Use this for voice over IP, telephony, etcetera. </p>
707</td></tr>
708<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a404f62633744bf4da0c6a27a2b78ce74"></a>VoiceCommunicationSignalling&#160;</td><td class="fielddoc"><p>Use this for sounds associated with telephony such as busy tones, DTMF, etcetera. </p>
709</td></tr>
710<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a46c4c4d980dfe025ae5b35aa0011dde4"></a>Alarm&#160;</td><td class="fielddoc"><p>Use this to demand the users attention. </p>
711</td></tr>
712<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a96d008db67fc0b5551a926842bbb6a71"></a>Notification&#160;</td><td class="fielddoc"><p>Use this for notifying the user when a message has arrived or some other background event has occured. </p>
713</td></tr>
714<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a4e7a4b08274d472394b740a20d3bbdaf"></a>NotificationRingtone&#160;</td><td class="fielddoc"><p>Use this when the phone rings. </p>
715</td></tr>
716<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a089240b5380dbd12f1eac0ec258a3b2f"></a>NotificationEvent&#160;</td><td class="fielddoc"><p>Use this to attract the users attention when, for example, the battery is low. </p>
717</td></tr>
718<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a639ffd54516c1a84a288a363c9469df8"></a>AssistanceAccessibility&#160;</td><td class="fielddoc"><p>Use this for screen readers, etcetera. </p>
719</td></tr>
720<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0ade058a1314f9a8504593259ff4f21a1e"></a>AssistanceNavigationGuidance&#160;</td><td class="fielddoc"><p>Use this for driving or navigation directions. </p>
721</td></tr>
722<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a1ce57a0572748beebfc0c664ca1077e7"></a>AssistanceSonification&#160;</td><td class="fielddoc"><p>Use this for user interface sounds, beeps, etcetera. </p>
723</td></tr>
724<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a63d72051e901c069f8aa1b32aa0c43bb"></a>Game&#160;</td><td class="fielddoc"><p>Use this for game audio and sound effects. </p>
725</td></tr>
726<tr><td class="fieldname"><a id="a104ee8396c173fefac429759ea3c21a0a9b1363da9503dbd4142c0274a88e8d4b"></a>Assistant&#160;</td><td class="fielddoc"><p>Use this for audio responses to user queries, audio instructions or help utterances. </p>
727</td></tr>
728</table>
729
730</div>
731</div>
732<h2 class="groupheader">Function Documentation</h2>
733<a id="adbda063116feb9fa98a31ee820170060"></a>
734<h2 class="memtitle"><span class="permalink"><a href="#adbda063116feb9fa98a31ee820170060">&#9670;&nbsp;</a></span>convertFloatToPcm16()</h2>
735
736<div class="memitem">
737<div class="memproto">
738      <table class="memname">
739        <tr>
740          <td class="memname">void oboe::convertFloatToPcm16 </td>
741          <td>(</td>
742          <td class="paramtype">const float *&#160;</td>
743          <td class="paramname"><em>source</em>, </td>
744        </tr>
745        <tr>
746          <td class="paramkey"></td>
747          <td></td>
748          <td class="paramtype">int16_t *&#160;</td>
749          <td class="paramname"><em>destination</em>, </td>
750        </tr>
751        <tr>
752          <td class="paramkey"></td>
753          <td></td>
754          <td class="paramtype">int32_t&#160;</td>
755          <td class="paramname"><em>numSamples</em>&#160;</td>
756        </tr>
757        <tr>
758          <td></td>
759          <td>)</td>
760          <td></td><td></td>
761        </tr>
762      </table>
763</div><div class="memdoc">
764<p>Convert an array of floats to an array of 16-bit integers.</p>
765<dl class="params"><dt>Parameters</dt><dd>
766  <table class="params">
767    <tr><td class="paramname">source</td><td>the input array. </td></tr>
768    <tr><td class="paramname">destination</td><td>the output array. </td></tr>
769    <tr><td class="paramname">numSamples</td><td>the number of values to convert. </td></tr>
770  </table>
771  </dd>
772</dl>
773
774</div>
775</div>
776<a id="ac67383a3df0f6e7a51f8415ffd9fdaca"></a>
777<h2 class="memtitle"><span class="permalink"><a href="#ac67383a3df0f6e7a51f8415ffd9fdaca">&#9670;&nbsp;</a></span>convertFormatToSizeInBytes()</h2>
778
779<div class="memitem">
780<div class="memproto">
781      <table class="memname">
782        <tr>
783          <td class="memname">int32_t oboe::convertFormatToSizeInBytes </td>
784          <td>(</td>
785          <td class="paramtype"><a class="el" href="namespaceoboe.html#a92afc593e856571aacbfd02e57075df6">AudioFormat</a>&#160;</td>
786          <td class="paramname"><em>format</em></td><td>)</td>
787          <td></td>
788        </tr>
789      </table>
790</div><div class="memdoc">
791<dl class="section return"><dt>Returns</dt><dd>the size of a sample of the given format in bytes or 0 if format is invalid </dd></dl>
792
793</div>
794</div>
795<a id="ad17bee42828d13f2ef62a889e175c643"></a>
796<h2 class="memtitle"><span class="permalink"><a href="#ad17bee42828d13f2ef62a889e175c643">&#9670;&nbsp;</a></span>convertPcm16ToFloat()</h2>
797
798<div class="memitem">
799<div class="memproto">
800      <table class="memname">
801        <tr>
802          <td class="memname">void oboe::convertPcm16ToFloat </td>
803          <td>(</td>
804          <td class="paramtype">const int16_t *&#160;</td>
805          <td class="paramname"><em>source</em>, </td>
806        </tr>
807        <tr>
808          <td class="paramkey"></td>
809          <td></td>
810          <td class="paramtype">float *&#160;</td>
811          <td class="paramname"><em>destination</em>, </td>
812        </tr>
813        <tr>
814          <td class="paramkey"></td>
815          <td></td>
816          <td class="paramtype">int32_t&#160;</td>
817          <td class="paramname"><em>numSamples</em>&#160;</td>
818        </tr>
819        <tr>
820          <td></td>
821          <td>)</td>
822          <td></td><td></td>
823        </tr>
824      </table>
825</div><div class="memdoc">
826<p>Convert an array of 16-bit integers to an array of floats.</p>
827<dl class="params"><dt>Parameters</dt><dd>
828  <table class="params">
829    <tr><td class="paramname">source</td><td>the input array. </td></tr>
830    <tr><td class="paramname">destination</td><td>the output array. </td></tr>
831    <tr><td class="paramname">numSamples</td><td>the number of values to convert. </td></tr>
832  </table>
833  </dd>
834</dl>
835
836</div>
837</div>
838<a id="af65aaea3c5d82eee6906664d61c094b3"></a>
839<h2 class="memtitle"><span class="permalink"><a href="#af65aaea3c5d82eee6906664d61c094b3">&#9670;&nbsp;</a></span>convertToText()</h2>
840
841<div class="memitem">
842<div class="memproto">
843<div class="memtemplate">
844template&lt;typename FromType &gt; </div>
845      <table class="memname">
846        <tr>
847          <td class="memname">const char* oboe::convertToText </td>
848          <td>(</td>
849          <td class="paramtype">FromType&#160;</td>
850          <td class="paramname"><em>input</em></td><td>)</td>
851          <td></td>
852        </tr>
853      </table>
854</div><div class="memdoc">
855<p>The text is the ASCII symbol corresponding to the supplied Oboe enum value, or an English message saying the value is unrecognized. This is intended for developers to use when debugging. It is not for displaying to users.</p>
856<dl class="params"><dt>Parameters</dt><dd>
857  <table class="params">
858    <tr><td class="paramname">input</td><td>object to convert from. </td></tr>
859  </table>
860  </dd>
861</dl>
862<dl class="section see"><dt>See also</dt><dd>common/Utilities.cpp for concrete implementations </dd></dl>
863<dl class="section return"><dt>Returns</dt><dd>text representation of an Oboe enum value. There is no need to call free on this. </dd></dl>
864
865</div>
866</div>
867<a id="a4284cffcf4d852ca4f357429303d7af5"></a>
868<h2 class="memtitle"><span class="permalink"><a href="#a4284cffcf4d852ca4f357429303d7af5">&#9670;&nbsp;</a></span>getPropertyInteger()</h2>
869
870<div class="memitem">
871<div class="memproto">
872      <table class="memname">
873        <tr>
874          <td class="memname">int oboe::getPropertyInteger </td>
875          <td>(</td>
876          <td class="paramtype">const char *&#160;</td>
877          <td class="paramname"><em>name</em>, </td>
878        </tr>
879        <tr>
880          <td class="paramkey"></td>
881          <td></td>
882          <td class="paramtype">int&#160;</td>
883          <td class="paramname"><em>defaultValue</em>&#160;</td>
884        </tr>
885        <tr>
886          <td></td>
887          <td>)</td>
888          <td></td><td></td>
889        </tr>
890      </table>
891</div><div class="memdoc">
892<dl class="params"><dt>Parameters</dt><dd>
893  <table class="params">
894    <tr><td class="paramname">name</td><td></td></tr>
895    <tr><td class="paramname">defaultValue</td><td></td></tr>
896  </table>
897  </dd>
898</dl>
899<dl class="section return"><dt>Returns</dt><dd>integer value associated with a property or the default value </dd></dl>
900
901</div>
902</div>
903<a id="a1ff1f1323d722494dac353a6b4d1bd5b"></a>
904<h2 class="memtitle"><span class="permalink"><a href="#a1ff1f1323d722494dac353a6b4d1bd5b">&#9670;&nbsp;</a></span>getPropertyString()</h2>
905
906<div class="memitem">
907<div class="memproto">
908      <table class="memname">
909        <tr>
910          <td class="memname">std::string oboe::getPropertyString </td>
911          <td>(</td>
912          <td class="paramtype">const char *&#160;</td>
913          <td class="paramname"><em>name</em></td><td>)</td>
914          <td></td>
915        </tr>
916      </table>
917</div><div class="memdoc">
918<dl class="params"><dt>Parameters</dt><dd>
919  <table class="params">
920    <tr><td class="paramname">name</td><td></td></tr>
921  </table>
922  </dd>
923</dl>
924<dl class="section return"><dt>Returns</dt><dd>the value of a named system property in a string or empty string </dd></dl>
925
926</div>
927</div>
928<a id="a54528938e9fccab7ad8947ccf0e409db"></a>
929<h2 class="memtitle"><span class="permalink"><a href="#a54528938e9fccab7ad8947ccf0e409db">&#9670;&nbsp;</a></span>getSdkVersion()</h2>
930
931<div class="memitem">
932<div class="memproto">
933      <table class="memname">
934        <tr>
935          <td class="memname">int oboe::getSdkVersion </td>
936          <td>(</td>
937          <td class="paramname"></td><td>)</td>
938          <td></td>
939        </tr>
940      </table>
941</div><div class="memdoc">
942<p>Return the version of the SDK that is currently running.</p>
943<p>For example, on Android, this would return 27 for Oreo 8.1. If the version number cannot be determined then this will return -1.</p>
944<dl class="section return"><dt>Returns</dt><dd>version number or -1 </dd></dl>
945
946</div>
947</div>
948<a id="aa403103686222502d1cfc47bafc10aeb"></a>
949<h2 class="memtitle"><span class="permalink"><a href="#aa403103686222502d1cfc47bafc10aeb">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>
950
951<div class="memitem">
952<div class="memproto">
953<div class="memtemplate">
954template&lt;typename T &gt; </div>
955      <table class="memname">
956        <tr>
957          <td class="memname">std::ostream&amp; oboe::operator&lt;&lt; </td>
958          <td>(</td>
959          <td class="paramtype">std::ostream &amp;&#160;</td>
960          <td class="paramname"><em>strm</em>, </td>
961        </tr>
962        <tr>
963          <td class="paramkey"></td>
964          <td></td>
965          <td class="paramtype">const <a class="el" href="classoboe_1_1_result_with_value.html">ResultWithValue</a>&lt; T &gt; &amp;&#160;</td>
966          <td class="paramname"><em>result</em>&#160;</td>
967        </tr>
968        <tr>
969          <td></td>
970          <td>)</td>
971          <td></td><td></td>
972        </tr>
973      </table>
974</div><div class="memdoc">
975<p>If the result is <code>OK</code> then return the value, otherwise return a human-readable error message. </p>
976
977</div>
978</div>
979<h2 class="groupheader">Variable Documentation</h2>
980<a id="aab8f5f081a8b2147e16ec920347c1b5c"></a>
981<h2 class="memtitle"><span class="permalink"><a href="#aab8f5f081a8b2147e16ec920347c1b5c">&#9670;&nbsp;</a></span>kDefaultTimeoutNanos</h2>
982
983<div class="memitem">
984<div class="memproto">
985      <table class="memname">
986        <tr>
987          <td class="memname">constexpr int64_t oboe::kDefaultTimeoutNanos = (2000 * <a class="el" href="namespaceoboe.html#a831e887150474c087170679eaca8672b">kNanosPerMillisecond</a>)</td>
988        </tr>
989      </table>
990</div><div class="memdoc">
991<p>The default number of nanoseconds to wait for when performing state change operations on the stream, such as <code>start</code> and <code>stop</code>.</p>
992<dl class="section see"><dt>See also</dt><dd><a class="el" href="classoboe_1_1_audio_stream.html#af04f03eb6b64b564f1c4401688987d21">oboe::AudioStream::start</a> </dd></dl>
993
994</div>
995</div>
996<a id="ad1bb9f5626cec20d3a052a8721959873"></a>
997<h2 class="memtitle"><span class="permalink"><a href="#ad1bb9f5626cec20d3a052a8721959873">&#9670;&nbsp;</a></span>kMillisPerSecond</h2>
998
999<div class="memitem">
1000<div class="memproto">
1001      <table class="memname">
1002        <tr>
1003          <td class="memname">constexpr int64_t oboe::kMillisPerSecond = 1000</td>
1004        </tr>
1005      </table>
1006</div><div class="memdoc">
1007<p>The number of milliseconds in a second. 1,000. </p>
1008
1009</div>
1010</div>
1011<a id="aedef0759ae3622b6f0324799bcbdebf0"></a>
1012<h2 class="memtitle"><span class="permalink"><a href="#aedef0759ae3622b6f0324799bcbdebf0">&#9670;&nbsp;</a></span>kNanosPerMicrosecond</h2>
1013
1014<div class="memitem">
1015<div class="memproto">
1016      <table class="memname">
1017        <tr>
1018          <td class="memname">constexpr int64_t oboe::kNanosPerMicrosecond = 1000</td>
1019        </tr>
1020      </table>
1021</div><div class="memdoc">
1022<p>The number of nanoseconds in a microsecond. 1,000. </p>
1023
1024</div>
1025</div>
1026<a id="a831e887150474c087170679eaca8672b"></a>
1027<h2 class="memtitle"><span class="permalink"><a href="#a831e887150474c087170679eaca8672b">&#9670;&nbsp;</a></span>kNanosPerMillisecond</h2>
1028
1029<div class="memitem">
1030<div class="memproto">
1031      <table class="memname">
1032        <tr>
1033          <td class="memname">constexpr int64_t oboe::kNanosPerMillisecond = <a class="el" href="namespaceoboe.html#aedef0759ae3622b6f0324799bcbdebf0">kNanosPerMicrosecond</a> * 1000</td>
1034        </tr>
1035      </table>
1036</div><div class="memdoc">
1037<p>The number of nanoseconds in a millisecond. 1,000,000. </p>
1038
1039</div>
1040</div>
1041<a id="a5948466b593c4eab65f7025846a39f51"></a>
1042<h2 class="memtitle"><span class="permalink"><a href="#a5948466b593c4eab65f7025846a39f51">&#9670;&nbsp;</a></span>kNanosPerSecond</h2>
1043
1044<div class="memitem">
1045<div class="memproto">
1046      <table class="memname">
1047        <tr>
1048          <td class="memname">constexpr int64_t oboe::kNanosPerSecond = <a class="el" href="namespaceoboe.html#a831e887150474c087170679eaca8672b">kNanosPerMillisecond</a> * <a class="el" href="namespaceoboe.html#ad1bb9f5626cec20d3a052a8721959873">kMillisPerSecond</a></td>
1049        </tr>
1050      </table>
1051</div><div class="memdoc">
1052<p>The number of nanoseconds in a second. 1,000,000,000. </p>
1053
1054</div>
1055</div>
1056<a id="ab0772052200184e514082eaa89be7905"></a>
1057<h2 class="memtitle"><span class="permalink"><a href="#ab0772052200184e514082eaa89be7905">&#9670;&nbsp;</a></span>kUnspecified</h2>
1058
1059<div class="memitem">
1060<div class="memproto">
1061      <table class="memname">
1062        <tr>
1063          <td class="memname">constexpr int32_t oboe::kUnspecified = 0</td>
1064        </tr>
1065      </table>
1066</div><div class="memdoc">
1067<p>Represents any attribute, property or value which hasn't been specified. </p>
1068
1069</div>
1070</div>
1071</div><!-- contents -->
1072<!-- start footer part -->
1073<hr class="footer"/><address class="footer"><small>
1074Generated by &#160;<a href="http://www.doxygen.org/index.html">
1075<img class="footer" src="doxygen.png" alt="doxygen"/>
1076</a> 1.8.15
1077</small></address>
1078</body>
1079</html>
1080