Adding docs to all public objects
diff --git a/docs/reference/search/all_0.js b/docs/reference/search/all_0.js
index bba1bfd..766494a 100644
--- a/docs/reference/search/all_0.js
+++ b/docs/reference/search/all_0.js
@@ -8,8 +8,9 @@
   ['assistancesonification',['AssistanceSonification',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba1ce57a0572748beebfc0c664ca1077e7',1,'oboe']]],
   ['assistant',['Assistant',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba9b1363da9503dbd4142c0274a88e8d4b',1,'oboe']]],
   ['audioapi',['AudioApi',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6',1,'oboe']]],
-  ['audiostream',['AudioStream',['../a00036.html',1,'oboe']]],
-  ['audiostreambase',['AudioStreamBase',['../a00040.html',1,'oboe']]],
+  ['audioformat',['AudioFormat',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9',1,'oboe']]],
+  ['audiostream',['AudioStream',['../a00036.html',1,'oboe::AudioStream'],['../a00036.html#a8ebb587a07bf62c864fd62c63b241fd4',1,'oboe::AudioStream::AudioStream()']]],
+  ['audiostreambase',['AudioStreamBase',['../a00040.html',1,'oboe::AudioStreamBase'],['../a00040.html#aa6b103e1b0f808bbc4949d56f0829f98',1,'oboe::AudioStreamBase::AudioStreamBase()']]],
   ['audiostreambuilder',['AudioStreamBuilder',['../a00044.html',1,'oboe']]],
   ['audiostreamcallback',['AudioStreamCallback',['../a00048.html',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_1.js b/docs/reference/search/all_1.js
index 6d06816..9982315 100644
--- a/docs/reference/search/all_1.js
+++ b/docs/reference/search/all_1.js
@@ -2,10 +2,12 @@
 [
   ['calculatelatencymillis',['calculateLatencyMillis',['../a00036.html#ae023cb001f3261d064f423101798d6be',1,'oboe::AudioStream']]],
   ['camcorder',['Camcorder',['../a00032.html#a17f63a064de966efddd5d0335992bc04a6e8ef178769235d18b44fe2bb5ab33fe',1,'oboe']]],
-  ['channelcount',['ChannelCount',['../a00032.html#a522e6806948369987639a0d1df03c029',1,'oboe']]],
+  ['channelcount',['ChannelCount',['../a00052.html#ad5dce538d5963c81bf58350ab730962d',1,'oboe::DefaultStreamValues::ChannelCount()'],['../a00032.html#a522e6806948369987639a0d1df03c029',1,'oboe::ChannelCount()']]],
   ['close',['close',['../a00036.html#ad33a20f0d6792e322b9d8a2bcf14fcf8',1,'oboe::AudioStream']]],
   ['contenttype',['ContentType',['../a00032.html#a07eed38097ed944422063801f8f83406',1,'oboe']]],
+  ['convertfloattopcm16',['convertFloatToPcm16',['../a00032.html#adbda063116feb9fa98a31ee820170060',1,'oboe']]],
   ['convertformattosizeinbytes',['convertFormatToSizeInBytes',['../a00032.html#ac67383a3df0f6e7a51f8415ffd9fdaca',1,'oboe']]],
-  ['converttotext',['convertToText',['../a00032.html#a8d1ae211254cc239019f165b607f4365',1,'oboe']]],
+  ['convertpcm16tofloat',['convertPcm16ToFloat',['../a00032.html#ad17bee42828d13f2ef62a889e175c643',1,'oboe']]],
+  ['converttotext',['convertToText',['../a00032.html#af65aaea3c5d82eee6906664d61c094b3',1,'oboe']]],
   ['createbasedonsign',['createBasedOnSign',['../a00060.html#a2304c6120e2aad8f2189383a98c7b0a7',1,'oboe::ResultWithValue']]]
 ];
diff --git a/docs/reference/search/all_10.js b/docs/reference/search/all_10.js
index 57aa014..2e1db42 100644
--- a/docs/reference/search/all_10.js
+++ b/docs/reference/search/all_10.js
@@ -1,6 +1,7 @@
 var searchData=
 [
-  ['waitforstatechange',['waitForStateChange',['../a00036.html#a0c865a5501f369d959c39d8ab8b46a07',1,'oboe::AudioStream']]],
-  ['waitforstatetransition',['waitForStateTransition',['../a00036.html#a8adbacd6a55a94a532916ab037fba1d6',1,'oboe::AudioStream']]],
-  ['write',['write',['../a00036.html#ab3f6bf8abed87f3804ac4df3472c3670',1,'oboe::AudioStream']]]
+  ['unprocessed',['Unprocessed',['../a00032.html#a17f63a064de966efddd5d0335992bc04acad9424158aefae0af7975901b11d85f',1,'oboe']]],
+  ['unspecified',['Unspecified',['../a00032.html#a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()']]],
+  ['usage',['Usage',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbb',1,'oboe']]],
+  ['usesaaudio',['usesAAudio',['../a00036.html#a15cdaaaa4c1e8da322d6da33334c8147',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/all_11.html b/docs/reference/search/all_11.html
new file mode 100644
index 0000000..b35c8bf
--- /dev/null
+++ b/docs/reference/search/all_11.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/all_11.js b/docs/reference/search/all_11.js
new file mode 100644
index 0000000..e396fc3
--- /dev/null
+++ b/docs/reference/search/all_11.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['value',['value',['../a00060.html#a45f5c99a2c9f8fbaca502276f7ebb434',1,'oboe::ResultWithValue']]],
+  ['version',['Version',['../a00064.html',1,'oboe']]],
+  ['voicecommunication',['VoiceCommunication',['../a00032.html#a17f63a064de966efddd5d0335992bc04a1862e72c9730c448fbec6f61a5d8234d',1,'oboe::VoiceCommunication()'],['../a00032.html#a17f63a064de966efddd5d0335992bc04a5bad8854288c956062ec1d4d7c14fed6',1,'oboe::VoiceCommunication()']]],
+  ['voicecommunicationsignalling',['VoiceCommunicationSignalling',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba404f62633744bf4da0c6a27a2b78ce74',1,'oboe']]],
+  ['voicerecognition',['VoiceRecognition',['../a00032.html#a17f63a064de966efddd5d0335992bc04af6e440b4e9edf49afe18aa4be77be6fc',1,'oboe']]]
+];
diff --git a/docs/reference/search/all_12.html b/docs/reference/search/all_12.html
new file mode 100644
index 0000000..fd26524
--- /dev/null
+++ b/docs/reference/search/all_12.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/all_12.js b/docs/reference/search/all_12.js
new file mode 100644
index 0000000..57aa014
--- /dev/null
+++ b/docs/reference/search/all_12.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['waitforstatechange',['waitForStateChange',['../a00036.html#a0c865a5501f369d959c39d8ab8b46a07',1,'oboe::AudioStream']]],
+  ['waitforstatetransition',['waitForStateTransition',['../a00036.html#a8adbacd6a55a94a532916ab037fba1d6',1,'oboe::AudioStream']]],
+  ['write',['write',['../a00036.html#ab3f6bf8abed87f3804ac4df3472c3670',1,'oboe::AudioStream']]]
+];
diff --git a/docs/reference/search/all_2.js b/docs/reference/search/all_2.js
index 2ade1f5..65acb74 100644
--- a/docs/reference/search/all_2.js
+++ b/docs/reference/search/all_2.js
@@ -1,4 +1,6 @@
 var searchData=
 [
-  ['defaultstreamvalues',['DefaultStreamValues',['../a00052.html',1,'oboe']]]
+  ['datacallbackresult',['DataCallbackResult',['../a00032.html#a9cb0d39766aa6d50132a2daa6e826457',1,'oboe']]],
+  ['defaultstreamvalues',['DefaultStreamValues',['../a00052.html',1,'oboe']]],
+  ['direction',['Direction',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387b',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_3.js b/docs/reference/search/all_3.js
index e11587d..32feb76 100644
--- a/docs/reference/search/all_3.js
+++ b/docs/reference/search/all_3.js
@@ -1,4 +1,5 @@
 var searchData=
 [
+  ['error',['error',['../a00060.html#adfc76ae6db81535c2e82b856975eed41',1,'oboe::ResultWithValue']]],
   ['exclusive',['Exclusive',['../a00032.html#ae3a52556c58387e0cecba01f9abffdffa2ef50b4c466304dc6ac77bac8a779971',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_4.js b/docs/reference/search/all_4.js
index 8c24102..149c048 100644
--- a/docs/reference/search/all_4.js
+++ b/docs/reference/search/all_4.js
@@ -1,19 +1,7 @@
 var searchData=
 [
-  ['game',['Game',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba63d72051e901c069f8aa1b32aa0c43bb',1,'oboe']]],
-  ['generic',['Generic',['../a00032.html#a17f63a064de966efddd5d0335992bc04a0ba6f369e7f8a700c14afe2992290544',1,'oboe']]],
-  ['getaudioapi',['getAudioApi',['../a00036.html#a2b7a3cee7444114843dbdd1fc705f6bb',1,'oboe::AudioStream']]],
-  ['getbuffercapacityinframes',['getBufferCapacityInFrames',['../a00040.html#ab1531253e64aaebe9e9eddbafb9098fc',1,'oboe::AudioStreamBase']]],
-  ['getbuffersizeinframes',['getBufferSizeInFrames',['../a00040.html#af5217ab05bfde0d7637024b599302d0b',1,'oboe::AudioStreamBase']]],
-  ['getchannelcount',['getChannelCount',['../a00040.html#aa0b0a068097efaf967fb235c55383dd8',1,'oboe::AudioStreamBase']]],
-  ['getdirection',['getDirection',['../a00040.html#a6f86f2233a04c5a0b056f0c1c261f1b1',1,'oboe::AudioStreamBase']]],
-  ['getformat',['getFormat',['../a00040.html#ab1e640461d7bf9d596decb913da7ac86',1,'oboe::AudioStreamBase']]],
-  ['getframesperburst',['getFramesPerBurst',['../a00036.html#ac160acb656515814fa6fdd157c131a0a',1,'oboe::AudioStream']]],
-  ['getframespercallback',['getFramesPerCallback',['../a00040.html#a1c133e1949f0814f60bd8bb61346756b',1,'oboe::AudioStreamBase']]],
-  ['getframeswritten',['getFramesWritten',['../a00036.html#ab43dd4074e1de57bac1c3fd111430341',1,'oboe::AudioStream']]],
-  ['getsamplerate',['getSampleRate',['../a00040.html#ae9d32f3e09174bad69e74f147ee33087',1,'oboe::AudioStreamBase']]],
-  ['getsdkversion',['getSdkVersion',['../a00032.html#a54528938e9fccab7ad8947ccf0e409db',1,'oboe']]],
-  ['getstate',['getState',['../a00036.html#a47bb5798275f14d76444283a6b6f35eb',1,'oboe::AudioStream']]],
-  ['getunderlyingstream',['getUnderlyingStream',['../a00036.html#a5458d7130415eb4defe3dbc11d479e2f',1,'oboe::AudioStream']]],
-  ['getxruncount',['getXRunCount',['../a00036.html#ad1a1d3bbf3b348ed92b7ed18ce9cc261',1,'oboe::AudioStream']]]
+  ['firecallback',['fireCallback',['../a00036.html#a0c4fd19b01a4ef750dd9d6ae3a512eda',1,'oboe::AudioStream']]],
+  ['float',['Float',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9a22ae0e2b89e5e3d477f988cc36d3272b',1,'oboe']]],
+  ['flush',['flush',['../a00036.html#a32c25c0333eab3d65ce02275ad4acb3d',1,'oboe::AudioStream']]],
+  ['framesperburst',['FramesPerBurst',['../a00052.html#ab5ea5576699cebc56193f5c297d3e300',1,'oboe::DefaultStreamValues']]]
 ];
diff --git a/docs/reference/search/all_5.js b/docs/reference/search/all_5.js
index 37682de..6c381ed 100644
--- a/docs/reference/search/all_5.js
+++ b/docs/reference/search/all_5.js
@@ -1,7 +1,31 @@
 var searchData=
 [
-  ['inputpreset',['InputPreset',['../a00032.html#a17f63a064de966efddd5d0335992bc04',1,'oboe']]],
-  ['isaaudiorecommended',['isAAudioRecommended',['../a00044.html#a622732bbe5c6577356d749f7dc2108df',1,'oboe::AudioStreamBuilder']]],
-  ['isaaudiosupported',['isAAudioSupported',['../a00044.html#a18e7b5f7554a4c2ca763e35e8117d699',1,'oboe::AudioStreamBuilder']]],
-  ['isxruncountsupported',['isXRunCountSupported',['../a00036.html#a43d8a098440cde28f4ee8bedd6d107c4',1,'oboe::AudioStream']]]
+  ['game',['Game',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba63d72051e901c069f8aa1b32aa0c43bb',1,'oboe']]],
+  ['generic',['Generic',['../a00032.html#a17f63a064de966efddd5d0335992bc04a0ba6f369e7f8a700c14afe2992290544',1,'oboe']]],
+  ['getaudioapi',['getAudioApi',['../a00036.html#a2b7a3cee7444114843dbdd1fc705f6bb',1,'oboe::AudioStream::getAudioApi()'],['../a00044.html#ac9d41811c297fd28bc61833f640bb8d0',1,'oboe::AudioStreamBuilder::getAudioApi()']]],
+  ['getbuffercapacityinframes',['getBufferCapacityInFrames',['../a00040.html#ab1531253e64aaebe9e9eddbafb9098fc',1,'oboe::AudioStreamBase']]],
+  ['getbuffersizeinframes',['getBufferSizeInFrames',['../a00040.html#af5217ab05bfde0d7637024b599302d0b',1,'oboe::AudioStreamBase']]],
+  ['getbytesperframe',['getBytesPerFrame',['../a00036.html#a5c01907a59d5f89a5e4b819fe66b08bc',1,'oboe::AudioStream']]],
+  ['getbytespersample',['getBytesPerSample',['../a00036.html#a44dda61e6e948e49b68f87172f084d62',1,'oboe::AudioStream']]],
+  ['getcallback',['getCallback',['../a00040.html#a1b4a2a191546708da657510c3cd6b797',1,'oboe::AudioStreamBase']]],
+  ['getchannelcount',['getChannelCount',['../a00040.html#aa0b0a068097efaf967fb235c55383dd8',1,'oboe::AudioStreamBase']]],
+  ['getcontenttype',['getContentType',['../a00040.html#ab12e2d068fa87e0553b01a400d96eb82',1,'oboe::AudioStreamBase']]],
+  ['getdeviceid',['getDeviceId',['../a00040.html#a093057d625bc896864b959974c265f21',1,'oboe::AudioStreamBase']]],
+  ['getdirection',['getDirection',['../a00040.html#a6f86f2233a04c5a0b056f0c1c261f1b1',1,'oboe::AudioStreamBase']]],
+  ['getformat',['getFormat',['../a00040.html#ab1e640461d7bf9d596decb913da7ac86',1,'oboe::AudioStreamBase']]],
+  ['getframesperburst',['getFramesPerBurst',['../a00036.html#ac160acb656515814fa6fdd157c131a0a',1,'oboe::AudioStream']]],
+  ['getframespercallback',['getFramesPerCallback',['../a00040.html#a1c133e1949f0814f60bd8bb61346756b',1,'oboe::AudioStreamBase']]],
+  ['getframesread',['getFramesRead',['../a00036.html#aeebfc59abd978cd6dff07c16cfe266df',1,'oboe::AudioStream']]],
+  ['getframeswritten',['getFramesWritten',['../a00036.html#ab43dd4074e1de57bac1c3fd111430341',1,'oboe::AudioStream']]],
+  ['getinputpreset',['getInputPreset',['../a00040.html#a5c773b93b8aa38191c7199cab023428a',1,'oboe::AudioStreamBase']]],
+  ['getperformancemode',['getPerformanceMode',['../a00040.html#a2ddb935de0e24dd7ae8e2cfbecac9fdc',1,'oboe::AudioStreamBase']]],
+  ['getsamplerate',['getSampleRate',['../a00040.html#ae9d32f3e09174bad69e74f147ee33087',1,'oboe::AudioStreamBase']]],
+  ['getsdkversion',['getSdkVersion',['../a00032.html#a54528938e9fccab7ad8947ccf0e409db',1,'oboe']]],
+  ['getsessionid',['getSessionId',['../a00040.html#aa3c502ce09bbad7690a2dd6acaf8892e',1,'oboe::AudioStreamBase']]],
+  ['getsharingmode',['getSharingMode',['../a00040.html#a1fb033fc963f971bd1aa8f6707e49b41',1,'oboe::AudioStreamBase']]],
+  ['getstate',['getState',['../a00036.html#a47bb5798275f14d76444283a6b6f35eb',1,'oboe::AudioStream']]],
+  ['gettimestamp',['getTimestamp',['../a00036.html#a1d7cf4e43fb9d7b31857a90d9eceee6d',1,'oboe::AudioStream']]],
+  ['getunderlyingstream',['getUnderlyingStream',['../a00036.html#a5458d7130415eb4defe3dbc11d479e2f',1,'oboe::AudioStream']]],
+  ['getusage',['getUsage',['../a00040.html#a0bcfb2f8bd11c92b541fd910da9af397',1,'oboe::AudioStreamBase']]],
+  ['getxruncount',['getXRunCount',['../a00036.html#ad1a1d3bbf3b348ed92b7ed18ce9cc261',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/all_6.js b/docs/reference/search/all_6.js
index 14dda9c..c5ee922 100644
--- a/docs/reference/search/all_6.js
+++ b/docs/reference/search/all_6.js
@@ -1,4 +1,13 @@
 var searchData=
 [
-  ['latencytuner',['LatencyTuner',['../a00056.html',1,'oboe']]]
+  ['i16',['I16',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9abcd774f891b5f9df7099f3ea75dadf8d',1,'oboe']]],
+  ['incrementframesread',['incrementFramesRead',['../a00036.html#a81568482a217b314498e2501210758d7',1,'oboe::AudioStream']]],
+  ['incrementframeswritten',['incrementFramesWritten',['../a00036.html#ad6b4c63f6ed1ecb509f7b80352a9c0bd',1,'oboe::AudioStream']]],
+  ['input',['Input',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387ba324118a6721dd6b8a9b9f4e327df2bf5',1,'oboe']]],
+  ['inputpreset',['InputPreset',['../a00032.html#a17f63a064de966efddd5d0335992bc04',1,'oboe']]],
+  ['invalid',['Invalid',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9a4bbb8f967da6d1a610596d7257179c2b',1,'oboe']]],
+  ['isaaudiorecommended',['isAAudioRecommended',['../a00044.html#a622732bbe5c6577356d749f7dc2108df',1,'oboe::AudioStreamBuilder']]],
+  ['isaaudiosupported',['isAAudioSupported',['../a00044.html#a18e7b5f7554a4c2ca763e35e8117d699',1,'oboe::AudioStreamBuilder']]],
+  ['isplaying',['isPlaying',['../a00036.html#ad5260e2cc71108b1b2e694bf6162279f',1,'oboe::AudioStream']]],
+  ['isxruncountsupported',['isXRunCountSupported',['../a00036.html#a43d8a098440cde28f4ee8bedd6d107c4',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/all_7.js b/docs/reference/search/all_7.js
index 040b1d1..980d328 100644
--- a/docs/reference/search/all_7.js
+++ b/docs/reference/search/all_7.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['major',['Major',['../a00064.html#a270f2e92582d5187be339eeda8e2b276',1,'oboe::Version']]],
-  ['media',['Media',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba3b563524fdb17b4a86590470d40bef74',1,'oboe']]],
-  ['minor',['Minor',['../a00064.html#ae460bb95e3a9099696205a35fffb5469',1,'oboe::Version']]],
-  ['mono',['Mono',['../a00032.html#a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79',1,'oboe']]],
-  ['movie',['Movie',['../a00032.html#a07eed38097ed944422063801f8f83406a8b3b366178c2b7b1688bca6cd33758b1',1,'oboe']]],
-  ['music',['Music',['../a00032.html#a07eed38097ed944422063801f8f83406ac156fcc7b29059305cef26f3904d4517',1,'oboe']]]
+  ['kdefaulttimeoutnanos',['kDefaultTimeoutNanos',['../a00032.html#aab8f5f081a8b2147e16ec920347c1b5c',1,'oboe']]],
+  ['kmillispersecond',['kMillisPerSecond',['../a00032.html#ad1bb9f5626cec20d3a052a8721959873',1,'oboe']]],
+  ['knanospermicrosecond',['kNanosPerMicrosecond',['../a00032.html#aedef0759ae3622b6f0324799bcbdebf0',1,'oboe']]],
+  ['knanospermillisecond',['kNanosPerMillisecond',['../a00032.html#a831e887150474c087170679eaca8672b',1,'oboe']]],
+  ['knanospersecond',['kNanosPerSecond',['../a00032.html#a5948466b593c4eab65f7025846a39f51',1,'oboe']]],
+  ['kunspecified',['kUnspecified',['../a00032.html#ab0772052200184e514082eaa89be7905',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_8.js b/docs/reference/search/all_8.js
index daaac4a..435842f 100644
--- a/docs/reference/search/all_8.js
+++ b/docs/reference/search/all_8.js
@@ -1,8 +1,5 @@
 var searchData=
 [
-  ['none',['None',['../a00032.html#a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f',1,'oboe']]],
-  ['notification',['Notification',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba96d008db67fc0b5551a926842bbb6a71',1,'oboe']]],
-  ['notificationevent',['NotificationEvent',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba089240b5380dbd12f1eac0ec258a3b2f',1,'oboe']]],
-  ['notificationringtone',['NotificationRingtone',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba4e7a4b08274d472394b740a20d3bbdaf',1,'oboe']]],
-  ['number',['Number',['../a00064.html#ac579661e79bcee45dc676d4647891de0',1,'oboe::Version']]]
+  ['latencytuner',['LatencyTuner',['../a00056.html',1,'oboe::LatencyTuner'],['../a00056.html#a0263b9a55825c0a403653b2b508073ea',1,'oboe::LatencyTuner::LatencyTuner()']]],
+  ['lowlatency',['LowLatency',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fdea611907b5ab1865515c35357efa41a9b9',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_9.js b/docs/reference/search/all_9.js
index 56b6df0..2b89aac 100644
--- a/docs/reference/search/all_9.js
+++ b/docs/reference/search/all_9.js
@@ -1,14 +1,28 @@
 var searchData=
 [
-  ['oboe',['oboe',['../a00032.html',1,'']]],
-  ['onaudioready',['onAudioReady',['../a00048.html#af3a7c44f0254abe6e5e5bb566e2317df',1,'oboe::AudioStreamCallback']]],
-  ['ondefaultcallback',['onDefaultCallback',['../a00036.html#abda7ae8e6832030572785de3964ed848',1,'oboe::AudioStream']]],
-  ['onerrorafterclose',['onErrorAfterClose',['../a00048.html#a7089c5e18a80cba89eb3f4fe2341aeba',1,'oboe::AudioStreamCallback']]],
-  ['onerrorbeforeclose',['onErrorBeforeClose',['../a00048.html#a2407ff537a60301fd161bd2c36913bfd',1,'oboe::AudioStreamCallback']]],
-  ['open',['open',['../a00036.html#a686c6ce8a29051c858fd1de386805dc6',1,'oboe::AudioStream']]],
-  ['opensles',['OpenSLES',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b',1,'oboe']]],
-  ['openstream',['openStream',['../a00044.html#a86b94cfa47729bef2e04dce1a9086074',1,'oboe::AudioStreamBuilder']]],
-  ['operator_20bool',['operator bool',['../a00060.html#ae32b1953b777af7d1d0c94862ca39986',1,'oboe::ResultWithValue']]],
-  ['operator_20result',['operator Result',['../a00060.html#af62107817c0bc76047e6b655a78504ba',1,'oboe::ResultWithValue']]],
-  ['operator_21',['operator!',['../a00060.html#a2dbc8b09ead8b073a78af95b4b0186e3',1,'oboe::ResultWithValue']]]
+  ['major',['Major',['../a00064.html#a270f2e92582d5187be339eeda8e2b276',1,'oboe::Version']]],
+  ['mbuffercapacityinframes',['mBufferCapacityInFrames',['../a00040.html#ac81d4719b350f8138aad1af38f0873b6',1,'oboe::AudioStreamBase']]],
+  ['mbuffersizeinframes',['mBufferSizeInFrames',['../a00040.html#a3b65595d26d1eae1b8ce9925a5b98f6a',1,'oboe::AudioStreamBase']]],
+  ['mchannelcount',['mChannelCount',['../a00040.html#a5ff460bac9d14dfeac4eeddfcbb6e206',1,'oboe::AudioStreamBase']]],
+  ['mcontenttype',['mContentType',['../a00040.html#a5f8f0e5add381b841856de80ea4cdb2b',1,'oboe::AudioStreamBase']]],
+  ['mdeviceid',['mDeviceId',['../a00040.html#a23dafa12fb1a6242b088ebd5a52798c8',1,'oboe::AudioStreamBase']]],
+  ['mdirection',['mDirection',['../a00040.html#a26e9294721561d3b16bcaeec5faf4880',1,'oboe::AudioStreamBase']]],
+  ['media',['Media',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba3b563524fdb17b4a86590470d40bef74',1,'oboe']]],
+  ['mformat',['mFormat',['../a00040.html#a7869f04836c2c2bdc10c7309ad4b8e09',1,'oboe::AudioStreamBase']]],
+  ['mframesperburst',['mFramesPerBurst',['../a00040.html#a54061319ed348329a29d883a5de2482e',1,'oboe::AudioStreamBase']]],
+  ['mframespercallback',['mFramesPerCallback',['../a00040.html#a3962eb94420ad0ecea70029236001899',1,'oboe::AudioStreamBase']]],
+  ['mframesread',['mFramesRead',['../a00036.html#a2b9124ba3b0f564fa58b0651438250e7',1,'oboe::AudioStream']]],
+  ['mframeswritten',['mFramesWritten',['../a00036.html#aa88d2a712b91a8b763f2721d78480ba8',1,'oboe::AudioStream']]],
+  ['minor',['Minor',['../a00064.html#ae460bb95e3a9099696205a35fffb5469',1,'oboe::Version']]],
+  ['minputpreset',['mInputPreset',['../a00040.html#a1e5d4f5b30c4cc36f81ffd858cc00589',1,'oboe::AudioStreamBase']]],
+  ['mnativeformat',['mNativeFormat',['../a00036.html#a07ed6b5e5bd4bc276bc1e1fc08e51d60',1,'oboe::AudioStream']]],
+  ['mono',['Mono',['../a00032.html#a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79',1,'oboe']]],
+  ['movie',['Movie',['../a00032.html#a07eed38097ed944422063801f8f83406a8b3b366178c2b7b1688bca6cd33758b1',1,'oboe']]],
+  ['mperformancemode',['mPerformanceMode',['../a00040.html#ab99671c2d0552557e75dc7b4afe91765',1,'oboe::AudioStreamBase']]],
+  ['msamplerate',['mSampleRate',['../a00040.html#a998885bb6c4f37e145f4626ad4177dea',1,'oboe::AudioStreamBase']]],
+  ['msessionid',['mSessionId',['../a00040.html#abe1c1e9cada1ced9b5c1504ac9b07737',1,'oboe::AudioStreamBase']]],
+  ['msharingmode',['mSharingMode',['../a00040.html#ae9187492b679c97a0963e264954be473',1,'oboe::AudioStreamBase']]],
+  ['mstreamcallback',['mStreamCallback',['../a00040.html#ae3f72318212dd9977d7fa0ced92c91f4',1,'oboe::AudioStreamBase']]],
+  ['musage',['mUsage',['../a00040.html#a5b518e82f39c9fcbd7050fd66adb253c',1,'oboe::AudioStreamBase']]],
+  ['music',['Music',['../a00032.html#a07eed38097ed944422063801f8f83406ac156fcc7b29059305cef26f3904d4517',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_a.js b/docs/reference/search/all_a.js
index 3e251a9..580452f 100644
--- a/docs/reference/search/all_a.js
+++ b/docs/reference/search/all_a.js
@@ -1,4 +1,8 @@
 var searchData=
 [
-  ['patch',['Patch',['../a00064.html#a690110f2b3e887892da8f29ab5c057b2',1,'oboe::Version']]]
+  ['none',['None',['../a00032.html#a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f',1,'oboe::None()'],['../a00032.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754',1,'oboe::None()']]],
+  ['notification',['Notification',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba96d008db67fc0b5551a926842bbb6a71',1,'oboe']]],
+  ['notificationevent',['NotificationEvent',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba089240b5380dbd12f1eac0ec258a3b2f',1,'oboe']]],
+  ['notificationringtone',['NotificationRingtone',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba4e7a4b08274d472394b740a20d3bbdaf',1,'oboe']]],
+  ['number',['Number',['../a00064.html#ac579661e79bcee45dc676d4647891de0',1,'oboe::Version']]]
 ];
diff --git a/docs/reference/search/all_b.js b/docs/reference/search/all_b.js
index 9997821..d9cc432 100644
--- a/docs/reference/search/all_b.js
+++ b/docs/reference/search/all_b.js
@@ -1,5 +1,17 @@
 var searchData=
 [
-  ['requestreset',['requestReset',['../a00056.html#a6c0142e08dc65eda8f758b4794450867',1,'oboe::LatencyTuner']]],
-  ['resultwithvalue',['ResultWithValue',['../a00060.html',1,'oboe']]]
+  ['oboe',['oboe',['../a00032.html',1,'']]],
+  ['onaudioready',['onAudioReady',['../a00048.html#af3a7c44f0254abe6e5e5bb566e2317df',1,'oboe::AudioStreamCallback']]],
+  ['ondefaultcallback',['onDefaultCallback',['../a00036.html#abda7ae8e6832030572785de3964ed848',1,'oboe::AudioStream']]],
+  ['onerrorafterclose',['onErrorAfterClose',['../a00048.html#a7089c5e18a80cba89eb3f4fe2341aeba',1,'oboe::AudioStreamCallback']]],
+  ['onerrorbeforeclose',['onErrorBeforeClose',['../a00048.html#a2407ff537a60301fd161bd2c36913bfd',1,'oboe::AudioStreamCallback']]],
+  ['open',['open',['../a00036.html#a686c6ce8a29051c858fd1de386805dc6',1,'oboe::AudioStream']]],
+  ['opensles',['OpenSLES',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b',1,'oboe']]],
+  ['openstream',['openStream',['../a00044.html#a86b94cfa47729bef2e04dce1a9086074',1,'oboe::AudioStreamBuilder']]],
+  ['operator_20bool',['operator bool',['../a00060.html#ae32b1953b777af7d1d0c94862ca39986',1,'oboe::ResultWithValue']]],
+  ['operator_20result',['operator Result',['../a00060.html#af62107817c0bc76047e6b655a78504ba',1,'oboe::ResultWithValue']]],
+  ['operator_21',['operator!',['../a00060.html#a2dbc8b09ead8b073a78af95b4b0186e3',1,'oboe::ResultWithValue']]],
+  ['operator_3c_3c',['operator&lt;&lt;',['../a00032.html#aa403103686222502d1cfc47bafc10aeb',1,'oboe']]],
+  ['operator_3d',['operator=',['../a00040.html#aa9c987a59555d7a60b9f7a63f4afc7fc',1,'oboe::AudioStreamBase']]],
+  ['output',['Output',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387ba29c2c02a361c9d7028472e5d92cd4a54',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_c.js b/docs/reference/search/all_c.js
index ab09002..25016d7 100644
--- a/docs/reference/search/all_c.js
+++ b/docs/reference/search/all_c.js
@@ -1,26 +1,7 @@
 var searchData=
 [
-  ['samplerate',['SampleRate',['../a00052.html#a46a5d9a653f2153f618cadcab764e1b1',1,'oboe::DefaultStreamValues']]],
-  ['sessionid',['SessionId',['../a00032.html#a5752250c10e96179e3618d7f72937eaf',1,'oboe']]],
-  ['setaudioapi',['setAudioApi',['../a00044.html#a38c6d6c5e718df1e3ac69daaac47c391',1,'oboe::AudioStreamBuilder']]],
-  ['setbuffercapacityinframes',['setBufferCapacityInFrames',['../a00044.html#abaff480867af51ca0899bfa6fd7cc3ef',1,'oboe::AudioStreamBuilder']]],
-  ['setbuffersizeinframes',['setBufferSizeInFrames',['../a00036.html#ac93b18e18487e809151f63ec3c6228bb',1,'oboe::AudioStream']]],
-  ['setcallback',['setCallback',['../a00044.html#a698cefa9af73bc97c020c004821fccbd',1,'oboe::AudioStreamBuilder']]],
-  ['setchannelcount',['setChannelCount',['../a00044.html#a075d10291e1f998d90c2f73ef767b5a7',1,'oboe::AudioStreamBuilder']]],
-  ['setcontenttype',['setContentType',['../a00044.html#a6a17bafc217c2b624179fbbf77fe4468',1,'oboe::AudioStreamBuilder']]],
-  ['setdeviceid',['setDeviceId',['../a00044.html#af36ddcd00686a9e1de661bdac0685a8e',1,'oboe::AudioStreamBuilder']]],
-  ['setdirection',['setDirection',['../a00044.html#ab3fbd47b06197619c26393637e26354c',1,'oboe::AudioStreamBuilder']]],
-  ['setformat',['setFormat',['../a00044.html#aa2e1d2d73cd6c2eb9f349bf2fe5f6515',1,'oboe::AudioStreamBuilder']]],
-  ['setframespercallback',['setFramesPerCallback',['../a00044.html#a3f397821f61eabaeedaf31064c859a54',1,'oboe::AudioStreamBuilder']]],
-  ['setinputpreset',['setInputPreset',['../a00044.html#a144a3d095fd668210282f1a91f23e1f0',1,'oboe::AudioStreamBuilder']]],
-  ['setperformancemode',['setPerformanceMode',['../a00044.html#a6cd1d65612e844e59da71a68ea0ab3ee',1,'oboe::AudioStreamBuilder']]],
-  ['setsamplerate',['setSampleRate',['../a00044.html#a30ef3d5f51d56a9f980dc09600ed139d',1,'oboe::AudioStreamBuilder']]],
-  ['setsessionid',['setSessionId',['../a00044.html#a54c1651bdbe089d0d714af499e8a5f1d',1,'oboe::AudioStreamBuilder']]],
-  ['setsharingmode',['setSharingMode',['../a00044.html#a3e991742acbbfb6fe5ebcf592c478654',1,'oboe::AudioStreamBuilder']]],
-  ['setusage',['setUsage',['../a00044.html#a593255a2f5eb972665775cfc5bc58f6a',1,'oboe::AudioStreamBuilder']]],
-  ['shared',['Shared',['../a00032.html#ae3a52556c58387e0cecba01f9abffdffaa6156ea9d66fef24e87e841fbabf7cca',1,'oboe']]],
-  ['sharingmode',['SharingMode',['../a00032.html#ae3a52556c58387e0cecba01f9abffdff',1,'oboe']]],
-  ['sonification',['Sonification',['../a00032.html#a07eed38097ed944422063801f8f83406a0885eef555037e94a7cf39fe683c2799',1,'oboe']]],
-  ['speech',['Speech',['../a00032.html#a07eed38097ed944422063801f8f83406a3dc48a4b4619aa4edd1da7b937b4dcd1',1,'oboe']]],
-  ['stereo',['Stereo',['../a00032.html#a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba',1,'oboe']]]
+  ['patch',['Patch',['../a00064.html#a690110f2b3e887892da8f29ab5c057b2',1,'oboe::Version']]],
+  ['pause',['pause',['../a00036.html#a04f29836748a8e5842aef2be200022ad',1,'oboe::AudioStream']]],
+  ['performancemode',['PerformanceMode',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fde',1,'oboe']]],
+  ['powersaving',['PowerSaving',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fdeabbad080463ed11f9d77797c04aa1e5b1',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_d.js b/docs/reference/search/all_d.js
index d703e14..f6db3d0 100644
--- a/docs/reference/search/all_d.js
+++ b/docs/reference/search/all_d.js
@@ -1,5 +1,11 @@
 var searchData=
 [
-  ['text',['Text',['../a00064.html#a2c86e578b827fbca5f40c460a7754503',1,'oboe::Version']]],
-  ['tune',['tune',['../a00056.html#ad2be756965e6a9af3114008eda892174',1,'oboe::LatencyTuner']]]
+  ['read',['read',['../a00036.html#acbf3933af829313d281b5455053338da',1,'oboe::AudioStream']]],
+  ['requestflush',['requestFlush',['../a00036.html#a6bd5d633ff999e4da1faf3cd949aa602',1,'oboe::AudioStream']]],
+  ['requestpause',['requestPause',['../a00036.html#a7f18bb3cc5490fd7fbc1f6da63c730f6',1,'oboe::AudioStream']]],
+  ['requestreset',['requestReset',['../a00056.html#a6c0142e08dc65eda8f758b4794450867',1,'oboe::LatencyTuner']]],
+  ['requeststart',['requestStart',['../a00036.html#a3c484e314dee8dfed1d419f487b5d601',1,'oboe::AudioStream']]],
+  ['requeststop',['requestStop',['../a00036.html#a820e634f741e6b5efdcef8104cecb919',1,'oboe::AudioStream']]],
+  ['result',['Result',['../a00032.html#a5e32586b07bf64da91f99fc33c043cb1',1,'oboe']]],
+  ['resultwithvalue',['ResultWithValue',['../a00060.html',1,'oboe::ResultWithValue&lt; T &gt;'],['../a00060.html#aae75caa0d16a9e23a012f77fb50c5927',1,'oboe::ResultWithValue::ResultWithValue(oboe::Result error)'],['../a00060.html#a600309367db58d71f0ec16e90f7ebea5',1,'oboe::ResultWithValue::ResultWithValue(T value)']]]
 ];
diff --git a/docs/reference/search/all_e.js b/docs/reference/search/all_e.js
index 58219ff..8d4ce7d 100644
--- a/docs/reference/search/all_e.js
+++ b/docs/reference/search/all_e.js
@@ -1,7 +1,30 @@
 var searchData=
 [
-  ['unprocessed',['Unprocessed',['../a00032.html#a17f63a064de966efddd5d0335992bc04acad9424158aefae0af7975901b11d85f',1,'oboe']]],
-  ['unspecified',['Unspecified',['../a00032.html#a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()']]],
-  ['usage',['Usage',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbb',1,'oboe']]],
-  ['usesaaudio',['usesAAudio',['../a00036.html#a15cdaaaa4c1e8da322d6da33334c8147',1,'oboe::AudioStream']]]
+  ['samplerate',['SampleRate',['../a00052.html#a46a5d9a653f2153f618cadcab764e1b1',1,'oboe::DefaultStreamValues']]],
+  ['sessionid',['SessionId',['../a00032.html#a5752250c10e96179e3618d7f72937eaf',1,'oboe']]],
+  ['setaudioapi',['setAudioApi',['../a00044.html#a38c6d6c5e718df1e3ac69daaac47c391',1,'oboe::AudioStreamBuilder']]],
+  ['setbuffercapacityinframes',['setBufferCapacityInFrames',['../a00044.html#abaff480867af51ca0899bfa6fd7cc3ef',1,'oboe::AudioStreamBuilder']]],
+  ['setbuffersizeinframes',['setBufferSizeInFrames',['../a00036.html#ac93b18e18487e809151f63ec3c6228bb',1,'oboe::AudioStream']]],
+  ['setcallback',['setCallback',['../a00044.html#a698cefa9af73bc97c020c004821fccbd',1,'oboe::AudioStreamBuilder']]],
+  ['setchannelcount',['setChannelCount',['../a00044.html#a075d10291e1f998d90c2f73ef767b5a7',1,'oboe::AudioStreamBuilder']]],
+  ['setcontenttype',['setContentType',['../a00044.html#a6a17bafc217c2b624179fbbf77fe4468',1,'oboe::AudioStreamBuilder']]],
+  ['setdeviceid',['setDeviceId',['../a00044.html#af36ddcd00686a9e1de661bdac0685a8e',1,'oboe::AudioStreamBuilder']]],
+  ['setdirection',['setDirection',['../a00044.html#ab3fbd47b06197619c26393637e26354c',1,'oboe::AudioStreamBuilder']]],
+  ['setformat',['setFormat',['../a00044.html#aa2e1d2d73cd6c2eb9f349bf2fe5f6515',1,'oboe::AudioStreamBuilder']]],
+  ['setframespercallback',['setFramesPerCallback',['../a00044.html#a3f397821f61eabaeedaf31064c859a54',1,'oboe::AudioStreamBuilder']]],
+  ['setinputpreset',['setInputPreset',['../a00044.html#a144a3d095fd668210282f1a91f23e1f0',1,'oboe::AudioStreamBuilder']]],
+  ['setnativeformat',['setNativeFormat',['../a00036.html#ab01c37fca9110e916a482a909f5cc82d',1,'oboe::AudioStream']]],
+  ['setperformancemode',['setPerformanceMode',['../a00044.html#a6cd1d65612e844e59da71a68ea0ab3ee',1,'oboe::AudioStreamBuilder']]],
+  ['setsamplerate',['setSampleRate',['../a00044.html#a30ef3d5f51d56a9f980dc09600ed139d',1,'oboe::AudioStreamBuilder']]],
+  ['setsessionid',['setSessionId',['../a00044.html#a54c1651bdbe089d0d714af499e8a5f1d',1,'oboe::AudioStreamBuilder']]],
+  ['setsharingmode',['setSharingMode',['../a00044.html#a3e991742acbbfb6fe5ebcf592c478654',1,'oboe::AudioStreamBuilder']]],
+  ['setusage',['setUsage',['../a00044.html#a593255a2f5eb972665775cfc5bc58f6a',1,'oboe::AudioStreamBuilder']]],
+  ['shared',['Shared',['../a00032.html#ae3a52556c58387e0cecba01f9abffdffaa6156ea9d66fef24e87e841fbabf7cca',1,'oboe']]],
+  ['sharingmode',['SharingMode',['../a00032.html#ae3a52556c58387e0cecba01f9abffdff',1,'oboe']]],
+  ['sonification',['Sonification',['../a00032.html#a07eed38097ed944422063801f8f83406a0885eef555037e94a7cf39fe683c2799',1,'oboe']]],
+  ['speech',['Speech',['../a00032.html#a07eed38097ed944422063801f8f83406a3dc48a4b4619aa4edd1da7b937b4dcd1',1,'oboe']]],
+  ['start',['start',['../a00036.html#af04f03eb6b64b564f1c4401688987d21',1,'oboe::AudioStream']]],
+  ['stereo',['Stereo',['../a00032.html#a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba',1,'oboe']]],
+  ['stop',['stop',['../a00036.html#aec093859d42f0470c884edd1e976d9f3',1,'oboe::AudioStream']]],
+  ['streamstate',['StreamState',['../a00032.html#a7fd7bd0828b61e3b3097e33dc90ac123',1,'oboe']]]
 ];
diff --git a/docs/reference/search/all_f.js b/docs/reference/search/all_f.js
index b372964..d703e14 100644
--- a/docs/reference/search/all_f.js
+++ b/docs/reference/search/all_f.js
@@ -1,7 +1,5 @@
 var searchData=
 [
-  ['version',['Version',['../a00064.html',1,'oboe']]],
-  ['voicecommunication',['VoiceCommunication',['../a00032.html#a17f63a064de966efddd5d0335992bc04a1862e72c9730c448fbec6f61a5d8234d',1,'oboe::VoiceCommunication()'],['../a00032.html#a17f63a064de966efddd5d0335992bc04a5bad8854288c956062ec1d4d7c14fed6',1,'oboe::VoiceCommunication()']]],
-  ['voicecommunicationsignalling',['VoiceCommunicationSignalling',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba404f62633744bf4da0c6a27a2b78ce74',1,'oboe']]],
-  ['voicerecognition',['VoiceRecognition',['../a00032.html#a17f63a064de966efddd5d0335992bc04af6e440b4e9edf49afe18aa4be77be6fc',1,'oboe']]]
+  ['text',['Text',['../a00064.html#a2c86e578b827fbca5f40c460a7754503',1,'oboe::Version']]],
+  ['tune',['tune',['../a00056.html#ad2be756965e6a9af3114008eda892174',1,'oboe::LatencyTuner']]]
 ];
diff --git a/docs/reference/search/enums_0.js b/docs/reference/search/enums_0.js
index d10a8d4..7c83433 100644
--- a/docs/reference/search/enums_0.js
+++ b/docs/reference/search/enums_0.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['audioapi',['AudioApi',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6',1,'oboe']]]
+  ['audioapi',['AudioApi',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6',1,'oboe']]],
+  ['audioformat',['AudioFormat',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enums_2.js b/docs/reference/search/enums_2.js
index 7d4262f..294a8c8 100644
--- a/docs/reference/search/enums_2.js
+++ b/docs/reference/search/enums_2.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['inputpreset',['InputPreset',['../a00032.html#a17f63a064de966efddd5d0335992bc04',1,'oboe']]]
+  ['datacallbackresult',['DataCallbackResult',['../a00032.html#a9cb0d39766aa6d50132a2daa6e826457',1,'oboe']]],
+  ['direction',['Direction',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387b',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enums_3.js b/docs/reference/search/enums_3.js
index 8f93795..7d4262f 100644
--- a/docs/reference/search/enums_3.js
+++ b/docs/reference/search/enums_3.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['sessionid',['SessionId',['../a00032.html#a5752250c10e96179e3618d7f72937eaf',1,'oboe']]],
-  ['sharingmode',['SharingMode',['../a00032.html#ae3a52556c58387e0cecba01f9abffdff',1,'oboe']]]
+  ['inputpreset',['InputPreset',['../a00032.html#a17f63a064de966efddd5d0335992bc04',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enums_4.js b/docs/reference/search/enums_4.js
index 6936889..dc7790e 100644
--- a/docs/reference/search/enums_4.js
+++ b/docs/reference/search/enums_4.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['usage',['Usage',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbb',1,'oboe']]]
+  ['performancemode',['PerformanceMode',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fde',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enums_5.html b/docs/reference/search/enums_5.html
new file mode 100644
index 0000000..3b86395
--- /dev/null
+++ b/docs/reference/search/enums_5.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enums_5.js b/docs/reference/search/enums_5.js
new file mode 100644
index 0000000..9e6d033
--- /dev/null
+++ b/docs/reference/search/enums_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['result',['Result',['../a00032.html#a5e32586b07bf64da91f99fc33c043cb1',1,'oboe']]]
+];
diff --git a/docs/reference/search/enums_6.html b/docs/reference/search/enums_6.html
new file mode 100644
index 0000000..acd7a54
--- /dev/null
+++ b/docs/reference/search/enums_6.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enums_6.js b/docs/reference/search/enums_6.js
new file mode 100644
index 0000000..ca162d2
--- /dev/null
+++ b/docs/reference/search/enums_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['sessionid',['SessionId',['../a00032.html#a5752250c10e96179e3618d7f72937eaf',1,'oboe']]],
+  ['sharingmode',['SharingMode',['../a00032.html#ae3a52556c58387e0cecba01f9abffdff',1,'oboe']]],
+  ['streamstate',['StreamState',['../a00032.html#a7fd7bd0828b61e3b3097e33dc90ac123',1,'oboe']]]
+];
diff --git a/docs/reference/search/enums_7.html b/docs/reference/search/enums_7.html
new file mode 100644
index 0000000..ee24b45
--- /dev/null
+++ b/docs/reference/search/enums_7.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enums_7.js b/docs/reference/search/enums_7.js
new file mode 100644
index 0000000..6936889
--- /dev/null
+++ b/docs/reference/search/enums_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['usage',['Usage',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbb',1,'oboe']]]
+];
diff --git a/docs/reference/search/enumvalues_3.js b/docs/reference/search/enumvalues_3.js
index 3f872d7..d9a33bc 100644
--- a/docs/reference/search/enumvalues_3.js
+++ b/docs/reference/search/enumvalues_3.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['game',['Game',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba63d72051e901c069f8aa1b32aa0c43bb',1,'oboe']]],
-  ['generic',['Generic',['../a00032.html#a17f63a064de966efddd5d0335992bc04a0ba6f369e7f8a700c14afe2992290544',1,'oboe']]]
+  ['float',['Float',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9a22ae0e2b89e5e3d477f988cc36d3272b',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_4.js b/docs/reference/search/enumvalues_4.js
index 50ea809..3f872d7 100644
--- a/docs/reference/search/enumvalues_4.js
+++ b/docs/reference/search/enumvalues_4.js
@@ -1,7 +1,5 @@
 var searchData=
 [
-  ['media',['Media',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba3b563524fdb17b4a86590470d40bef74',1,'oboe']]],
-  ['mono',['Mono',['../a00032.html#a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79',1,'oboe']]],
-  ['movie',['Movie',['../a00032.html#a07eed38097ed944422063801f8f83406a8b3b366178c2b7b1688bca6cd33758b1',1,'oboe']]],
-  ['music',['Music',['../a00032.html#a07eed38097ed944422063801f8f83406ac156fcc7b29059305cef26f3904d4517',1,'oboe']]]
+  ['game',['Game',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba63d72051e901c069f8aa1b32aa0c43bb',1,'oboe']]],
+  ['generic',['Generic',['../a00032.html#a17f63a064de966efddd5d0335992bc04a0ba6f369e7f8a700c14afe2992290544',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_5.js b/docs/reference/search/enumvalues_5.js
index 30728ae..9f70d07 100644
--- a/docs/reference/search/enumvalues_5.js
+++ b/docs/reference/search/enumvalues_5.js
@@ -1,7 +1,6 @@
 var searchData=
 [
-  ['none',['None',['../a00032.html#a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f',1,'oboe']]],
-  ['notification',['Notification',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba96d008db67fc0b5551a926842bbb6a71',1,'oboe']]],
-  ['notificationevent',['NotificationEvent',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba089240b5380dbd12f1eac0ec258a3b2f',1,'oboe']]],
-  ['notificationringtone',['NotificationRingtone',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba4e7a4b08274d472394b740a20d3bbdaf',1,'oboe']]]
+  ['i16',['I16',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9abcd774f891b5f9df7099f3ea75dadf8d',1,'oboe']]],
+  ['input',['Input',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387ba324118a6721dd6b8a9b9f4e327df2bf5',1,'oboe']]],
+  ['invalid',['Invalid',['../a00032.html#a58191d1a396041246bd4e0a87dbfdec9a4bbb8f967da6d1a610596d7257179c2b',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_6.js b/docs/reference/search/enumvalues_6.js
index 9a1508f..9c54de8 100644
--- a/docs/reference/search/enumvalues_6.js
+++ b/docs/reference/search/enumvalues_6.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['opensles',['OpenSLES',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b',1,'oboe']]]
+  ['lowlatency',['LowLatency',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fdea611907b5ab1865515c35357efa41a9b9',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_7.js b/docs/reference/search/enumvalues_7.js
index 04f3bc4..50ea809 100644
--- a/docs/reference/search/enumvalues_7.js
+++ b/docs/reference/search/enumvalues_7.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['shared',['Shared',['../a00032.html#ae3a52556c58387e0cecba01f9abffdffaa6156ea9d66fef24e87e841fbabf7cca',1,'oboe']]],
-  ['sonification',['Sonification',['../a00032.html#a07eed38097ed944422063801f8f83406a0885eef555037e94a7cf39fe683c2799',1,'oboe']]],
-  ['speech',['Speech',['../a00032.html#a07eed38097ed944422063801f8f83406a3dc48a4b4619aa4edd1da7b937b4dcd1',1,'oboe']]],
-  ['stereo',['Stereo',['../a00032.html#a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba',1,'oboe']]]
+  ['media',['Media',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba3b563524fdb17b4a86590470d40bef74',1,'oboe']]],
+  ['mono',['Mono',['../a00032.html#a522e6806948369987639a0d1df03c029a8be103218645e121b51078620f452c79',1,'oboe']]],
+  ['movie',['Movie',['../a00032.html#a07eed38097ed944422063801f8f83406a8b3b366178c2b7b1688bca6cd33758b1',1,'oboe']]],
+  ['music',['Music',['../a00032.html#a07eed38097ed944422063801f8f83406ac156fcc7b29059305cef26f3904d4517',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_8.js b/docs/reference/search/enumvalues_8.js
index c3b1d9f..d8758a7 100644
--- a/docs/reference/search/enumvalues_8.js
+++ b/docs/reference/search/enumvalues_8.js
@@ -1,5 +1,7 @@
 var searchData=
 [
-  ['unprocessed',['Unprocessed',['../a00032.html#a17f63a064de966efddd5d0335992bc04acad9424158aefae0af7975901b11d85f',1,'oboe']]],
-  ['unspecified',['Unspecified',['../a00032.html#a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()']]]
+  ['none',['None',['../a00032.html#a5752250c10e96179e3618d7f72937eafa58c518b26e83ea48393a76f6c9ecb51f',1,'oboe::None()'],['../a00032.html#a5752250c10e96179e3618d7f72937eafa6adf97f83acf6453d4a6a4b1070f3754',1,'oboe::None()']]],
+  ['notification',['Notification',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba96d008db67fc0b5551a926842bbb6a71',1,'oboe']]],
+  ['notificationevent',['NotificationEvent',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba089240b5380dbd12f1eac0ec258a3b2f',1,'oboe']]],
+  ['notificationringtone',['NotificationRingtone',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba4e7a4b08274d472394b740a20d3bbdaf',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_9.js b/docs/reference/search/enumvalues_9.js
index a62416c..1f7b136 100644
--- a/docs/reference/search/enumvalues_9.js
+++ b/docs/reference/search/enumvalues_9.js
@@ -1,6 +1,5 @@
 var searchData=
 [
-  ['voicecommunication',['VoiceCommunication',['../a00032.html#a17f63a064de966efddd5d0335992bc04a1862e72c9730c448fbec6f61a5d8234d',1,'oboe::VoiceCommunication()'],['../a00032.html#a17f63a064de966efddd5d0335992bc04a5bad8854288c956062ec1d4d7c14fed6',1,'oboe::VoiceCommunication()']]],
-  ['voicecommunicationsignalling',['VoiceCommunicationSignalling',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba404f62633744bf4da0c6a27a2b78ce74',1,'oboe']]],
-  ['voicerecognition',['VoiceRecognition',['../a00032.html#a17f63a064de966efddd5d0335992bc04af6e440b4e9edf49afe18aa4be77be6fc',1,'oboe']]]
+  ['opensles',['OpenSLES',['../a00032.html#a92972414867c81d5974cb2ed7abefbf6a24e758ea9c1e842ef71cc8ff8b63fa9b',1,'oboe']]],
+  ['output',['Output',['../a00032.html#aea1c5f88e3dd4144f51ed5a434fb387ba29c2c02a361c9d7028472e5d92cd4a54',1,'oboe']]]
 ];
diff --git a/docs/reference/search/enumvalues_a.html b/docs/reference/search/enumvalues_a.html
new file mode 100644
index 0000000..1ec3a2a
--- /dev/null
+++ b/docs/reference/search/enumvalues_a.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enumvalues_a.js b/docs/reference/search/enumvalues_a.js
new file mode 100644
index 0000000..f44abd9
--- /dev/null
+++ b/docs/reference/search/enumvalues_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['powersaving',['PowerSaving',['../a00032.html#acd0e87a1512eca01c60eb3b7a6676fdeabbad080463ed11f9d77797c04aa1e5b1',1,'oboe']]]
+];
diff --git a/docs/reference/search/enumvalues_b.html b/docs/reference/search/enumvalues_b.html
new file mode 100644
index 0000000..bfc2bf3
--- /dev/null
+++ b/docs/reference/search/enumvalues_b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enumvalues_b.js b/docs/reference/search/enumvalues_b.js
new file mode 100644
index 0000000..04f3bc4
--- /dev/null
+++ b/docs/reference/search/enumvalues_b.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['shared',['Shared',['../a00032.html#ae3a52556c58387e0cecba01f9abffdffaa6156ea9d66fef24e87e841fbabf7cca',1,'oboe']]],
+  ['sonification',['Sonification',['../a00032.html#a07eed38097ed944422063801f8f83406a0885eef555037e94a7cf39fe683c2799',1,'oboe']]],
+  ['speech',['Speech',['../a00032.html#a07eed38097ed944422063801f8f83406a3dc48a4b4619aa4edd1da7b937b4dcd1',1,'oboe']]],
+  ['stereo',['Stereo',['../a00032.html#a522e6806948369987639a0d1df03c029a534e646333ca7568317b171ea96b89ba',1,'oboe']]]
+];
diff --git a/docs/reference/search/enumvalues_c.html b/docs/reference/search/enumvalues_c.html
new file mode 100644
index 0000000..36070b8
--- /dev/null
+++ b/docs/reference/search/enumvalues_c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enumvalues_c.js b/docs/reference/search/enumvalues_c.js
new file mode 100644
index 0000000..ac3b81f
--- /dev/null
+++ b/docs/reference/search/enumvalues_c.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unprocessed',['Unprocessed',['../a00032.html#a17f63a064de966efddd5d0335992bc04acad9424158aefae0af7975901b11d85f',1,'oboe']]],
+  ['unspecified',['Unspecified',['../a00032.html#a522e6806948369987639a0d1df03c029a946257a568f77c12df4fc4c49125da76',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()'],['../a00032.html#a522e6806948369987639a0d1df03c029a6fcdc090caeade09d0efd6253932b6f5',1,'oboe::Unspecified()']]]
+];
diff --git a/docs/reference/search/enumvalues_d.html b/docs/reference/search/enumvalues_d.html
new file mode 100644
index 0000000..e15d8c9
--- /dev/null
+++ b/docs/reference/search/enumvalues_d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/enumvalues_d.js b/docs/reference/search/enumvalues_d.js
new file mode 100644
index 0000000..a62416c
--- /dev/null
+++ b/docs/reference/search/enumvalues_d.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['voicecommunication',['VoiceCommunication',['../a00032.html#a17f63a064de966efddd5d0335992bc04a1862e72c9730c448fbec6f61a5d8234d',1,'oboe::VoiceCommunication()'],['../a00032.html#a17f63a064de966efddd5d0335992bc04a5bad8854288c956062ec1d4d7c14fed6',1,'oboe::VoiceCommunication()']]],
+  ['voicecommunicationsignalling',['VoiceCommunicationSignalling',['../a00032.html#a1b2a1bdc891d640eb82724dcd9b7afbba404f62633744bf4da0c6a27a2b78ce74',1,'oboe']]],
+  ['voicerecognition',['VoiceRecognition',['../a00032.html#a17f63a064de966efddd5d0335992bc04af6e440b4e9edf49afe18aa4be77be6fc',1,'oboe']]]
+];
diff --git a/docs/reference/search/functions_0.js b/docs/reference/search/functions_0.js
index b960c68..99961b4 100644
--- a/docs/reference/search/functions_0.js
+++ b/docs/reference/search/functions_0.js
@@ -1,8 +1,5 @@
 var searchData=
 [
-  ['calculatelatencymillis',['calculateLatencyMillis',['../a00036.html#ae023cb001f3261d064f423101798d6be',1,'oboe::AudioStream']]],
-  ['close',['close',['../a00036.html#ad33a20f0d6792e322b9d8a2bcf14fcf8',1,'oboe::AudioStream']]],
-  ['convertformattosizeinbytes',['convertFormatToSizeInBytes',['../a00032.html#ac67383a3df0f6e7a51f8415ffd9fdaca',1,'oboe']]],
-  ['converttotext',['convertToText',['../a00032.html#a8d1ae211254cc239019f165b607f4365',1,'oboe']]],
-  ['createbasedonsign',['createBasedOnSign',['../a00060.html#a2304c6120e2aad8f2189383a98c7b0a7',1,'oboe::ResultWithValue']]]
+  ['audiostream',['AudioStream',['../a00036.html#a8ebb587a07bf62c864fd62c63b241fd4',1,'oboe::AudioStream']]],
+  ['audiostreambase',['AudioStreamBase',['../a00040.html#aa6b103e1b0f808bbc4949d56f0829f98',1,'oboe::AudioStreamBase']]]
 ];
diff --git a/docs/reference/search/functions_1.js b/docs/reference/search/functions_1.js
index 233a00e..2eb05eb 100644
--- a/docs/reference/search/functions_1.js
+++ b/docs/reference/search/functions_1.js
@@ -1,17 +1,10 @@
 var searchData=
 [
-  ['getaudioapi',['getAudioApi',['../a00036.html#a2b7a3cee7444114843dbdd1fc705f6bb',1,'oboe::AudioStream']]],
-  ['getbuffercapacityinframes',['getBufferCapacityInFrames',['../a00040.html#ab1531253e64aaebe9e9eddbafb9098fc',1,'oboe::AudioStreamBase']]],
-  ['getbuffersizeinframes',['getBufferSizeInFrames',['../a00040.html#af5217ab05bfde0d7637024b599302d0b',1,'oboe::AudioStreamBase']]],
-  ['getchannelcount',['getChannelCount',['../a00040.html#aa0b0a068097efaf967fb235c55383dd8',1,'oboe::AudioStreamBase']]],
-  ['getdirection',['getDirection',['../a00040.html#a6f86f2233a04c5a0b056f0c1c261f1b1',1,'oboe::AudioStreamBase']]],
-  ['getformat',['getFormat',['../a00040.html#ab1e640461d7bf9d596decb913da7ac86',1,'oboe::AudioStreamBase']]],
-  ['getframesperburst',['getFramesPerBurst',['../a00036.html#ac160acb656515814fa6fdd157c131a0a',1,'oboe::AudioStream']]],
-  ['getframespercallback',['getFramesPerCallback',['../a00040.html#a1c133e1949f0814f60bd8bb61346756b',1,'oboe::AudioStreamBase']]],
-  ['getframeswritten',['getFramesWritten',['../a00036.html#ab43dd4074e1de57bac1c3fd111430341',1,'oboe::AudioStream']]],
-  ['getsamplerate',['getSampleRate',['../a00040.html#ae9d32f3e09174bad69e74f147ee33087',1,'oboe::AudioStreamBase']]],
-  ['getsdkversion',['getSdkVersion',['../a00032.html#a54528938e9fccab7ad8947ccf0e409db',1,'oboe']]],
-  ['getstate',['getState',['../a00036.html#a47bb5798275f14d76444283a6b6f35eb',1,'oboe::AudioStream']]],
-  ['getunderlyingstream',['getUnderlyingStream',['../a00036.html#a5458d7130415eb4defe3dbc11d479e2f',1,'oboe::AudioStream']]],
-  ['getxruncount',['getXRunCount',['../a00036.html#ad1a1d3bbf3b348ed92b7ed18ce9cc261',1,'oboe::AudioStream']]]
+  ['calculatelatencymillis',['calculateLatencyMillis',['../a00036.html#ae023cb001f3261d064f423101798d6be',1,'oboe::AudioStream']]],
+  ['close',['close',['../a00036.html#ad33a20f0d6792e322b9d8a2bcf14fcf8',1,'oboe::AudioStream']]],
+  ['convertfloattopcm16',['convertFloatToPcm16',['../a00032.html#adbda063116feb9fa98a31ee820170060',1,'oboe']]],
+  ['convertformattosizeinbytes',['convertFormatToSizeInBytes',['../a00032.html#ac67383a3df0f6e7a51f8415ffd9fdaca',1,'oboe']]],
+  ['convertpcm16tofloat',['convertPcm16ToFloat',['../a00032.html#ad17bee42828d13f2ef62a889e175c643',1,'oboe']]],
+  ['converttotext',['convertToText',['../a00032.html#af65aaea3c5d82eee6906664d61c094b3',1,'oboe']]],
+  ['createbasedonsign',['createBasedOnSign',['../a00060.html#a2304c6120e2aad8f2189383a98c7b0a7',1,'oboe::ResultWithValue']]]
 ];
diff --git a/docs/reference/search/functions_2.js b/docs/reference/search/functions_2.js
index dbacfe3..313a17a 100644
--- a/docs/reference/search/functions_2.js
+++ b/docs/reference/search/functions_2.js
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['isaaudiorecommended',['isAAudioRecommended',['../a00044.html#a622732bbe5c6577356d749f7dc2108df',1,'oboe::AudioStreamBuilder']]],
-  ['isaaudiosupported',['isAAudioSupported',['../a00044.html#a18e7b5f7554a4c2ca763e35e8117d699',1,'oboe::AudioStreamBuilder']]],
-  ['isxruncountsupported',['isXRunCountSupported',['../a00036.html#a43d8a098440cde28f4ee8bedd6d107c4',1,'oboe::AudioStream']]]
+  ['error',['error',['../a00060.html#adfc76ae6db81535c2e82b856975eed41',1,'oboe::ResultWithValue']]]
 ];
diff --git a/docs/reference/search/functions_3.js b/docs/reference/search/functions_3.js
index d8643bc..cdee9ca 100644
--- a/docs/reference/search/functions_3.js
+++ b/docs/reference/search/functions_3.js
@@ -1,12 +1,5 @@
 var searchData=
 [
-  ['onaudioready',['onAudioReady',['../a00048.html#af3a7c44f0254abe6e5e5bb566e2317df',1,'oboe::AudioStreamCallback']]],
-  ['ondefaultcallback',['onDefaultCallback',['../a00036.html#abda7ae8e6832030572785de3964ed848',1,'oboe::AudioStream']]],
-  ['onerrorafterclose',['onErrorAfterClose',['../a00048.html#a7089c5e18a80cba89eb3f4fe2341aeba',1,'oboe::AudioStreamCallback']]],
-  ['onerrorbeforeclose',['onErrorBeforeClose',['../a00048.html#a2407ff537a60301fd161bd2c36913bfd',1,'oboe::AudioStreamCallback']]],
-  ['open',['open',['../a00036.html#a686c6ce8a29051c858fd1de386805dc6',1,'oboe::AudioStream']]],
-  ['openstream',['openStream',['../a00044.html#a86b94cfa47729bef2e04dce1a9086074',1,'oboe::AudioStreamBuilder']]],
-  ['operator_20bool',['operator bool',['../a00060.html#ae32b1953b777af7d1d0c94862ca39986',1,'oboe::ResultWithValue']]],
-  ['operator_20result',['operator Result',['../a00060.html#af62107817c0bc76047e6b655a78504ba',1,'oboe::ResultWithValue']]],
-  ['operator_21',['operator!',['../a00060.html#a2dbc8b09ead8b073a78af95b4b0186e3',1,'oboe::ResultWithValue']]]
+  ['firecallback',['fireCallback',['../a00036.html#a0c4fd19b01a4ef750dd9d6ae3a512eda',1,'oboe::AudioStream']]],
+  ['flush',['flush',['../a00036.html#a32c25c0333eab3d65ce02275ad4acb3d',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/functions_4.js b/docs/reference/search/functions_4.js
index 16f0798..24b2768 100644
--- a/docs/reference/search/functions_4.js
+++ b/docs/reference/search/functions_4.js
@@ -1,4 +1,29 @@
 var searchData=
 [
-  ['requestreset',['requestReset',['../a00056.html#a6c0142e08dc65eda8f758b4794450867',1,'oboe::LatencyTuner']]]
+  ['getaudioapi',['getAudioApi',['../a00036.html#a2b7a3cee7444114843dbdd1fc705f6bb',1,'oboe::AudioStream::getAudioApi()'],['../a00044.html#ac9d41811c297fd28bc61833f640bb8d0',1,'oboe::AudioStreamBuilder::getAudioApi()']]],
+  ['getbuffercapacityinframes',['getBufferCapacityInFrames',['../a00040.html#ab1531253e64aaebe9e9eddbafb9098fc',1,'oboe::AudioStreamBase']]],
+  ['getbuffersizeinframes',['getBufferSizeInFrames',['../a00040.html#af5217ab05bfde0d7637024b599302d0b',1,'oboe::AudioStreamBase']]],
+  ['getbytesperframe',['getBytesPerFrame',['../a00036.html#a5c01907a59d5f89a5e4b819fe66b08bc',1,'oboe::AudioStream']]],
+  ['getbytespersample',['getBytesPerSample',['../a00036.html#a44dda61e6e948e49b68f87172f084d62',1,'oboe::AudioStream']]],
+  ['getcallback',['getCallback',['../a00040.html#a1b4a2a191546708da657510c3cd6b797',1,'oboe::AudioStreamBase']]],
+  ['getchannelcount',['getChannelCount',['../a00040.html#aa0b0a068097efaf967fb235c55383dd8',1,'oboe::AudioStreamBase']]],
+  ['getcontenttype',['getContentType',['../a00040.html#ab12e2d068fa87e0553b01a400d96eb82',1,'oboe::AudioStreamBase']]],
+  ['getdeviceid',['getDeviceId',['../a00040.html#a093057d625bc896864b959974c265f21',1,'oboe::AudioStreamBase']]],
+  ['getdirection',['getDirection',['../a00040.html#a6f86f2233a04c5a0b056f0c1c261f1b1',1,'oboe::AudioStreamBase']]],
+  ['getformat',['getFormat',['../a00040.html#ab1e640461d7bf9d596decb913da7ac86',1,'oboe::AudioStreamBase']]],
+  ['getframesperburst',['getFramesPerBurst',['../a00036.html#ac160acb656515814fa6fdd157c131a0a',1,'oboe::AudioStream']]],
+  ['getframespercallback',['getFramesPerCallback',['../a00040.html#a1c133e1949f0814f60bd8bb61346756b',1,'oboe::AudioStreamBase']]],
+  ['getframesread',['getFramesRead',['../a00036.html#aeebfc59abd978cd6dff07c16cfe266df',1,'oboe::AudioStream']]],
+  ['getframeswritten',['getFramesWritten',['../a00036.html#ab43dd4074e1de57bac1c3fd111430341',1,'oboe::AudioStream']]],
+  ['getinputpreset',['getInputPreset',['../a00040.html#a5c773b93b8aa38191c7199cab023428a',1,'oboe::AudioStreamBase']]],
+  ['getperformancemode',['getPerformanceMode',['../a00040.html#a2ddb935de0e24dd7ae8e2cfbecac9fdc',1,'oboe::AudioStreamBase']]],
+  ['getsamplerate',['getSampleRate',['../a00040.html#ae9d32f3e09174bad69e74f147ee33087',1,'oboe::AudioStreamBase']]],
+  ['getsdkversion',['getSdkVersion',['../a00032.html#a54528938e9fccab7ad8947ccf0e409db',1,'oboe']]],
+  ['getsessionid',['getSessionId',['../a00040.html#aa3c502ce09bbad7690a2dd6acaf8892e',1,'oboe::AudioStreamBase']]],
+  ['getsharingmode',['getSharingMode',['../a00040.html#a1fb033fc963f971bd1aa8f6707e49b41',1,'oboe::AudioStreamBase']]],
+  ['getstate',['getState',['../a00036.html#a47bb5798275f14d76444283a6b6f35eb',1,'oboe::AudioStream']]],
+  ['gettimestamp',['getTimestamp',['../a00036.html#a1d7cf4e43fb9d7b31857a90d9eceee6d',1,'oboe::AudioStream']]],
+  ['getunderlyingstream',['getUnderlyingStream',['../a00036.html#a5458d7130415eb4defe3dbc11d479e2f',1,'oboe::AudioStream']]],
+  ['getusage',['getUsage',['../a00040.html#a0bcfb2f8bd11c92b541fd910da9af397',1,'oboe::AudioStreamBase']]],
+  ['getxruncount',['getXRunCount',['../a00036.html#ad1a1d3bbf3b348ed92b7ed18ce9cc261',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/functions_5.js b/docs/reference/search/functions_5.js
index 0abd90f..bc43339 100644
--- a/docs/reference/search/functions_5.js
+++ b/docs/reference/search/functions_5.js
@@ -1,19 +1,9 @@
 var searchData=
 [
-  ['setaudioapi',['setAudioApi',['../a00044.html#a38c6d6c5e718df1e3ac69daaac47c391',1,'oboe::AudioStreamBuilder']]],
-  ['setbuffercapacityinframes',['setBufferCapacityInFrames',['../a00044.html#abaff480867af51ca0899bfa6fd7cc3ef',1,'oboe::AudioStreamBuilder']]],
-  ['setbuffersizeinframes',['setBufferSizeInFrames',['../a00036.html#ac93b18e18487e809151f63ec3c6228bb',1,'oboe::AudioStream']]],
-  ['setcallback',['setCallback',['../a00044.html#a698cefa9af73bc97c020c004821fccbd',1,'oboe::AudioStreamBuilder']]],
-  ['setchannelcount',['setChannelCount',['../a00044.html#a075d10291e1f998d90c2f73ef767b5a7',1,'oboe::AudioStreamBuilder']]],
-  ['setcontenttype',['setContentType',['../a00044.html#a6a17bafc217c2b624179fbbf77fe4468',1,'oboe::AudioStreamBuilder']]],
-  ['setdeviceid',['setDeviceId',['../a00044.html#af36ddcd00686a9e1de661bdac0685a8e',1,'oboe::AudioStreamBuilder']]],
-  ['setdirection',['setDirection',['../a00044.html#ab3fbd47b06197619c26393637e26354c',1,'oboe::AudioStreamBuilder']]],
-  ['setformat',['setFormat',['../a00044.html#aa2e1d2d73cd6c2eb9f349bf2fe5f6515',1,'oboe::AudioStreamBuilder']]],
-  ['setframespercallback',['setFramesPerCallback',['../a00044.html#a3f397821f61eabaeedaf31064c859a54',1,'oboe::AudioStreamBuilder']]],
-  ['setinputpreset',['setInputPreset',['../a00044.html#a144a3d095fd668210282f1a91f23e1f0',1,'oboe::AudioStreamBuilder']]],
-  ['setperformancemode',['setPerformanceMode',['../a00044.html#a6cd1d65612e844e59da71a68ea0ab3ee',1,'oboe::AudioStreamBuilder']]],
-  ['setsamplerate',['setSampleRate',['../a00044.html#a30ef3d5f51d56a9f980dc09600ed139d',1,'oboe::AudioStreamBuilder']]],
-  ['setsessionid',['setSessionId',['../a00044.html#a54c1651bdbe089d0d714af499e8a5f1d',1,'oboe::AudioStreamBuilder']]],
-  ['setsharingmode',['setSharingMode',['../a00044.html#a3e991742acbbfb6fe5ebcf592c478654',1,'oboe::AudioStreamBuilder']]],
-  ['setusage',['setUsage',['../a00044.html#a593255a2f5eb972665775cfc5bc58f6a',1,'oboe::AudioStreamBuilder']]]
+  ['incrementframesread',['incrementFramesRead',['../a00036.html#a81568482a217b314498e2501210758d7',1,'oboe::AudioStream']]],
+  ['incrementframeswritten',['incrementFramesWritten',['../a00036.html#ad6b4c63f6ed1ecb509f7b80352a9c0bd',1,'oboe::AudioStream']]],
+  ['isaaudiorecommended',['isAAudioRecommended',['../a00044.html#a622732bbe5c6577356d749f7dc2108df',1,'oboe::AudioStreamBuilder']]],
+  ['isaaudiosupported',['isAAudioSupported',['../a00044.html#a18e7b5f7554a4c2ca763e35e8117d699',1,'oboe::AudioStreamBuilder']]],
+  ['isplaying',['isPlaying',['../a00036.html#ad5260e2cc71108b1b2e694bf6162279f',1,'oboe::AudioStream']]],
+  ['isxruncountsupported',['isXRunCountSupported',['../a00036.html#a43d8a098440cde28f4ee8bedd6d107c4',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/functions_6.js b/docs/reference/search/functions_6.js
index 9f8dfb6..68e93bd 100644
--- a/docs/reference/search/functions_6.js
+++ b/docs/reference/search/functions_6.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['tune',['tune',['../a00056.html#ad2be756965e6a9af3114008eda892174',1,'oboe::LatencyTuner']]]
+  ['latencytuner',['LatencyTuner',['../a00056.html#a0263b9a55825c0a403653b2b508073ea',1,'oboe::LatencyTuner']]]
 ];
diff --git a/docs/reference/search/functions_7.js b/docs/reference/search/functions_7.js
index 88c115f..3b927be 100644
--- a/docs/reference/search/functions_7.js
+++ b/docs/reference/search/functions_7.js
@@ -1,4 +1,14 @@
 var searchData=
 [
-  ['usesaaudio',['usesAAudio',['../a00036.html#a15cdaaaa4c1e8da322d6da33334c8147',1,'oboe::AudioStream']]]
+  ['onaudioready',['onAudioReady',['../a00048.html#af3a7c44f0254abe6e5e5bb566e2317df',1,'oboe::AudioStreamCallback']]],
+  ['ondefaultcallback',['onDefaultCallback',['../a00036.html#abda7ae8e6832030572785de3964ed848',1,'oboe::AudioStream']]],
+  ['onerrorafterclose',['onErrorAfterClose',['../a00048.html#a7089c5e18a80cba89eb3f4fe2341aeba',1,'oboe::AudioStreamCallback']]],
+  ['onerrorbeforeclose',['onErrorBeforeClose',['../a00048.html#a2407ff537a60301fd161bd2c36913bfd',1,'oboe::AudioStreamCallback']]],
+  ['open',['open',['../a00036.html#a686c6ce8a29051c858fd1de386805dc6',1,'oboe::AudioStream']]],
+  ['openstream',['openStream',['../a00044.html#a86b94cfa47729bef2e04dce1a9086074',1,'oboe::AudioStreamBuilder']]],
+  ['operator_20bool',['operator bool',['../a00060.html#ae32b1953b777af7d1d0c94862ca39986',1,'oboe::ResultWithValue']]],
+  ['operator_20result',['operator Result',['../a00060.html#af62107817c0bc76047e6b655a78504ba',1,'oboe::ResultWithValue']]],
+  ['operator_21',['operator!',['../a00060.html#a2dbc8b09ead8b073a78af95b4b0186e3',1,'oboe::ResultWithValue']]],
+  ['operator_3c_3c',['operator&lt;&lt;',['../a00032.html#aa403103686222502d1cfc47bafc10aeb',1,'oboe']]],
+  ['operator_3d',['operator=',['../a00040.html#aa9c987a59555d7a60b9f7a63f4afc7fc',1,'oboe::AudioStreamBase']]]
 ];
diff --git a/docs/reference/search/functions_8.js b/docs/reference/search/functions_8.js
index 57aa014..385c084 100644
--- a/docs/reference/search/functions_8.js
+++ b/docs/reference/search/functions_8.js
@@ -1,6 +1,4 @@
 var searchData=
 [
-  ['waitforstatechange',['waitForStateChange',['../a00036.html#a0c865a5501f369d959c39d8ab8b46a07',1,'oboe::AudioStream']]],
-  ['waitforstatetransition',['waitForStateTransition',['../a00036.html#a8adbacd6a55a94a532916ab037fba1d6',1,'oboe::AudioStream']]],
-  ['write',['write',['../a00036.html#ab3f6bf8abed87f3804ac4df3472c3670',1,'oboe::AudioStream']]]
+  ['pause',['pause',['../a00036.html#a04f29836748a8e5842aef2be200022ad',1,'oboe::AudioStream']]]
 ];
diff --git a/docs/reference/search/functions_9.html b/docs/reference/search/functions_9.html
new file mode 100644
index 0000000..5ccec42
--- /dev/null
+++ b/docs/reference/search/functions_9.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_9.js b/docs/reference/search/functions_9.js
new file mode 100644
index 0000000..7be5129
--- /dev/null
+++ b/docs/reference/search/functions_9.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['read',['read',['../a00036.html#acbf3933af829313d281b5455053338da',1,'oboe::AudioStream']]],
+  ['requestflush',['requestFlush',['../a00036.html#a6bd5d633ff999e4da1faf3cd949aa602',1,'oboe::AudioStream']]],
+  ['requestpause',['requestPause',['../a00036.html#a7f18bb3cc5490fd7fbc1f6da63c730f6',1,'oboe::AudioStream']]],
+  ['requestreset',['requestReset',['../a00056.html#a6c0142e08dc65eda8f758b4794450867',1,'oboe::LatencyTuner']]],
+  ['requeststart',['requestStart',['../a00036.html#a3c484e314dee8dfed1d419f487b5d601',1,'oboe::AudioStream']]],
+  ['requeststop',['requestStop',['../a00036.html#a820e634f741e6b5efdcef8104cecb919',1,'oboe::AudioStream']]],
+  ['resultwithvalue',['ResultWithValue',['../a00060.html#aae75caa0d16a9e23a012f77fb50c5927',1,'oboe::ResultWithValue::ResultWithValue(oboe::Result error)'],['../a00060.html#a600309367db58d71f0ec16e90f7ebea5',1,'oboe::ResultWithValue::ResultWithValue(T value)']]]
+];
diff --git a/docs/reference/search/functions_a.html b/docs/reference/search/functions_a.html
new file mode 100644
index 0000000..3958eb7
--- /dev/null
+++ b/docs/reference/search/functions_a.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_a.js b/docs/reference/search/functions_a.js
new file mode 100644
index 0000000..5823ff7
--- /dev/null
+++ b/docs/reference/search/functions_a.js
@@ -0,0 +1,22 @@
+var searchData=
+[
+  ['setaudioapi',['setAudioApi',['../a00044.html#a38c6d6c5e718df1e3ac69daaac47c391',1,'oboe::AudioStreamBuilder']]],
+  ['setbuffercapacityinframes',['setBufferCapacityInFrames',['../a00044.html#abaff480867af51ca0899bfa6fd7cc3ef',1,'oboe::AudioStreamBuilder']]],
+  ['setbuffersizeinframes',['setBufferSizeInFrames',['../a00036.html#ac93b18e18487e809151f63ec3c6228bb',1,'oboe::AudioStream']]],
+  ['setcallback',['setCallback',['../a00044.html#a698cefa9af73bc97c020c004821fccbd',1,'oboe::AudioStreamBuilder']]],
+  ['setchannelcount',['setChannelCount',['../a00044.html#a075d10291e1f998d90c2f73ef767b5a7',1,'oboe::AudioStreamBuilder']]],
+  ['setcontenttype',['setContentType',['../a00044.html#a6a17bafc217c2b624179fbbf77fe4468',1,'oboe::AudioStreamBuilder']]],
+  ['setdeviceid',['setDeviceId',['../a00044.html#af36ddcd00686a9e1de661bdac0685a8e',1,'oboe::AudioStreamBuilder']]],
+  ['setdirection',['setDirection',['../a00044.html#ab3fbd47b06197619c26393637e26354c',1,'oboe::AudioStreamBuilder']]],
+  ['setformat',['setFormat',['../a00044.html#aa2e1d2d73cd6c2eb9f349bf2fe5f6515',1,'oboe::AudioStreamBuilder']]],
+  ['setframespercallback',['setFramesPerCallback',['../a00044.html#a3f397821f61eabaeedaf31064c859a54',1,'oboe::AudioStreamBuilder']]],
+  ['setinputpreset',['setInputPreset',['../a00044.html#a144a3d095fd668210282f1a91f23e1f0',1,'oboe::AudioStreamBuilder']]],
+  ['setnativeformat',['setNativeFormat',['../a00036.html#ab01c37fca9110e916a482a909f5cc82d',1,'oboe::AudioStream']]],
+  ['setperformancemode',['setPerformanceMode',['../a00044.html#a6cd1d65612e844e59da71a68ea0ab3ee',1,'oboe::AudioStreamBuilder']]],
+  ['setsamplerate',['setSampleRate',['../a00044.html#a30ef3d5f51d56a9f980dc09600ed139d',1,'oboe::AudioStreamBuilder']]],
+  ['setsessionid',['setSessionId',['../a00044.html#a54c1651bdbe089d0d714af499e8a5f1d',1,'oboe::AudioStreamBuilder']]],
+  ['setsharingmode',['setSharingMode',['../a00044.html#a3e991742acbbfb6fe5ebcf592c478654',1,'oboe::AudioStreamBuilder']]],
+  ['setusage',['setUsage',['../a00044.html#a593255a2f5eb972665775cfc5bc58f6a',1,'oboe::AudioStreamBuilder']]],
+  ['start',['start',['../a00036.html#af04f03eb6b64b564f1c4401688987d21',1,'oboe::AudioStream']]],
+  ['stop',['stop',['../a00036.html#aec093859d42f0470c884edd1e976d9f3',1,'oboe::AudioStream']]]
+];
diff --git a/docs/reference/search/functions_b.html b/docs/reference/search/functions_b.html
new file mode 100644
index 0000000..b99b702
--- /dev/null
+++ b/docs/reference/search/functions_b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_b.js b/docs/reference/search/functions_b.js
new file mode 100644
index 0000000..9f8dfb6
--- /dev/null
+++ b/docs/reference/search/functions_b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['tune',['tune',['../a00056.html#ad2be756965e6a9af3114008eda892174',1,'oboe::LatencyTuner']]]
+];
diff --git a/docs/reference/search/functions_c.html b/docs/reference/search/functions_c.html
new file mode 100644
index 0000000..3a33d87
--- /dev/null
+++ b/docs/reference/search/functions_c.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_c.js b/docs/reference/search/functions_c.js
new file mode 100644
index 0000000..88c115f
--- /dev/null
+++ b/docs/reference/search/functions_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['usesaaudio',['usesAAudio',['../a00036.html#a15cdaaaa4c1e8da322d6da33334c8147',1,'oboe::AudioStream']]]
+];
diff --git a/docs/reference/search/functions_d.html b/docs/reference/search/functions_d.html
new file mode 100644
index 0000000..31b75b8
--- /dev/null
+++ b/docs/reference/search/functions_d.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_d.js b/docs/reference/search/functions_d.js
new file mode 100644
index 0000000..c9e0576
--- /dev/null
+++ b/docs/reference/search/functions_d.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['value',['value',['../a00060.html#a45f5c99a2c9f8fbaca502276f7ebb434',1,'oboe::ResultWithValue']]]
+];
diff --git a/docs/reference/search/functions_e.html b/docs/reference/search/functions_e.html
new file mode 100644
index 0000000..cddb9bb
--- /dev/null
+++ b/docs/reference/search/functions_e.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/functions_e.js b/docs/reference/search/functions_e.js
new file mode 100644
index 0000000..57aa014
--- /dev/null
+++ b/docs/reference/search/functions_e.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['waitforstatechange',['waitForStateChange',['../a00036.html#a0c865a5501f369d959c39d8ab8b46a07',1,'oboe::AudioStream']]],
+  ['waitforstatetransition',['waitForStateTransition',['../a00036.html#a8adbacd6a55a94a532916ab037fba1d6',1,'oboe::AudioStream']]],
+  ['write',['write',['../a00036.html#ab3f6bf8abed87f3804ac4df3472c3670',1,'oboe::AudioStream']]]
+];
diff --git a/docs/reference/search/pages_0.html b/docs/reference/search/pages_0.html
new file mode 100644
index 0000000..d752858
--- /dev/null
+++ b/docs/reference/search/pages_0.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/pages_0.js b/docs/reference/search/pages_0.js
new file mode 100644
index 0000000..6ced283
--- /dev/null
+++ b/docs/reference/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['deprecated_20list',['Deprecated List',['../a00032.html',1,'']]]
+];
diff --git a/docs/reference/search/pages_1.html b/docs/reference/search/pages_1.html
new file mode 100644
index 0000000..924fb48
--- /dev/null
+++ b/docs/reference/search/pages_1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/pages_1.js b/docs/reference/search/pages_1.js
new file mode 100644
index 0000000..093992d
--- /dev/null
+++ b/docs/reference/search/pages_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['todo_20list',['Todo List',['../a00032.html',1,'']]]
+];
diff --git a/docs/reference/search/searchdata.js b/docs/reference/search/searchdata.js
index 4a41a4c..19097a0 100644
--- a/docs/reference/search/searchdata.js
+++ b/docs/reference/search/searchdata.js
@@ -1,12 +1,12 @@
 var indexSectionsWithContent =
 {
-  0: "acdegilmnoprstuvw",
+  0: "acdefgiklmnoprstuvw",
   1: "adlrv",
   2: "o",
-  3: "cgiorstuw",
-  4: "mnpst",
-  5: "acisu",
-  6: "acegmnosuv"
+  3: "acefgiloprstuvw",
+  4: "cfkmnpst",
+  5: "acdiprsu",
+  6: "acefgilmnopsuv"
 };
 
 var indexSectionNames =
diff --git a/docs/reference/search/variables_0.js b/docs/reference/search/variables_0.js
index 093dfa7..5f9c251 100644
--- a/docs/reference/search/variables_0.js
+++ b/docs/reference/search/variables_0.js
@@ -1,5 +1,4 @@
 var searchData=
 [
-  ['major',['Major',['../a00064.html#a270f2e92582d5187be339eeda8e2b276',1,'oboe::Version']]],
-  ['minor',['Minor',['../a00064.html#ae460bb95e3a9099696205a35fffb5469',1,'oboe::Version']]]
+  ['channelcount',['ChannelCount',['../a00052.html#ad5dce538d5963c81bf58350ab730962d',1,'oboe::DefaultStreamValues']]]
 ];
diff --git a/docs/reference/search/variables_1.js b/docs/reference/search/variables_1.js
index 3f287d2..fa2a0d2 100644
--- a/docs/reference/search/variables_1.js
+++ b/docs/reference/search/variables_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['number',['Number',['../a00064.html#ac579661e79bcee45dc676d4647891de0',1,'oboe::Version']]]
+  ['framesperburst',['FramesPerBurst',['../a00052.html#ab5ea5576699cebc56193f5c297d3e300',1,'oboe::DefaultStreamValues']]]
 ];
diff --git a/docs/reference/search/variables_2.js b/docs/reference/search/variables_2.js
index 3e251a9..980d328 100644
--- a/docs/reference/search/variables_2.js
+++ b/docs/reference/search/variables_2.js
@@ -1,4 +1,9 @@
 var searchData=
 [
-  ['patch',['Patch',['../a00064.html#a690110f2b3e887892da8f29ab5c057b2',1,'oboe::Version']]]
+  ['kdefaulttimeoutnanos',['kDefaultTimeoutNanos',['../a00032.html#aab8f5f081a8b2147e16ec920347c1b5c',1,'oboe']]],
+  ['kmillispersecond',['kMillisPerSecond',['../a00032.html#ad1bb9f5626cec20d3a052a8721959873',1,'oboe']]],
+  ['knanospermicrosecond',['kNanosPerMicrosecond',['../a00032.html#aedef0759ae3622b6f0324799bcbdebf0',1,'oboe']]],
+  ['knanospermillisecond',['kNanosPerMillisecond',['../a00032.html#a831e887150474c087170679eaca8672b',1,'oboe']]],
+  ['knanospersecond',['kNanosPerSecond',['../a00032.html#a5948466b593c4eab65f7025846a39f51',1,'oboe']]],
+  ['kunspecified',['kUnspecified',['../a00032.html#ab0772052200184e514082eaa89be7905',1,'oboe']]]
 ];
diff --git a/docs/reference/search/variables_3.js b/docs/reference/search/variables_3.js
index 0667719..d645969 100644
--- a/docs/reference/search/variables_3.js
+++ b/docs/reference/search/variables_3.js
@@ -1,4 +1,24 @@
 var searchData=
 [
-  ['samplerate',['SampleRate',['../a00052.html#a46a5d9a653f2153f618cadcab764e1b1',1,'oboe::DefaultStreamValues']]]
+  ['major',['Major',['../a00064.html#a270f2e92582d5187be339eeda8e2b276',1,'oboe::Version']]],
+  ['mbuffercapacityinframes',['mBufferCapacityInFrames',['../a00040.html#ac81d4719b350f8138aad1af38f0873b6',1,'oboe::AudioStreamBase']]],
+  ['mbuffersizeinframes',['mBufferSizeInFrames',['../a00040.html#a3b65595d26d1eae1b8ce9925a5b98f6a',1,'oboe::AudioStreamBase']]],
+  ['mchannelcount',['mChannelCount',['../a00040.html#a5ff460bac9d14dfeac4eeddfcbb6e206',1,'oboe::AudioStreamBase']]],
+  ['mcontenttype',['mContentType',['../a00040.html#a5f8f0e5add381b841856de80ea4cdb2b',1,'oboe::AudioStreamBase']]],
+  ['mdeviceid',['mDeviceId',['../a00040.html#a23dafa12fb1a6242b088ebd5a52798c8',1,'oboe::AudioStreamBase']]],
+  ['mdirection',['mDirection',['../a00040.html#a26e9294721561d3b16bcaeec5faf4880',1,'oboe::AudioStreamBase']]],
+  ['mformat',['mFormat',['../a00040.html#a7869f04836c2c2bdc10c7309ad4b8e09',1,'oboe::AudioStreamBase']]],
+  ['mframesperburst',['mFramesPerBurst',['../a00040.html#a54061319ed348329a29d883a5de2482e',1,'oboe::AudioStreamBase']]],
+  ['mframespercallback',['mFramesPerCallback',['../a00040.html#a3962eb94420ad0ecea70029236001899',1,'oboe::AudioStreamBase']]],
+  ['mframesread',['mFramesRead',['../a00036.html#a2b9124ba3b0f564fa58b0651438250e7',1,'oboe::AudioStream']]],
+  ['mframeswritten',['mFramesWritten',['../a00036.html#aa88d2a712b91a8b763f2721d78480ba8',1,'oboe::AudioStream']]],
+  ['minor',['Minor',['../a00064.html#ae460bb95e3a9099696205a35fffb5469',1,'oboe::Version']]],
+  ['minputpreset',['mInputPreset',['../a00040.html#a1e5d4f5b30c4cc36f81ffd858cc00589',1,'oboe::AudioStreamBase']]],
+  ['mnativeformat',['mNativeFormat',['../a00036.html#a07ed6b5e5bd4bc276bc1e1fc08e51d60',1,'oboe::AudioStream']]],
+  ['mperformancemode',['mPerformanceMode',['../a00040.html#ab99671c2d0552557e75dc7b4afe91765',1,'oboe::AudioStreamBase']]],
+  ['msamplerate',['mSampleRate',['../a00040.html#a998885bb6c4f37e145f4626ad4177dea',1,'oboe::AudioStreamBase']]],
+  ['msessionid',['mSessionId',['../a00040.html#abe1c1e9cada1ced9b5c1504ac9b07737',1,'oboe::AudioStreamBase']]],
+  ['msharingmode',['mSharingMode',['../a00040.html#ae9187492b679c97a0963e264954be473',1,'oboe::AudioStreamBase']]],
+  ['mstreamcallback',['mStreamCallback',['../a00040.html#ae3f72318212dd9977d7fa0ced92c91f4',1,'oboe::AudioStreamBase']]],
+  ['musage',['mUsage',['../a00040.html#a5b518e82f39c9fcbd7050fd66adb253c',1,'oboe::AudioStreamBase']]]
 ];
diff --git a/docs/reference/search/variables_4.js b/docs/reference/search/variables_4.js
index 13a9407..3f287d2 100644
--- a/docs/reference/search/variables_4.js
+++ b/docs/reference/search/variables_4.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['text',['Text',['../a00064.html#a2c86e578b827fbca5f40c460a7754503',1,'oboe::Version']]]
+  ['number',['Number',['../a00064.html#ac579661e79bcee45dc676d4647891de0',1,'oboe::Version']]]
 ];
diff --git a/docs/reference/search/variables_5.html b/docs/reference/search/variables_5.html
new file mode 100644
index 0000000..7e95e94
--- /dev/null
+++ b/docs/reference/search/variables_5.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/variables_5.js b/docs/reference/search/variables_5.js
new file mode 100644
index 0000000..3e251a9
--- /dev/null
+++ b/docs/reference/search/variables_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['patch',['Patch',['../a00064.html#a690110f2b3e887892da8f29ab5c057b2',1,'oboe::Version']]]
+];
diff --git a/docs/reference/search/variables_6.html b/docs/reference/search/variables_6.html
new file mode 100644
index 0000000..3d398e6
--- /dev/null
+++ b/docs/reference/search/variables_6.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/variables_6.js b/docs/reference/search/variables_6.js
new file mode 100644
index 0000000..0667719
--- /dev/null
+++ b/docs/reference/search/variables_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['samplerate',['SampleRate',['../a00052.html#a46a5d9a653f2153f618cadcab764e1b1',1,'oboe::DefaultStreamValues']]]
+];
diff --git a/docs/reference/search/variables_7.html b/docs/reference/search/variables_7.html
new file mode 100644
index 0000000..7b79146
--- /dev/null
+++ b/docs/reference/search/variables_7.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/reference/search/variables_7.js b/docs/reference/search/variables_7.js
new file mode 100644
index 0000000..13a9407
--- /dev/null
+++ b/docs/reference/search/variables_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['text',['Text',['../a00064.html#a2c86e578b827fbca5f40c460a7754503',1,'oboe::Version']]]
+];