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