MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00021.html

1876 lines
143 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: Audio_Adapter</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00021.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">Audio_Adapter</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00332"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00332">_hal_audio_dma_mux_config_t</a></td></tr>
<tr class="memdesc:a00332"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA mux user configuration. <a href="a00021.html#a00332">More...</a><br/></td></tr>
<tr class="separator:a00332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00329"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00329">_hal_audio_dma_channel_mux_config_t</a></td></tr>
<tr class="memdesc:a00329"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA channel mux user configuration. <a href="a00021.html#a00329">More...</a><br/></td></tr>
<tr class="separator:a00329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00331"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00331">_hal_audio_dma_extra_config_t</a></td></tr>
<tr class="memdesc:a00331"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA extra user configuration. <a href="a00021.html#a00331">More...</a><br/></td></tr>
<tr class="separator:a00331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00330"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00330">_hal_audio_dma_config</a></td></tr>
<tr class="memdesc:a00330"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA user configuration. <a href="a00021.html#a00330">More...</a><br/></td></tr>
<tr class="separator:a00330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00333"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00333">_hal_audio_ip_config</a></td></tr>
<tr class="memdesc:a00333"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio IP specific feature configuration. <a href="a00021.html#a00333">More...</a><br/></td></tr>
<tr class="separator:a00333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00328"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00328">_hal_audio_config</a></td></tr>
<tr class="memdesc:a00328"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio configuration structure. <a href="a00021.html#a00328">More...</a><br/></td></tr>
<tr class="separator:a00328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00334"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a00334">_hal_audio_transfer</a></td></tr>
<tr class="memdesc:a00334"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio transfer structure. <a href="a00021.html#a00334">More...</a><br/></td></tr>
<tr class="separator:a00334"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga6ac0495983bc4566f50f901a2f294a15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15">HAL_AUDIO_HANDLE_SIZE</a>&#160;&#160;&#160;(HAL_AUDIO_HANDLE_SIZE_TEMP)</td></tr>
<tr class="memdesc:ga6ac0495983bc4566f50f901a2f294a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of audio adapter handle size. <a href="#ga6ac0495983bc4566f50f901a2f294a15">More...</a><br/></td></tr>
<tr class="separator:ga6ac0495983bc4566f50f901a2f294a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae02ea6cdc3cec664fc07eae7a140daba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(name)&#160;&#160;&#160;uint32_t name[(<a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15">HAL_AUDIO_HANDLE_SIZE</a> + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]</td></tr>
<tr class="memdesc:gae02ea6cdc3cec664fc07eae7a140daba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the Audio handle. <a href="#gae02ea6cdc3cec664fc07eae7a140daba">More...</a><br/></td></tr>
<tr class="separator:gae02ea6cdc3cec664fc07eae7a140daba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gab37c036129b2639788fda43ae35d9a2c"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00021.html#ga538c5d56286639b787c8946ca2d1f085">_hal_AUDIO_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a></td></tr>
<tr class="memdesc:gab37c036129b2639788fda43ae35d9a2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio status. <a href="#gab37c036129b2639788fda43ae35d9a2c">More...</a><br/></td></tr>
<tr class="separator:gab37c036129b2639788fda43ae35d9a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2fbd023bca2b11fd4592c681bf3794e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2fbd023bca2b11fd4592c681bf3794e"></a>
typedef enum <a class="el" href="a00021.html#gadafc362791371b7bfc6a82c3ed6ffc46">_hal_audio_channel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaf2fbd023bca2b11fd4592c681bf3794e">hal_audio_channel_t</a></td></tr>
<tr class="memdesc:gaf2fbd023bca2b11fd4592c681bf3794e"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio channel number. <br/></td></tr>
<tr class="separator:gaf2fbd023bca2b11fd4592c681bf3794e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c1e8a4be271bd67aa1c0df30784f720"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3c1e8a4be271bd67aa1c0df30784f720"></a>
typedef enum <a class="el" href="a00021.html#ga69ac012772c5afe53ab954bba83e9a93">_hal_audio_sample_rate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3c1e8a4be271bd67aa1c0df30784f720">hal_audio_sample_rate_t</a></td></tr>
<tr class="memdesc:ga3c1e8a4be271bd67aa1c0df30784f720"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio sample rate. <br/></td></tr>
<tr class="separator:ga3c1e8a4be271bd67aa1c0df30784f720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4eaba927e6ce9ea34c4bcd530c8a5d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac4eaba927e6ce9ea34c4bcd530c8a5d6"></a>
typedef enum <a class="el" href="a00021.html#gadae4000ca7499552b791b50420a8c25e">_hal_audio_bit_width</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac4eaba927e6ce9ea34c4bcd530c8a5d6">hal_audio_bit_width_t</a></td></tr>
<tr class="memdesc:gac4eaba927e6ce9ea34c4bcd530c8a5d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio bit width. <br/></td></tr>
<tr class="separator:gac4eaba927e6ce9ea34c4bcd530c8a5d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6658fa90572d72bb521c187aea436440"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6658fa90572d72bb521c187aea436440"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#gac4a3fc84263ef4bbaf637612241dfbdc">_hal_audio_bclk_polarity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga6658fa90572d72bb521c187aea436440">hal_audio_bclk_polarity_t</a></td></tr>
<tr class="memdesc:ga6658fa90572d72bb521c187aea436440"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio bit clock polarity. <br/></td></tr>
<tr class="separator:ga6658fa90572d72bb521c187aea436440"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa18bcfd757fd9f2c40c3a6a0ffce5b22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa18bcfd757fd9f2c40c3a6a0ffce5b22"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#gaa5797a20e18ae5ad68ecb6c49b0a4fb5">_hal_audio_frame_sync_width</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaa18bcfd757fd9f2c40c3a6a0ffce5b22">hal_audio_frame_sync_width_t</a></td></tr>
<tr class="memdesc:gaa18bcfd757fd9f2c40c3a6a0ffce5b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio frame sync width. <br/></td></tr>
<tr class="separator:gaa18bcfd757fd9f2c40c3a6a0ffce5b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga538876c723afd94fd4e54227f55b4b3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga538876c723afd94fd4e54227f55b4b3e"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#ga98a2054ce6a2c26d83c37a61ac2adb6a">_hal_audio_frame_sync_polarity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga538876c723afd94fd4e54227f55b4b3e">hal_audio_frame_sync_polarity_t</a></td></tr>
<tr class="memdesc:ga538876c723afd94fd4e54227f55b4b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio frame sync polarity. <br/></td></tr>
<tr class="separator:ga538876c723afd94fd4e54227f55b4b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24b04f178388c9f1ab0da8c2d339e2bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24b04f178388c9f1ab0da8c2d339e2bd"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#ga4a80c8476fc08dd86418f692c16ef43b">_hal_audio_master_slave</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga24b04f178388c9f1ab0da8c2d339e2bd">hal_audio_master_slave_t</a></td></tr>
<tr class="memdesc:ga24b04f178388c9f1ab0da8c2d339e2bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio master or slave mode. <br/></td></tr>
<tr class="separator:ga24b04f178388c9f1ab0da8c2d339e2bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae63fec43b738b97f1304569cbc678973"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae63fec43b738b97f1304569cbc678973"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#ga20db8590e0b4702f972b835f6dd9e5a9">_hal_audio_sai_sync_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gae63fec43b738b97f1304569cbc678973">hal_audio_sai_sync_mode_t</a></td></tr>
<tr class="memdesc:gae63fec43b738b97f1304569cbc678973"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous or asynchronous mode, only for SAI configuration. <br/></td></tr>
<tr class="separator:gae63fec43b738b97f1304569cbc678973"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac052be285aa45030a72ffbf95750406d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac052be285aa45030a72ffbf95750406d"></a>
typedef enum <a class="el" href="a00021.html#ga02053b34142d28678492a5b7e5916d80">_hal_audio_data_format</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac052be285aa45030a72ffbf95750406d">hal_audio_data_format_t</a></td></tr>
<tr class="memdesc:gac052be285aa45030a72ffbf95750406d"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio data format. <br/></td></tr>
<tr class="separator:gac052be285aa45030a72ffbf95750406d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7079462f9c8aa6deec6e11810f0f0ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab7079462f9c8aa6deec6e11810f0f0ab"></a>
typedef enum <br class="typebreak"/>
<a class="el" href="a00021.html#ga973d128ecaccf2506ee38e4156577dd8">_hal_audio_dma_channel_priority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gab7079462f9c8aa6deec6e11810f0f0ab">hal_audio_dma_channel_priority_t</a></td></tr>
<tr class="memdesc:gab7079462f9c8aa6deec6e11810f0f0ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA channel priority. <br/></td></tr>
<tr class="separator:gab7079462f9c8aa6deec6e11810f0f0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2b5cafe569e366acd8403bc2e77e692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac2b5cafe569e366acd8403bc2e77e692"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00332">_hal_audio_dma_mux_config_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac2b5cafe569e366acd8403bc2e77e692">hal_audio_dma_mux_config_t</a></td></tr>
<tr class="memdesc:gac2b5cafe569e366acd8403bc2e77e692"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA mux user configuration. <br/></td></tr>
<tr class="separator:gac2b5cafe569e366acd8403bc2e77e692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab79474b5cd70d934305cba5eb91b4e71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab79474b5cd70d934305cba5eb91b4e71"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00329">_hal_audio_dma_channel_mux_config_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gab79474b5cd70d934305cba5eb91b4e71">hal_audio_dma_channel_mux_config_t</a></td></tr>
<tr class="memdesc:gab79474b5cd70d934305cba5eb91b4e71"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA channel mux user configuration. <br/></td></tr>
<tr class="separator:gab79474b5cd70d934305cba5eb91b4e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3cb820642e8f426fec49f43b85f98b80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3cb820642e8f426fec49f43b85f98b80"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00331">_hal_audio_dma_extra_config_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga3cb820642e8f426fec49f43b85f98b80">hal_audio_dma_extra_config_t</a></td></tr>
<tr class="memdesc:ga3cb820642e8f426fec49f43b85f98b80"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA extra user configuration. <br/></td></tr>
<tr class="separator:ga3cb820642e8f426fec49f43b85f98b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07f9750d850c1256022a2ff5c50c32e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f9750d850c1256022a2ff5c50c32e2"></a>
typedef struct <br class="typebreak"/>
<a class="el" href="a00021.html#a00330">_hal_audio_dma_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga07f9750d850c1256022a2ff5c50c32e2">hal_audio_dma_config_t</a></td></tr>
<tr class="memdesc:ga07f9750d850c1256022a2ff5c50c32e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA user configuration. <br/></td></tr>
<tr class="separator:ga07f9750d850c1256022a2ff5c50c32e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace0a6169fa9e366941b21e49f1ced2d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace0a6169fa9e366941b21e49f1ced2d4"></a>
typedef struct <a class="el" href="a00021.html#a00333">_hal_audio_ip_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gace0a6169fa9e366941b21e49f1ced2d4">hal_audio_ip_config_t</a></td></tr>
<tr class="memdesc:gace0a6169fa9e366941b21e49f1ced2d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio IP specific feature configuration. <br/></td></tr>
<tr class="separator:gace0a6169fa9e366941b21e49f1ced2d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3e9a237277c1e06748a5181bbc838c9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00021.html#a00328">_hal_audio_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a></td></tr>
<tr class="memdesc:gad3e9a237277c1e06748a5181bbc838c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio configuration structure. <a href="#gad3e9a237277c1e06748a5181bbc838c9">More...</a><br/></td></tr>
<tr class="separator:gad3e9a237277c1e06748a5181bbc838c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga303245f7b3153a4f1d0d8b252715870d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00021.html#a00334">_hal_audio_transfer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a></td></tr>
<tr class="memdesc:ga303245f7b3153a4f1d0d8b252715870d"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio transfer structure. <a href="#ga303245f7b3153a4f1d0d8b252715870d">More...</a><br/></td></tr>
<tr class="separator:ga303245f7b3153a4f1d0d8b252715870d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ab057ea8ba06c18918361df1a205f68"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a></td></tr>
<tr class="memdesc:ga0ab057ea8ba06c18918361df1a205f68"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio transfer handle. <a href="#ga0ab057ea8ba06c18918361df1a205f68">More...</a><br/></td></tr>
<tr class="separator:ga0ab057ea8ba06c18918361df1a205f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0705d30b96ea89af38737e4dd5f59b1c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga0705d30b96ea89af38737e4dd5f59b1c">hal_audio_transfer_callback_t</a> )(<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> completionStatus, void *callbackParam)</td></tr>
<tr class="memdesc:ga0705d30b96ea89af38737e4dd5f59b1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio completion callback function pointer type. <a href="#ga0705d30b96ea89af38737e4dd5f59b1c">More...</a><br/></td></tr>
<tr class="separator:ga0705d30b96ea89af38737e4dd5f59b1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga538c5d56286639b787c8946ca2d1f085"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga538c5d56286639b787c8946ca2d1f085">_hal_AUDIO_status</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085a4734405d67917e9a051689654d125874">kStatus_HAL_AudioSuccess</a> = kStatus_Success,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085af3ea86f5438f37e92cfa63e41974f242">kStatus_HAL_AudioError</a> = MAKE_STATUS(kStatusGroup_HAL_I2S, 1),
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085a79e2bdf2f5d19307c0e84c0b52b0def1">kStatus_HAL_AudioBusy</a> = MAKE_STATUS(kStatusGroup_HAL_I2S, 2),
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085ae653e4da69e3839e4e827f51bcbe3352">kStatus_HAL_AudioIdle</a> = MAKE_STATUS(kStatusGroup_HAL_I2S, 3),
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085a8e6fc7246b988e729e56b35117780d6d">kStatus_HAL_AudioQueueFull</a> = MAKE_STATUS(kStatusGroup_HAL_I2S, 4)
<br/>
}</td></tr>
<tr class="memdesc:ga538c5d56286639b787c8946ca2d1f085"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio status. <a href="a00021.html#ga538c5d56286639b787c8946ca2d1f085">More...</a><br/></td></tr>
<tr class="separator:ga538c5d56286639b787c8946ca2d1f085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadafc362791371b7bfc6a82c3ed6ffc46"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gadafc362791371b7bfc6a82c3ed6ffc46">_hal_audio_channel</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a6a42a6bc3572ec780b7da736decc28d2">kHAL_AudioMono</a> = 0x7FU,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a4fb3709032b861049f1c3134e509d98b">kHAL_AudioMonoRight</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a1e8989c0a5893a67b5520fa4069e4bb9">kHAL_AudioMonoLeft</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926">kHAL_AudioStereo</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a37fa77261dc1d372da32c33994ee2090">kHAL_AudioStereo3Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46ac5c70e5b5bceefac823719697aa5f0f3">kHAL_AudioStereo4Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46add2d53bf6e582d737be0cf0eff8e294d">kHAL_AudioStereo5Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a071bc278227e015a25add3ff4c29b641">kHAL_AudioStereo6Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46ac07978d21d64a839f449381265ef3943">kHAL_AudioStereo7Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a9372a25c2e2ccbbcc36883b98adf5ac0">kHAL_AudioStereo8Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46afc14a1741c28e0bcc812579a794f08bd">kHAL_AudioStereo9Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46afa8bdd81b1d0f99f68a3541c40f83cb5">kHAL_AudioStereo10Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a7b649cb8e9751d6c999fb951b55131d1">kHAL_AudioStereo11Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a15494bff10f247b0f9c9cc30049d3e51">kHAL_AudioStereo12Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a519bd2be0a9fc7ab310036266774ad9a">kHAL_AudioStereo13Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a7195d505c666b15d7b39f2963e1745b1">kHAL_AudioStereo14Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a6a745bf34a95569b03a27fd69fef126d">kHAL_AudioStereo15Channel</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46ad65522e0ead30425fc984ac523950904">kHAL_AudioStereo16Channel</a>
<br/>
}</td></tr>
<tr class="memdesc:gadafc362791371b7bfc6a82c3ed6ffc46"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio channel number. <a href="a00021.html#gadafc362791371b7bfc6a82c3ed6ffc46">More...</a><br/></td></tr>
<tr class="separator:gadafc362791371b7bfc6a82c3ed6ffc46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69ac012772c5afe53ab954bba83e9a93"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga69ac012772c5afe53ab954bba83e9a93">_hal_audio_sample_rate</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93aee3e759008410655673ac1192935956c">kHAL_AudioSampleRate8KHz</a> = 8000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93aa690004e820639d0be42a5757d808636">kHAL_AudioSampleRate11025Hz</a> = 11025U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a3c1e96bdcbf3c95a3b316832550e1bb9">kHAL_AudioSampleRate12KHz</a> = 12000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a9e57f2dc5b056d77b28b967738d32c8a">kHAL_AudioSampleRate16KHz</a> = 16000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a2da92585de3432f01752164f7e20115f">kHAL_AudioSampleRate22050Hz</a> = 22050U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a3f6836c148a31827c6fabb5ebad37522">kHAL_AudioSampleRate24KHz</a> = 24000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93adbbc39fab513fdcf587b859fd3f4c5dc">kHAL_AudioSampleRate32KHz</a> = 32000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93ad0c8063eef7fd8c410508a0e33a2aa56">kHAL_AudioSampleRate44100Hz</a> = 44100U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf">kHAL_AudioSampleRate48KHz</a> = 48000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93ae8ce2b240675f3c3f33bd4d7d17e6c63">kHAL_AudioSampleRate96KHz</a> = 96000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93ae9381843e5447bca377db95cd636fb34">kHAL_AudioSampleRate192KHz</a> = 192000U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a3a88755e910a4fed463220cddb19eae3">kHAL_AudioSampleRate384KHz</a> = 384000U
<br/>
}</td></tr>
<tr class="memdesc:ga69ac012772c5afe53ab954bba83e9a93"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio sample rate. <a href="a00021.html#ga69ac012772c5afe53ab954bba83e9a93">More...</a><br/></td></tr>
<tr class="separator:ga69ac012772c5afe53ab954bba83e9a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadae4000ca7499552b791b50420a8c25e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gadae4000ca7499552b791b50420a8c25e">_hal_audio_bit_width</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea3adbd9c84e70c58326d1ef1e6a4c0d4a">kHAL_AudioWordWidth8bits</a> = 8U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29">kHAL_AudioWordWidth16bits</a> = 16U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ead9c9d487fbc5b454266ab00c07087418">kHAL_AudioWordWidth24bits</a> = 24U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggadae4000ca7499552b791b50420a8c25eada07cba583f6387fb1a965bd59761c96">kHAL_AudioWordWidth32bits</a> = 32U
<br/>
}</td></tr>
<tr class="memdesc:gadae4000ca7499552b791b50420a8c25e"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio bit width. <a href="a00021.html#gadae4000ca7499552b791b50420a8c25e">More...</a><br/></td></tr>
<tr class="separator:gadae4000ca7499552b791b50420a8c25e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4a3fc84263ef4bbaf637612241dfbdc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac4a3fc84263ef4bbaf637612241dfbdc">_hal_audio_bclk_polarity</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca3728a7adfcdb1741d2cf552302d639e2">kHAL_AudioSampleOnFallingEdge</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2">kHAL_AudioSampleOnRisingEdge</a>
<br/>
}</td></tr>
<tr class="memdesc:gac4a3fc84263ef4bbaf637612241dfbdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio bit clock polarity. <a href="a00021.html#gac4a3fc84263ef4bbaf637612241dfbdc">More...</a><br/></td></tr>
<tr class="separator:gac4a3fc84263ef4bbaf637612241dfbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5797a20e18ae5ad68ecb6c49b0a4fb5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaa5797a20e18ae5ad68ecb6c49b0a4fb5">_hal_audio_frame_sync_width</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5a354cb68b4d263308923c86189e090de0">kHAL_AudioFrameSyncWidthOneBitClk</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5a798869e0ebe3c62559c70cd8b005e7e2">kHAL_AudioFrameSyncWidthPerWordWidth</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293">kHAL_AudioFrameSyncWidthHalfFrame</a>
<br/>
}</td></tr>
<tr class="memdesc:gaa5797a20e18ae5ad68ecb6c49b0a4fb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio frame sync width. <a href="a00021.html#gaa5797a20e18ae5ad68ecb6c49b0a4fb5">More...</a><br/></td></tr>
<tr class="separator:gaa5797a20e18ae5ad68ecb6c49b0a4fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98a2054ce6a2c26d83c37a61ac2adb6a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga98a2054ce6a2c26d83c37a61ac2adb6a">_hal_audio_frame_sync_polarity</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aae8821fc7284f086fec40e86c17b41b21">kHAL_AudioBeginAtRisingEdge</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030">kHAL_AudioBeginAtFallingEdge</a>
<br/>
}</td></tr>
<tr class="memdesc:ga98a2054ce6a2c26d83c37a61ac2adb6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio frame sync polarity. <a href="a00021.html#ga98a2054ce6a2c26d83c37a61ac2adb6a">More...</a><br/></td></tr>
<tr class="separator:ga98a2054ce6a2c26d83c37a61ac2adb6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a80c8476fc08dd86418f692c16ef43b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga4a80c8476fc08dd86418f692c16ef43b">_hal_audio_master_slave</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482">kHAL_AudioMaster</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43ba86e0dcf481c724f40944740430e7a9ff">kHAL_AudioSlave</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43ba14b33611812a088ad96d765f49d5fec4">kHAL_AudioBclkMasterFrameSyncSlave</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43ba32b43a82ad20d27627c221a7786b340e">kHAL_AudioBclkSlaveFrameSyncMaster</a>
<br/>
}</td></tr>
<tr class="memdesc:ga4a80c8476fc08dd86418f692c16ef43b"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio master or slave mode. <a href="a00021.html#ga4a80c8476fc08dd86418f692c16ef43b">More...</a><br/></td></tr>
<tr class="separator:ga4a80c8476fc08dd86418f692c16ef43b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20db8590e0b4702f972b835f6dd9e5a9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga20db8590e0b4702f972b835f6dd9e5a9">_hal_audio_sai_sync_mode</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga20db8590e0b4702f972b835f6dd9e5a9a140da745bafa767f94392daff3162253">kHAL_AudioSaiModeAsync</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga20db8590e0b4702f972b835f6dd9e5a9ad930dc965e51467b9aa797c188b9fb81">kHAL_AudioSaiModeSync</a>
<br/>
}</td></tr>
<tr class="memdesc:ga20db8590e0b4702f972b835f6dd9e5a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous or asynchronous mode, only for SAI configuration. <a href="a00021.html#ga20db8590e0b4702f972b835f6dd9e5a9">More...</a><br/></td></tr>
<tr class="separator:ga20db8590e0b4702f972b835f6dd9e5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02053b34142d28678492a5b7e5916d80"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga02053b34142d28678492a5b7e5916d80">_hal_audio_data_format</a> { <br/>
&#160;&#160;<a class="el" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30">kHAL_AudioDataFormatI2sClassic</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga02053b34142d28678492a5b7e5916d80a492c0c96404d061dfc61badbd0c25e1e">kHAL_AudioDataFormatLeftJustified</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga02053b34142d28678492a5b7e5916d80acc6a88d87feca7d380cb56f2b92c969a">kHAL_AudioDataFormatRightJustified</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ad566edf7cb77d376932dc536ae7a9c39">kHAL_AudioDataFormatDspModeA</a>,
<br/>
&#160;&#160;<a class="el" href="a00021.html#gga02053b34142d28678492a5b7e5916d80a61b996cc7a2d9b00fbea7313d0cc8081">kHAL_AudioDataFormatDspModeB</a>
<br/>
}</td></tr>
<tr class="memdesc:ga02053b34142d28678492a5b7e5916d80"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio data format. <a href="a00021.html#ga02053b34142d28678492a5b7e5916d80">More...</a><br/></td></tr>
<tr class="separator:ga02053b34142d28678492a5b7e5916d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga973d128ecaccf2506ee38e4156577dd8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga973d128ecaccf2506ee38e4156577dd8">_hal_audio_dma_channel_priority</a> { , <a class="el" href="a00021.html#gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d">kHAL_AudioDmaChannelPriorityDefault</a> = 0xFFU
}</td></tr>
<tr class="memdesc:ga973d128ecaccf2506ee38e4156577dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">HAL Audio DMA channel priority. <a href="a00021.html#ga973d128ecaccf2506ee38e4156577dd8">More...</a><br/></td></tr>
<tr class="separator:ga973d128ecaccf2506ee38e4156577dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and de-initialization</h2></td></tr>
<tr class="memitem:ga67e038ddd548889c7372a306385d26af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga67e038ddd548889c7372a306385d26af">HAL_AudioTxInit</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, const <a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a> *config)</td></tr>
<tr class="memdesc:ga67e038ddd548889c7372a306385d26af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the HAL Audio peripheral. <a href="#ga67e038ddd548889c7372a306385d26af">More...</a><br/></td></tr>
<tr class="separator:ga67e038ddd548889c7372a306385d26af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad942b9cd73faf79c77f26fab3cd8a74b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gad942b9cd73faf79c77f26fab3cd8a74b">HAL_AudioRxInit</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, const <a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a> *config)</td></tr>
<tr class="memdesc:gad942b9cd73faf79c77f26fab3cd8a74b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the HAL Audio peripheral. <a href="#gad942b9cd73faf79c77f26fab3cd8a74b">More...</a><br/></td></tr>
<tr class="separator:gad942b9cd73faf79c77f26fab3cd8a74b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c20e45d2dd6fadd2429930bb9129fcd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga9c20e45d2dd6fadd2429930bb9129fcd">HAL_AudioTxDeinit</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga9c20e45d2dd6fadd2429930bb9129fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the HAL Audio peripheral. <a href="#ga9c20e45d2dd6fadd2429930bb9129fcd">More...</a><br/></td></tr>
<tr class="separator:ga9c20e45d2dd6fadd2429930bb9129fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8405a274028f44285cd89c7e488f6769"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga8405a274028f44285cd89c7e488f6769">HAL_AudioRxDeinit</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga8405a274028f44285cd89c7e488f6769"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the HAL Audio peripheral. <a href="#ga8405a274028f44285cd89c7e488f6769">More...</a><br/></td></tr>
<tr class="separator:ga8405a274028f44285cd89c7e488f6769"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Transactional</h2></td></tr>
<tr class="memitem:ga01fac2a44e2535706127d24baafefddd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga01fac2a44e2535706127d24baafefddd">HAL_AudioTxInstallCallback</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#ga0705d30b96ea89af38737e4dd5f59b1c">hal_audio_transfer_callback_t</a> callback, void *callbackParam)</td></tr>
<tr class="memdesc:ga01fac2a44e2535706127d24baafefddd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a callback and callback parameter. <a href="#ga01fac2a44e2535706127d24baafefddd">More...</a><br/></td></tr>
<tr class="separator:ga01fac2a44e2535706127d24baafefddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa65562bd1bf840d79a102e397c668f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gafa65562bd1bf840d79a102e397c668f6">HAL_AudioRxInstallCallback</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#ga0705d30b96ea89af38737e4dd5f59b1c">hal_audio_transfer_callback_t</a> callback, void *callbackParam)</td></tr>
<tr class="memdesc:gafa65562bd1bf840d79a102e397c668f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a callback and callback parameter. <a href="#gafa65562bd1bf840d79a102e397c668f6">More...</a><br/></td></tr>
<tr class="separator:gafa65562bd1bf840d79a102e397c668f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea53d08dcdf71c3e49cb3ab6e0f84687"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaea53d08dcdf71c3e49cb3ab6e0f84687">HAL_AudioTransferSendNonBlocking</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:gaea53d08dcdf71c3e49cb3ab6e0f84687"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a DMA non-blocking send on the data bus. <a href="#gaea53d08dcdf71c3e49cb3ab6e0f84687">More...</a><br/></td></tr>
<tr class="separator:gaea53d08dcdf71c3e49cb3ab6e0f84687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36aceb067e0f69bc33b7fdefc0a53b62"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ga36aceb067e0f69bc33b7fdefc0a53b62">HAL_AudioTransferReceiveNonBlocking</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:ga36aceb067e0f69bc33b7fdefc0a53b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a DMA non-blocking receive on the HAL Audio bus. <a href="#ga36aceb067e0f69bc33b7fdefc0a53b62">More...</a><br/></td></tr>
<tr class="separator:ga36aceb067e0f69bc33b7fdefc0a53b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa75d3880e50143a320324b9539d15de7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gaa75d3880e50143a320324b9539d15de7">HAL_AudioTransferAbortSend</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle)</td></tr>
<tr class="memdesc:gaa75d3880e50143a320324b9539d15de7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts a DMA non-blocking transfer early. <a href="#gaa75d3880e50143a320324b9539d15de7">More...</a><br/></td></tr>
<tr class="separator:gaa75d3880e50143a320324b9539d15de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb15358f15daa606b38585706be66a83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gabb15358f15daa606b38585706be66a83">HAL_AudioTransferAbortReceive</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle)</td></tr>
<tr class="memdesc:gabb15358f15daa606b38585706be66a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts a DMA non-blocking transfer early. <a href="#gabb15358f15daa606b38585706be66a83">More...</a><br/></td></tr>
<tr class="separator:gabb15358f15daa606b38585706be66a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3e9bf4412855c8f5b1748b7d08c997b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gae3e9bf4412855c8f5b1748b7d08c997b">HAL_AudioTransferGetSendCount</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, size_t *count)</td></tr>
<tr class="memdesc:gae3e9bf4412855c8f5b1748b7d08c997b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the tx transfer status during a DMA non-blocking transfer. <a href="#gae3e9bf4412855c8f5b1748b7d08c997b">More...</a><br/></td></tr>
<tr class="separator:gae3e9bf4412855c8f5b1748b7d08c997b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac916b6d1d634d80f07fb88d56b18bc71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#gac916b6d1d634d80f07fb88d56b18bc71">HAL_AudioTransferGetReceiveCount</a> (<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, size_t *count)</td></tr>
<tr class="memdesc:gac916b6d1d634d80f07fb88d56b18bc71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the rx transfer status during a DMA non-blocking transfer. <a href="#gac916b6d1d634d80f07fb88d56b18bc71">More...</a><br/></td></tr>
<tr class="separator:gac916b6d1d634d80f07fb88d56b18bc71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00332" id="a00332"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_dma_mux_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00329" id="a00329"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_dma_channel_mux_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00331" id="a00331"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_dma_extra_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div>
</div>
</div>
<a name="a00330" id="a00330"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_dma_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a4a77178c988c6a2833e0d3fb2aaf5294"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a77178c988c6a2833e0d3fb2aaf5294"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a4a77178c988c6a2833e0d3fb2aaf5294">instance</a></td></tr>
<tr class="memdesc:a4a77178c988c6a2833e0d3fb2aaf5294"><td class="mdescLeft">&#160;</td><td class="mdescRight">DMA instance. <br/></td></tr>
<tr class="separator:a4a77178c988c6a2833e0d3fb2aaf5294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ff70b42131976742a0c2ff27455a915"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ff70b42131976742a0c2ff27455a915"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a5ff70b42131976742a0c2ff27455a915">channel</a></td></tr>
<tr class="memdesc:a5ff70b42131976742a0c2ff27455a915"><td class="mdescLeft">&#160;</td><td class="mdescRight">DMA channel. <br/></td></tr>
<tr class="separator:a5ff70b42131976742a0c2ff27455a915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a339385e21d2c4685011184b72350af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a339385e21d2c4685011184b72350af"></a>
<a class="el" href="a00021.html#gab7079462f9c8aa6deec6e11810f0f0ab">hal_audio_dma_channel_priority_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a2a339385e21d2c4685011184b72350af">priority</a></td></tr>
<tr class="memdesc:a2a339385e21d2c4685011184b72350af"><td class="mdescLeft">&#160;</td><td class="mdescRight">DMA channel priority. <br/></td></tr>
<tr class="separator:a2a339385e21d2c4685011184b72350af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c64f3a8f0fff1b431c44485a031b6ad"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a1c64f3a8f0fff1b431c44485a031b6ad">enablePreemption</a></td></tr>
<tr class="memdesc:a1c64f3a8f0fff1b431c44485a031b6ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">If true, a channel can be suspended by other channel with higher priority. <a href="#a1c64f3a8f0fff1b431c44485a031b6ad">More...</a><br/></td></tr>
<tr class="separator:a1c64f3a8f0fff1b431c44485a031b6ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32b15848cd0c8bd767a5060aa568aa4d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a32b15848cd0c8bd767a5060aa568aa4d">enablePreemptAbility</a></td></tr>
<tr class="memdesc:a32b15848cd0c8bd767a5060aa568aa4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">If true, a channel can suspend other channel with low priority Not all SOCs support this feature. <a href="#a32b15848cd0c8bd767a5060aa568aa4d">More...</a><br/></td></tr>
<tr class="separator:a32b15848cd0c8bd767a5060aa568aa4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36919178fc4c37d6b53d2a0dbc01e2a2"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a36919178fc4c37d6b53d2a0dbc01e2a2">dmaMuxConfig</a></td></tr>
<tr class="memdesc:a36919178fc4c37d6b53d2a0dbc01e2a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pointer points to an entity defined by hal_audio_dma_mux_config_t. <a href="#a36919178fc4c37d6b53d2a0dbc01e2a2">More...</a><br/></td></tr>
<tr class="separator:a36919178fc4c37d6b53d2a0dbc01e2a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56fff37511820acc3c6c2b73820e338d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a56fff37511820acc3c6c2b73820e338d">dmaChannelMuxConfig</a></td></tr>
<tr class="memdesc:a56fff37511820acc3c6c2b73820e338d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pointer points to an entity defined by hal_audio_dma_channel_mux_config_t. <a href="#a56fff37511820acc3c6c2b73820e338d">More...</a><br/></td></tr>
<tr class="separator:a56fff37511820acc3c6c2b73820e338d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8669a1732114da82aa6e0dfac81639d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ad8669a1732114da82aa6e0dfac81639d">dmaChannelConfig</a></td></tr>
<tr class="memdesc:ad8669a1732114da82aa6e0dfac81639d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pointer points to an entity defined by channel configuration structure that is defined in dma driver, such as edma_channel_config_t. <a href="#ad8669a1732114da82aa6e0dfac81639d">More...</a><br/></td></tr>
<tr class="separator:ad8669a1732114da82aa6e0dfac81639d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e9831a8b7264927f7ebe9e4f4f1ee6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a77e9831a8b7264927f7ebe9e4f4f1ee6">dmaExtraConfig</a></td></tr>
<tr class="memdesc:a77e9831a8b7264927f7ebe9e4f4f1ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The pointer points to an entity defined by hal_audio_dma_extra_config_t. <a href="#a77e9831a8b7264927f7ebe9e4f4f1ee6">More...</a><br/></td></tr>
<tr class="separator:a77e9831a8b7264927f7ebe9e4f4f1ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a1c64f3a8f0fff1b431c44485a031b6ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _hal_audio_dma_config::enablePreemption</td>
</tr>
</table>
</div><div class="memdoc">
<p>Not all SOCs support this feature. For example, EDMA, DMA4 supports this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the value should be set to false. </p>
</div>
</div>
<a class="anchor" id="a32b15848cd0c8bd767a5060aa568aa4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _hal_audio_dma_config::enablePreemptAbility</td>
</tr>
</table>
</div><div class="memdoc">
<p>For example, EDMA, DMA4 supports this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the value should be set to false. </p>
</div>
</div>
<a class="anchor" id="a36919178fc4c37d6b53d2a0dbc01e2a2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _hal_audio_dma_config::dmaMuxConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>Not all SOCs support this feature. In general, when the macro FSL_FEATURE_SOC_DMAMUX_COUNT is defined as non-zero, the SOC supports this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the pointer should be set to NULL. </p>
</div>
</div>
<a class="anchor" id="a56fff37511820acc3c6c2b73820e338d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _hal_audio_dma_config::dmaChannelMuxConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>Not all SOCs support this feature. In general, when the macro FSL_FEATURE_EDMA_HAS_CHANNEL_MUX is defined as non-zero, the SOC supports this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the pointer should be set to NULL. </p>
</div>
</div>
<a class="anchor" id="ad8669a1732114da82aa6e0dfac81639d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _hal_audio_dma_config::dmaChannelConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>Not all SOCs support this feature. In general, when the macro FSL_FEATURE_EDMA_HAS_CHANNEL_CONFIG is defined as non-zero, the SOC supports this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the pointer should be set to NULL. </p>
</div>
</div>
<a class="anchor" id="a77e9831a8b7264927f7ebe9e4f4f1ee6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _hal_audio_dma_config::dmaExtraConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>Some DMA IPs have extra configurations, such as EDMA, DMA4. The structure is used for these extra configurations. Not all SOCs support this feature. For detailed information please refer to the SOC corresponding RM. If not supported, the pointer should be set to NULL. </p>
</div>
</div>
</div>
</div>
<a name="a00333" id="a00333"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_ip_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a406e5a594e28065a39a72dddc4277b5b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _hal_audio_ip_config::lineMask</td>
</tr>
</table>
</div><div class="memdoc">
<p>lineMask = 0x1U, represents RX0/TX0 data line is enabled. lineMask = 0xFU, represents RX0-3/TX0-3 data line are enabled. </p>
</div>
</div>
</div>
</div>
<a name="a00328" id="a00328"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a942f2412f04afc1c05844d6cbc7449eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a942f2412f04afc1c05844d6cbc7449eb"></a>
<a class="el" href="a00021.html#ga07f9750d850c1256022a2ff5c50c32e2">hal_audio_dma_config_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a942f2412f04afc1c05844d6cbc7449eb">dmaConfig</a></td></tr>
<tr class="memdesc:a942f2412f04afc1c05844d6cbc7449eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">DMA configuration. <br/></td></tr>
<tr class="separator:a942f2412f04afc1c05844d6cbc7449eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1e183904f374465c00ad486fe0f0dc1"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ae1e183904f374465c00ad486fe0f0dc1">ipConfig</a></td></tr>
<tr class="memdesc:ae1e183904f374465c00ad486fe0f0dc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">IP specific feature configuration. <a href="#ae1e183904f374465c00ad486fe0f0dc1">More...</a><br/></td></tr>
<tr class="separator:ae1e183904f374465c00ad486fe0f0dc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fc7d0dd2ea5caeed299c273765937fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fc7d0dd2ea5caeed299c273765937fd"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a3fc7d0dd2ea5caeed299c273765937fd">srcClock_Hz</a></td></tr>
<tr class="memdesc:a3fc7d0dd2ea5caeed299c273765937fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source clock. <br/></td></tr>
<tr class="separator:a3fc7d0dd2ea5caeed299c273765937fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa852f5b0038e6b5422b069938798a9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa852f5b0038e6b5422b069938798a9b"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aaa852f5b0038e6b5422b069938798a9b">sampleRate_Hz</a></td></tr>
<tr class="memdesc:aaa852f5b0038e6b5422b069938798a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sample rate. <br/></td></tr>
<tr class="separator:aaa852f5b0038e6b5422b069938798a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51c45bd581e12c462f3a83a12c7402f7"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a51c45bd581e12c462f3a83a12c7402f7">frameLength</a></td></tr>
<tr class="memdesc:a51c45bd581e12c462f3a83a12c7402f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Only flexcomm_i2s uses this field. <a href="#a51c45bd581e12c462f3a83a12c7402f7">More...</a><br/></td></tr>
<tr class="separator:a51c45bd581e12c462f3a83a12c7402f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab56b962eb89b37c319521c8c61828c35"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ab56b962eb89b37c319521c8c61828c35">fifoWatermark</a></td></tr>
<tr class="memdesc:ab56b962eb89b37c319521c8c61828c35"><td class="mdescLeft">&#160;</td><td class="mdescRight">FIFO watermark value. <a href="#ab56b962eb89b37c319521c8c61828c35">More...</a><br/></td></tr>
<tr class="separator:ab56b962eb89b37c319521c8c61828c35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f97b667d28ab0148bc1eaa861682f02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga24b04f178388c9f1ab0da8c2d339e2bd">hal_audio_master_slave_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a4f97b667d28ab0148bc1eaa861682f02">msaterSlave</a></td></tr>
<tr class="memdesc:a4f97b667d28ab0148bc1eaa861682f02"><td class="mdescLeft">&#160;</td><td class="mdescRight">master or slave, configure where the bclk and frame sync come from. <a href="#a4f97b667d28ab0148bc1eaa861682f02">More...</a><br/></td></tr>
<tr class="separator:a4f97b667d28ab0148bc1eaa861682f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8abeaeeba32fd3ebc7bca4f95e4713c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga6658fa90572d72bb521c187aea436440">hal_audio_bclk_polarity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a8abeaeeba32fd3ebc7bca4f95e4713c5">bclkPolarity</a></td></tr>
<tr class="memdesc:a8abeaeeba32fd3ebc7bca4f95e4713c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">bclk polarity, data sample on rising edge or falling edge. <a href="#a8abeaeeba32fd3ebc7bca4f95e4713c5">More...</a><br/></td></tr>
<tr class="separator:a8abeaeeba32fd3ebc7bca4f95e4713c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02d48008f6707b1f95eae1f9f30d0299"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gaa18bcfd757fd9f2c40c3a6a0ffce5b22">hal_audio_frame_sync_width_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a02d48008f6707b1f95eae1f9f30d0299">frameSyncWidth</a></td></tr>
<tr class="memdesc:a02d48008f6707b1f95eae1f9f30d0299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Only DSP mode uses this field. <a href="#a02d48008f6707b1f95eae1f9f30d0299">More...</a><br/></td></tr>
<tr class="separator:a02d48008f6707b1f95eae1f9f30d0299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11008066d8249c7199647df3e4abd2f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#ga538876c723afd94fd4e54227f55b4b3e">hal_audio_frame_sync_polarity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a11008066d8249c7199647df3e4abd2f8">frameSyncPolarity</a></td></tr>
<tr class="memdesc:a11008066d8249c7199647df3e4abd2f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">frame sync polarity, frame sync begin at rising or falling edge. <a href="#a11008066d8249c7199647df3e4abd2f8">More...</a><br/></td></tr>
<tr class="separator:a11008066d8249c7199647df3e4abd2f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87c86e57c86366f63a4d4558917920a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00021.html#gaf2fbd023bca2b11fd4592c681bf3794e">hal_audio_channel_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a87c86e57c86366f63a4d4558917920a1">lineChannels</a></td></tr>
<tr class="memdesc:a87c86e57c86366f63a4d4558917920a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the number of channel on the data line. <a href="#a87c86e57c86366f63a4d4558917920a1">More...</a><br/></td></tr>
<tr class="separator:a87c86e57c86366f63a4d4558917920a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89e37f1928110fef0f41b1aee719f74c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89e37f1928110fef0f41b1aee719f74c"></a>
<a class="el" href="a00021.html#gac052be285aa45030a72ffbf95750406d">hal_audio_data_format_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a89e37f1928110fef0f41b1aee719f74c">dataFormat</a></td></tr>
<tr class="memdesc:a89e37f1928110fef0f41b1aee719f74c"><td class="mdescLeft">&#160;</td><td class="mdescRight">data format on bus <br/></td></tr>
<tr class="separator:a89e37f1928110fef0f41b1aee719f74c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa64712b6f6fa491bd0781cb24e2e187e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa64712b6f6fa491bd0781cb24e2e187e"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aa64712b6f6fa491bd0781cb24e2e187e">bitWidth</a></td></tr>
<tr class="memdesc:aa64712b6f6fa491bd0781cb24e2e187e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit Width. <br/></td></tr>
<tr class="separator:aa64712b6f6fa491bd0781cb24e2e187e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae38b6beb490dd2acdbda33d2c3a274ac"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#ae38b6beb490dd2acdbda33d2c3a274ac">instance</a></td></tr>
<tr class="memdesc:ae38b6beb490dd2acdbda33d2c3a274ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instance (0 - I2S0/SAI0, 1 - I2S1/SAI1, ...), for detailed information please refer to the SOC corresponding RM. <a href="#ae38b6beb490dd2acdbda33d2c3a274ac">More...</a><br/></td></tr>
<tr class="separator:ae38b6beb490dd2acdbda33d2c3a274ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="ae1e183904f374465c00ad486fe0f0dc1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _hal_audio_config::ipConfig</td>
</tr>
</table>
</div><div class="memdoc">
<p>The pointer points to an entity defined by hal_audio_ip_config_t. If there is no specific feature configuration, it should be set to NULL. </p>
</div>
</div>
<a class="anchor" id="a51c45bd581e12c462f3a83a12c7402f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t _hal_audio_config::frameLength</td>
</tr>
</table>
</div><div class="memdoc">
<p>In most cases, frameLength is equal to bitWidth times lineChannels. In some cases, frameLength needs to be set to other value. For example, when the number of bit clock on the bus between two neighboring WS value is greater than bitWidth times lineChannels, frameLength needs to be set to the value that is equal to the number of bit clock between two neighboring WS signal. SAI does not use this field because frameLength can be determined internally by bitWidth and lineChannels. </p>
</div>
</div>
<a class="anchor" id="ab56b962eb89b37c319521c8c61828c35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t _hal_audio_config::fifoWatermark</td>
</tr>
</table>
</div><div class="memdoc">
<p>Generally, the value is set to half the number of FIFO(F). Note that the receive(R) or transmit length(T) is related to fifoWatermark(W) and bitWidth(B). The relationship between them is: R = N * W * B, T = N * (F - W) * B (N is integer). On some SOCs, the W and (F - W) is constant 1 and setting the W does not take effect. In that case the fifoWatermark does not need to be set. If the value set by application is greater than the number of FIFO, a maximum value will be used. For example, if the number of FIFO is 32 on a SOC but the watermark is set to 64 by application, the real value that is written to register will be 31. </p>
</div>
</div>
<a class="anchor" id="a4f97b667d28ab0148bc1eaa861682f02"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga24b04f178388c9f1ab0da8c2d339e2bd">hal_audio_master_slave_t</a> _hal_audio_config::msaterSlave</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8abeaeeba32fd3ebc7bca4f95e4713c5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga6658fa90572d72bb521c187aea436440">hal_audio_bclk_polarity_t</a> _hal_audio_config::bclkPolarity</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a02d48008f6707b1f95eae1f9f30d0299"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gaa18bcfd757fd9f2c40c3a6a0ffce5b22">hal_audio_frame_sync_width_t</a> _hal_audio_config::frameSyncWidth</td>
</tr>
</table>
</div><div class="memdoc">
<p>For other data format, this field does not need to be set and the frameSyncWidth is determined internally that depends on different mode. For example, for I2S classic mode, frameSyncWidth is equal to bitWidth. </p>
</div>
</div>
<a class="anchor" id="a11008066d8249c7199647df3e4abd2f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#ga538876c723afd94fd4e54227f55b4b3e">hal_audio_frame_sync_polarity_t</a> _hal_audio_config::frameSyncPolarity</td>
</tr>
</table>
</div><div class="memdoc">
<p>This field is not used now and reserved for future use. The frameSyncPolarity is set internally that depends on different mode. For example, for I2S classic mode, frameSyncWidth is equal to kHAL_AudioBeginAtFallingEdge. </p>
</div>
</div>
<a class="anchor" id="a87c86e57c86366f63a4d4558917920a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gaf2fbd023bca2b11fd4592c681bf3794e">hal_audio_channel_t</a> _hal_audio_config::lineChannels</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae38b6beb490dd2acdbda33d2c3a274ac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _hal_audio_config::instance</td>
</tr>
</table>
</div><div class="memdoc">
<p>Invalid instance value will cause initialization failure. </p>
</div>
</div>
</div>
</div>
<a name="a00334" id="a00334"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_audio_transfer</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a2f43da19e4095e414e847fda8541b8af"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#a2f43da19e4095e414e847fda8541b8af">data</a></td></tr>
<tr class="memdesc:a2f43da19e4095e414e847fda8541b8af"><td class="mdescLeft">&#160;</td><td class="mdescRight">A transfer buffer. <a href="#a2f43da19e4095e414e847fda8541b8af">More...</a><br/></td></tr>
<tr class="separator:a2f43da19e4095e414e847fda8541b8af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefb416faeacd5cbed52b84c2232e83f8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html#aefb416faeacd5cbed52b84c2232e83f8">dataSize</a></td></tr>
<tr class="memdesc:aefb416faeacd5cbed52b84c2232e83f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A transfer size. <a href="#aefb416faeacd5cbed52b84c2232e83f8">More...</a><br/></td></tr>
<tr class="separator:aefb416faeacd5cbed52b84c2232e83f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a2f43da19e4095e414e847fda8541b8af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* _hal_audio_transfer::data</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aefb416faeacd5cbed52b84c2232e83f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t _hal_audio_transfer::dataSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga6ac0495983bc4566f50f901a2f294a15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HAL_AUDIO_HANDLE_SIZE&#160;&#160;&#160;(HAL_AUDIO_HANDLE_SIZE_TEMP)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae02ea6cdc3cec664fc07eae7a140daba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HAL_AUDIO_HANDLE_DEFINE</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">name</td><td>)</td>
<td>&#160;&#160;&#160;uint32_t name[(<a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15">HAL_AUDIO_HANDLE_SIZE</a> + sizeof(uint32_t) - 1U) / sizeof(uint32_t)]</td>
</tr>
</table>
</div><div class="memdoc">
<p>This macro is used to define a 4 byte aligned Audio handle. Then use "(hal_audio_handle_t)name" to get the Audio handle.</p>
<p>The macro should be global and could be optional. You could also define Audio handle by yourself.</p>
<p>This is an example, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(audioTxHandle);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>The name string of the Audio transfer handle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gab37c036129b2639788fda43ae35d9a2c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00021.html#ga538c5d56286639b787c8946ca2d1f085">_hal_AUDIO_status</a> <a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad3e9a237277c1e06748a5181bbc838c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00021.html#a00328">_hal_audio_config</a> <a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga303245f7b3153a4f1d0d8b252715870d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00021.html#a00334">_hal_audio_transfer</a> <a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0ab057ea8ba06c18918361df1a205f68"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga0705d30b96ea89af38737e4dd5f59b1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* hal_audio_transfer_callback_t)(<a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a> handle, <a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> completionStatus, void *callbackParam)</td>
</tr>
</table>
</div><div class="memdoc">
<p>This callback is used only for the non-blocking Audio transfer API. Specify the callback you wish to use in the call to <a class="el" href="a00021.html#ga01fac2a44e2535706127d24baafefddd" title="Installs a callback and callback parameter. ">HAL_AudioTxInstallCallback()</a> or <a class="el" href="a00021.html#gafa65562bd1bf840d79a102e397c668f6" title="Installs a callback and callback parameter. ">HAL_AudioRxInstallCallback()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio transfer handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">completionStatus</td><td>Either <a class="el" href="a00021.html#gga538c5d56286639b787c8946ca2d1f085ae653e4da69e3839e4e827f51bcbe3352" title="HAL Audio transmitter is idle. ">kStatus_HAL_AudioIdle</a> or an error code describing how the transfer completed. </td></tr>
<tr><td class="paramname">callbackParam</td><td>Arbitrary pointer-sized value passed from the application. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga538c5d56286639b787c8946ca2d1f085"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga538c5d56286639b787c8946ca2d1f085">_hal_AUDIO_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga538c5d56286639b787c8946ca2d1f085a4734405d67917e9a051689654d125874"></a>kStatus_HAL_AudioSuccess</em>&nbsp;</td><td class="fielddoc">
<p>Successfully. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga538c5d56286639b787c8946ca2d1f085af3ea86f5438f37e92cfa63e41974f242"></a>kStatus_HAL_AudioError</em>&nbsp;</td><td class="fielddoc">
<p>Error occurs on HAL Audio. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga538c5d56286639b787c8946ca2d1f085a79e2bdf2f5d19307c0e84c0b52b0def1"></a>kStatus_HAL_AudioBusy</em>&nbsp;</td><td class="fielddoc">
<p>HAL Audio is busy with current transfer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga538c5d56286639b787c8946ca2d1f085ae653e4da69e3839e4e827f51bcbe3352"></a>kStatus_HAL_AudioIdle</em>&nbsp;</td><td class="fielddoc">
<p>HAL Audio transmitter is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga538c5d56286639b787c8946ca2d1f085a8e6fc7246b988e729e56b35117780d6d"></a>kStatus_HAL_AudioQueueFull</em>&nbsp;</td><td class="fielddoc">
<p>Transfer queue is full. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gadafc362791371b7bfc6a82c3ed6ffc46"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#gadafc362791371b7bfc6a82c3ed6ffc46">_hal_audio_channel</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a6a42a6bc3572ec780b7da736decc28d2"></a>kHAL_AudioMono</em>&nbsp;</td><td class="fielddoc">
<p>Only one channel on bus. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a4fb3709032b861049f1c3134e509d98b"></a>kHAL_AudioMonoRight</em>&nbsp;</td><td class="fielddoc">
<p>Only Right channel have sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a1e8989c0a5893a67b5520fa4069e4bb9"></a>kHAL_AudioMonoLeft</em>&nbsp;</td><td class="fielddoc">
<p>Only left channel have sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926"></a>kHAL_AudioStereo</em>&nbsp;</td><td class="fielddoc">
<p>Stereo sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a37fa77261dc1d372da32c33994ee2090"></a>kHAL_AudioStereo3Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 3 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46ac5c70e5b5bceefac823719697aa5f0f3"></a>kHAL_AudioStereo4Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 4 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46add2d53bf6e582d737be0cf0eff8e294d"></a>kHAL_AudioStereo5Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 5 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a071bc278227e015a25add3ff4c29b641"></a>kHAL_AudioStereo6Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 6 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46ac07978d21d64a839f449381265ef3943"></a>kHAL_AudioStereo7Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 7 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a9372a25c2e2ccbbcc36883b98adf5ac0"></a>kHAL_AudioStereo8Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 8 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46afc14a1741c28e0bcc812579a794f08bd"></a>kHAL_AudioStereo9Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 9 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46afa8bdd81b1d0f99f68a3541c40f83cb5"></a>kHAL_AudioStereo10Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 10 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a7b649cb8e9751d6c999fb951b55131d1"></a>kHAL_AudioStereo11Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 11 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a15494bff10f247b0f9c9cc30049d3e51"></a>kHAL_AudioStereo12Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 12 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a519bd2be0a9fc7ab310036266774ad9a"></a>kHAL_AudioStereo13Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 13 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a7195d505c666b15d7b39f2963e1745b1"></a>kHAL_AudioStereo14Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 14 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46a6a745bf34a95569b03a27fd69fef126d"></a>kHAL_AudioStereo15Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 15 channel sound. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadafc362791371b7bfc6a82c3ed6ffc46ad65522e0ead30425fc984ac523950904"></a>kHAL_AudioStereo16Channel</em>&nbsp;</td><td class="fielddoc">
<p>Stereo 16 channel sound. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga69ac012772c5afe53ab954bba83e9a93"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga69ac012772c5afe53ab954bba83e9a93">_hal_audio_sample_rate</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93aee3e759008410655673ac1192935956c"></a>kHAL_AudioSampleRate8KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 8000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93aa690004e820639d0be42a5757d808636"></a>kHAL_AudioSampleRate11025Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 11025 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a3c1e96bdcbf3c95a3b316832550e1bb9"></a>kHAL_AudioSampleRate12KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 12000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a9e57f2dc5b056d77b28b967738d32c8a"></a>kHAL_AudioSampleRate16KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 16000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a2da92585de3432f01752164f7e20115f"></a>kHAL_AudioSampleRate22050Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 22050 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a3f6836c148a31827c6fabb5ebad37522"></a>kHAL_AudioSampleRate24KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 24000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93adbbc39fab513fdcf587b859fd3f4c5dc"></a>kHAL_AudioSampleRate32KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 32000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93ad0c8063eef7fd8c410508a0e33a2aa56"></a>kHAL_AudioSampleRate44100Hz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 44100 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf"></a>kHAL_AudioSampleRate48KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 48000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93ae8ce2b240675f3c3f33bd4d7d17e6c63"></a>kHAL_AudioSampleRate96KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 96000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93ae9381843e5447bca377db95cd636fb34"></a>kHAL_AudioSampleRate192KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 192000 Hz. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga69ac012772c5afe53ab954bba83e9a93a3a88755e910a4fed463220cddb19eae3"></a>kHAL_AudioSampleRate384KHz</em>&nbsp;</td><td class="fielddoc">
<p>Sample rate 384000 Hz. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gadae4000ca7499552b791b50420a8c25e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#gadae4000ca7499552b791b50420a8c25e">_hal_audio_bit_width</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadae4000ca7499552b791b50420a8c25ea3adbd9c84e70c58326d1ef1e6a4c0d4a"></a>kHAL_AudioWordWidth8bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 8 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29"></a>kHAL_AudioWordWidth16bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 16 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadae4000ca7499552b791b50420a8c25ead9c9d487fbc5b454266ab00c07087418"></a>kHAL_AudioWordWidth24bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 24 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadae4000ca7499552b791b50420a8c25eada07cba583f6387fb1a965bd59761c96"></a>kHAL_AudioWordWidth32bits</em>&nbsp;</td><td class="fielddoc">
<p>Audio data width 32 bits. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac4a3fc84263ef4bbaf637612241dfbdc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#gac4a3fc84263ef4bbaf637612241dfbdc">_hal_audio_bclk_polarity</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac4a3fc84263ef4bbaf637612241dfbdca3728a7adfcdb1741d2cf552302d639e2"></a>kHAL_AudioSampleOnFallingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Data samples at the falling edge. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2"></a>kHAL_AudioSampleOnRisingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Data samples at the rising edge. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaa5797a20e18ae5ad68ecb6c49b0a4fb5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#gaa5797a20e18ae5ad68ecb6c49b0a4fb5">_hal_audio_frame_sync_width</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa5797a20e18ae5ad68ecb6c49b0a4fb5a354cb68b4d263308923c86189e090de0"></a>kHAL_AudioFrameSyncWidthOneBitClk</em>&nbsp;</td><td class="fielddoc">
<p>1 bit clock frame sync len for DSP mode </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa5797a20e18ae5ad68ecb6c49b0a4fb5a798869e0ebe3c62559c70cd8b005e7e2"></a>kHAL_AudioFrameSyncWidthPerWordWidth</em>&nbsp;</td><td class="fielddoc">
<p>Frame sync length decided by word width. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293"></a>kHAL_AudioFrameSyncWidthHalfFrame</em>&nbsp;</td><td class="fielddoc">
<p>Frame sync length is half of frame length. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga98a2054ce6a2c26d83c37a61ac2adb6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga98a2054ce6a2c26d83c37a61ac2adb6a">_hal_audio_frame_sync_polarity</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga98a2054ce6a2c26d83c37a61ac2adb6aae8821fc7284f086fec40e86c17b41b21"></a>kHAL_AudioBeginAtRisingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Frame sync begins at the rising edge. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030"></a>kHAL_AudioBeginAtFallingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Frame sync begins at the falling edge. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4a80c8476fc08dd86418f692c16ef43b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga4a80c8476fc08dd86418f692c16ef43b">_hal_audio_master_slave</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482"></a>kHAL_AudioMaster</em>&nbsp;</td><td class="fielddoc">
<p>Master mode include bclk and frame sync. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4a80c8476fc08dd86418f692c16ef43ba86e0dcf481c724f40944740430e7a9ff"></a>kHAL_AudioSlave</em>&nbsp;</td><td class="fielddoc">
<p>Slave mode include bclk and frame sync. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4a80c8476fc08dd86418f692c16ef43ba14b33611812a088ad96d765f49d5fec4"></a>kHAL_AudioBclkMasterFrameSyncSlave</em>&nbsp;</td><td class="fielddoc">
<p>BCLK in master mode, frame sync in slave mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4a80c8476fc08dd86418f692c16ef43ba32b43a82ad20d27627c221a7786b340e"></a>kHAL_AudioBclkSlaveFrameSyncMaster</em>&nbsp;</td><td class="fielddoc">
<p>BCLK in slave mode, frame sync in master mode. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga20db8590e0b4702f972b835f6dd9e5a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga20db8590e0b4702f972b835f6dd9e5a9">_hal_audio_sai_sync_mode</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga20db8590e0b4702f972b835f6dd9e5a9a140da745bafa767f94392daff3162253"></a>kHAL_AudioSaiModeAsync</em>&nbsp;</td><td class="fielddoc">
<p>Asynchronous mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga20db8590e0b4702f972b835f6dd9e5a9ad930dc965e51467b9aa797c188b9fb81"></a>kHAL_AudioSaiModeSync</em>&nbsp;</td><td class="fielddoc">
<p>Synchronous mode (with receiver or transmit) </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga02053b34142d28678492a5b7e5916d80"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga02053b34142d28678492a5b7e5916d80">_hal_audio_data_format</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30"></a>kHAL_AudioDataFormatI2sClassic</em>&nbsp;</td><td class="fielddoc">
<p>I2S classic mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga02053b34142d28678492a5b7e5916d80a492c0c96404d061dfc61badbd0c25e1e"></a>kHAL_AudioDataFormatLeftJustified</em>&nbsp;</td><td class="fielddoc">
<p>Left-Justified mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga02053b34142d28678492a5b7e5916d80acc6a88d87feca7d380cb56f2b92c969a"></a>kHAL_AudioDataFormatRightJustified</em>&nbsp;</td><td class="fielddoc">
<p>Right-Justified mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga02053b34142d28678492a5b7e5916d80ad566edf7cb77d376932dc536ae7a9c39"></a>kHAL_AudioDataFormatDspModeA</em>&nbsp;</td><td class="fielddoc">
<p>DSP mode A, channel is available on 2nd rising edge of BCLK following a rising edge of frame sync. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga02053b34142d28678492a5b7e5916d80a61b996cc7a2d9b00fbea7313d0cc8081"></a>kHAL_AudioDataFormatDspModeB</em>&nbsp;</td><td class="fielddoc">
<p>DSP mode B, channel is available on 1st rising edge of BCLK following a rising edge of frame sync. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga973d128ecaccf2506ee38e4156577dd8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00021.html#ga973d128ecaccf2506ee38e4156577dd8">_hal_audio_dma_channel_priority</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d"></a>kHAL_AudioDmaChannelPriorityDefault</em>&nbsp;</td><td class="fielddoc">
<p>Use default value, not to configure priority. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga67e038ddd548889c7372a306385d26af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTxInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API should be called at the beginning of the application. Otherwise, any operation to the HAL Audio module can cause a hard fault because the clock is not enabled. This function configures the audio with user-defined settings. The user can configure the configuration structure. The parameter handle is a pointer to point to a memory space of size <a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15" title="Definition of audio adapter handle size. ">HAL_AUDIO_HANDLE_SIZE</a> allocated by the caller.</dd>
<dd>
DMA will be initialized and enabled by default in this function and calling HAL_AudioTransferSendNonBlocking or HAL_AudioTransferReceiveNonBlocking will use DMA to transfer data. Thus application should avoid initializing DMA repeatedly and dmaConfig should be configured.</dd></dl>
<p>Example below shows how to use this API to configure the audio peripheral. For SAI, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(audioTxHandle);</div>
<div class="line">* <a class="code" href="a00021.html#a00328">hal_audio_config_t</a> audioConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00330">hal_audio_dma_config_t</a> dmaConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00333">hal_audio_ip_config_t</a> ipConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00332">hal_audio_dma_mux_config_t</a> dmaMuxConfig;</div>
<div class="line">* dmaMuxConfig.dmaMuxConfig.dmaMuxInstance = 0;</div>
<div class="line">* dmaMuxConfig.dmaMuxConfig.dmaRequestSource = (uint32_t)kDmaRequestMuxSai1Tx;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a4a77178c988c6a2833e0d3fb2aaf5294">instance</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a5ff70b42131976742a0c2ff27455a915">channel</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a2a339385e21d2c4685011184b72350af">priority</a> = <a class="code" href="a00021.html#gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d">kHAL_AudioDmaChannelPriorityDefault</a>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a1c64f3a8f0fff1b431c44485a031b6ad">enablePreemption</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a32b15848cd0c8bd767a5060aa568aa4d">enablePreemptAbility</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a36919178fc4c37d6b53d2a0dbc01e2a2">dmaMuxConfig</a> = &amp;dmaMuxConfig;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a56fff37511820acc3c6c2b73820e338d">dmaChannelMuxConfig</a> = NULL;</div>
<div class="line">* ipConfig.sai.lineMask = 1U &lt;&lt; 0U;</div>
<div class="line">* ipConfig.sai.syncMode = <a class="code" href="a00021.html#gga20db8590e0b4702f972b835f6dd9e5a9a140da745bafa767f94392daff3162253">kHAL_AudioSaiModeAsync</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a942f2412f04afc1c05844d6cbc7449eb">dmaConfig</a> = &amp;dmaConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae1e183904f374465c00ad486fe0f0dc1">ipConfig</a> = &amp;ipConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a3fc7d0dd2ea5caeed299c273765937fd">srcClock_Hz</a> = 24576000;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aaa852f5b0038e6b5422b069938798a9b">sampleRate_Hz</a> = (uint32_t)<a class="code" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf">kHAL_AudioSampleRate48KHz</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ab56b962eb89b37c319521c8c61828c35">fifoWatermark</a> = 16;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a4f97b667d28ab0148bc1eaa861682f02">msaterSlave</a> = <a class="code" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482">kHAL_AudioMaster</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a8abeaeeba32fd3ebc7bca4f95e4713c5">bclkPolarity</a> = <a class="code" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2">kHAL_AudioSampleOnRisingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a02d48008f6707b1f95eae1f9f30d0299">frameSyncWidth</a> = <a class="code" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293">kHAL_AudioFrameSyncWidthHalfFrame</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a11008066d8249c7199647df3e4abd2f8">frameSyncPolarity</a> = <a class="code" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030">kHAL_AudioBeginAtFallingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a87c86e57c86366f63a4d4558917920a1">lineChannels</a> = <a class="code" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926">kHAL_AudioStereo</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a89e37f1928110fef0f41b1aee719f74c">dataFormat</a> = <a class="code" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30">kHAL_AudioDataFormatI2sClassic</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aa64712b6f6fa491bd0781cb24e2e187e">bitWidth</a> = (uint8_t)<a class="code" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29">kHAL_AudioWordWidth16bits</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae38b6beb490dd2acdbda33d2c3a274ac">instance</a> = 0U;</div>
<div class="line">* <a class="code" href="a00021.html#ga67e038ddd548889c7372a306385d26af">HAL_AudioTxInit</a>((<a class="code" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>)audioTxHandle, &amp;audioConfig);</div>
<div class="line">* </div>
</div><!-- fragment --><p> For I2S, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(audioTxHandle);</div>
<div class="line">* <a class="code" href="a00021.html#a00328">hal_audio_config_t</a> audioConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00330">hal_audio_dma_config_t</a> dmaConfig;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a4a77178c988c6a2833e0d3fb2aaf5294">instance</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a5ff70b42131976742a0c2ff27455a915">channel</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a2a339385e21d2c4685011184b72350af">priority</a> = <a class="code" href="a00021.html#gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d">kHAL_AudioDmaChannelPriorityDefault</a>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a1c64f3a8f0fff1b431c44485a031b6ad">enablePreemption</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a32b15848cd0c8bd767a5060aa568aa4d">enablePreemptAbility</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a36919178fc4c37d6b53d2a0dbc01e2a2">dmaMuxConfig</a> = NULL;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a56fff37511820acc3c6c2b73820e338d">dmaChannelMuxConfig</a> = NULL;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a942f2412f04afc1c05844d6cbc7449eb">dmaConfig</a> = &amp;dmaConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae1e183904f374465c00ad486fe0f0dc1">ipConfig</a> = NULL;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a3fc7d0dd2ea5caeed299c273765937fd">srcClock_Hz</a> = 24576000;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aaa852f5b0038e6b5422b069938798a9b">sampleRate_Hz</a> = (uint32_t)<a class="code" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf">kHAL_AudioSampleRate48KHz</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ab56b962eb89b37c319521c8c61828c35">fifoWatermark</a> = 0;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a4f97b667d28ab0148bc1eaa861682f02">msaterSlave</a> = <a class="code" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482">kHAL_AudioMaster</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a8abeaeeba32fd3ebc7bca4f95e4713c5">bclkPolarity</a> = <a class="code" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2">kHAL_AudioSampleOnRisingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a02d48008f6707b1f95eae1f9f30d0299">frameSyncWidth</a> = <a class="code" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293">kHAL_AudioFrameSyncWidthHalfFrame</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a11008066d8249c7199647df3e4abd2f8">frameSyncPolarity</a> = <a class="code" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030">kHAL_AudioBeginAtFallingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a87c86e57c86366f63a4d4558917920a1">lineChannels</a> = <a class="code" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926">kHAL_AudioStereo</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a89e37f1928110fef0f41b1aee719f74c">dataFormat</a> = <a class="code" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30">kHAL_AudioDataFormatI2sClassic</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aa64712b6f6fa491bd0781cb24e2e187e">bitWidth</a> = (uint8_t)<a class="code" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29">kHAL_AudioWordWidth16bits</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae38b6beb490dd2acdbda33d2c3a274ac">instance</a> = 0U;</div>
<div class="line">* <a class="code" href="a00021.html#ga67e038ddd548889c7372a306385d26af">HAL_AudioTxInit</a>((<a class="code" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>)audioTxHandle, &amp;audioConfig);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Pointer to point to a memory space of size <a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15" title="Definition of audio adapter handle size. ">HAL_AUDIO_HANDLE_SIZE</a> allocated by the caller. The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices. You can define the handle in the following two ways: <a class="el" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba" title="Defines the Audio handle. ">HAL_AUDIO_HANDLE_DEFINE(handle)</a>; or uint32_t handle[((HAL_AUDIO_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]; </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the audio configuration structure </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad942b9cd73faf79c77f26fab3cd8a74b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioRxInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00021.html#gad3e9a237277c1e06748a5181bbc838c9">hal_audio_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API should be called at the beginning of the application. Otherwise, any operation to the HAL Audio module can cause a hard fault because the clock is not enabled. This function configures the audio with user-defined settings. The user can configure the configuration structure. The parameter handle is a pointer to point to a memory space of size <a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15" title="Definition of audio adapter handle size. ">HAL_AUDIO_HANDLE_SIZE</a> allocated by the caller.</dd>
<dd>
DMA will be initialized and enabled by default in this function and calling HAL_AudioTransferSendNonBlocking or HAL_AudioTransferReceiveNonBlocking will use DMA to transfer data. Thus application should avoid initializing DMA repeatedly and dmaConfig should be configured.</dd></dl>
<p>Example below shows how to use this API to configure the audio peripheral. For SAI, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(audioRxHandle);</div>
<div class="line">* <a class="code" href="a00021.html#a00328">hal_audio_config_t</a> audioConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00330">hal_audio_dma_config_t</a> dmaConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00333">hal_audio_ip_config_t</a> ipConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00332">hal_audio_dma_mux_config_t</a> dmaMuxConfig;</div>
<div class="line">* dmaMuxConfig.dmaMuxConfig.dmaMuxInstance = 0;</div>
<div class="line">* dmaMuxConfig.dmaMuxConfig.dmaRequestSource = (uint32_t)kDmaRequestMuxSai1Rx;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a4a77178c988c6a2833e0d3fb2aaf5294">instance</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a5ff70b42131976742a0c2ff27455a915">channel</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a2a339385e21d2c4685011184b72350af">priority</a> = <a class="code" href="a00021.html#gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d">kHAL_AudioDmaChannelPriorityDefault</a>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a1c64f3a8f0fff1b431c44485a031b6ad">enablePreemption</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a32b15848cd0c8bd767a5060aa568aa4d">enablePreemptAbility</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a36919178fc4c37d6b53d2a0dbc01e2a2">dmaMuxConfig</a> = &amp;dmaMuxConfig;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a56fff37511820acc3c6c2b73820e338d">dmaChannelMuxConfig</a> = NULL;</div>
<div class="line">* ipConfig.sai.lineMask = 1U &lt;&lt; 0U;</div>
<div class="line">* ipConfig.sai.syncMode = <a class="code" href="a00021.html#gga20db8590e0b4702f972b835f6dd9e5a9a140da745bafa767f94392daff3162253">kHAL_AudioSaiModeAsync</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a942f2412f04afc1c05844d6cbc7449eb">dmaConfig</a> = &amp;dmaConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae1e183904f374465c00ad486fe0f0dc1">ipConfig</a> = &amp;ipConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a3fc7d0dd2ea5caeed299c273765937fd">srcClock_Hz</a> = 24576000;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aaa852f5b0038e6b5422b069938798a9b">sampleRate_Hz</a> = (uint32_t)<a class="code" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf">kHAL_AudioSampleRate48KHz</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ab56b962eb89b37c319521c8c61828c35">fifoWatermark</a> = 16;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a4f97b667d28ab0148bc1eaa861682f02">msaterSlave</a> = <a class="code" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482">kHAL_AudioMaster</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a8abeaeeba32fd3ebc7bca4f95e4713c5">bclkPolarity</a> = <a class="code" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2">kHAL_AudioSampleOnRisingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a02d48008f6707b1f95eae1f9f30d0299">frameSyncWidth</a> = <a class="code" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293">kHAL_AudioFrameSyncWidthHalfFrame</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a11008066d8249c7199647df3e4abd2f8">frameSyncPolarity</a> = <a class="code" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030">kHAL_AudioBeginAtFallingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a87c86e57c86366f63a4d4558917920a1">lineChannels</a> = <a class="code" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926">kHAL_AudioStereo</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a89e37f1928110fef0f41b1aee719f74c">dataFormat</a> = <a class="code" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30">kHAL_AudioDataFormatI2sClassic</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aa64712b6f6fa491bd0781cb24e2e187e">bitWidth</a> = (uint8_t)<a class="code" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29">kHAL_AudioWordWidth16bits</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae38b6beb490dd2acdbda33d2c3a274ac">instance</a> = 0U;</div>
<div class="line">* <a class="code" href="a00021.html#gad942b9cd73faf79c77f26fab3cd8a74b">HAL_AudioRxInit</a>((<a class="code" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>)audioRxHandle, &amp;audioConfig);</div>
<div class="line">* </div>
</div><!-- fragment --><p> For I2S, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba">HAL_AUDIO_HANDLE_DEFINE</a>(audioRxHandle);</div>
<div class="line">* <a class="code" href="a00021.html#a00328">hal_audio_config_t</a> audioConfig;</div>
<div class="line">* <a class="code" href="a00021.html#a00330">hal_audio_dma_config_t</a> dmaConfig;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a4a77178c988c6a2833e0d3fb2aaf5294">instance</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a5ff70b42131976742a0c2ff27455a915">channel</a> = 0;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a2a339385e21d2c4685011184b72350af">priority</a> = <a class="code" href="a00021.html#gga973d128ecaccf2506ee38e4156577dd8aa59408616052b8367fc6ee5fbfaa9f9d">kHAL_AudioDmaChannelPriorityDefault</a>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a1c64f3a8f0fff1b431c44485a031b6ad">enablePreemption</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a32b15848cd0c8bd767a5060aa568aa4d">enablePreemptAbility</a> = <span class="keyword">false</span>;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a36919178fc4c37d6b53d2a0dbc01e2a2">dmaMuxConfig</a> = NULL;</div>
<div class="line">* dmaConfig.<a class="code" href="a00021.html#a56fff37511820acc3c6c2b73820e338d">dmaChannelMuxConfig</a> = NULL;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a942f2412f04afc1c05844d6cbc7449eb">dmaConfig</a> = &amp;dmaConfig;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae1e183904f374465c00ad486fe0f0dc1">ipConfig</a> = NULL;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a3fc7d0dd2ea5caeed299c273765937fd">srcClock_Hz</a> = 24576000;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aaa852f5b0038e6b5422b069938798a9b">sampleRate_Hz</a> = (uint32_t)<a class="code" href="a00021.html#gga69ac012772c5afe53ab954bba83e9a93a1f00fa5d9d354cb4fb42c8914296ecbf">kHAL_AudioSampleRate48KHz</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ab56b962eb89b37c319521c8c61828c35">fifoWatermark</a> = 0;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a4f97b667d28ab0148bc1eaa861682f02">msaterSlave</a> = <a class="code" href="a00021.html#gga4a80c8476fc08dd86418f692c16ef43badc47aca14196a7ac6a51ffa5c97bf482">kHAL_AudioMaster</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a8abeaeeba32fd3ebc7bca4f95e4713c5">bclkPolarity</a> = <a class="code" href="a00021.html#ggac4a3fc84263ef4bbaf637612241dfbdca345c3613aa24a963b484111a209db4a2">kHAL_AudioSampleOnRisingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a02d48008f6707b1f95eae1f9f30d0299">frameSyncWidth</a> = <a class="code" href="a00021.html#ggaa5797a20e18ae5ad68ecb6c49b0a4fb5af76347de98c7128837afedbb696bd293">kHAL_AudioFrameSyncWidthHalfFrame</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a11008066d8249c7199647df3e4abd2f8">frameSyncPolarity</a> = <a class="code" href="a00021.html#gga98a2054ce6a2c26d83c37a61ac2adb6aa15c1e4cfec93362d9e857d7103a65030">kHAL_AudioBeginAtFallingEdge</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a87c86e57c86366f63a4d4558917920a1">lineChannels</a> = <a class="code" href="a00021.html#ggadafc362791371b7bfc6a82c3ed6ffc46a5f16a30d109508acf56cba3535a3e926">kHAL_AudioStereo</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#a89e37f1928110fef0f41b1aee719f74c">dataFormat</a> = <a class="code" href="a00021.html#gga02053b34142d28678492a5b7e5916d80ab848589e792d1d4f5164586691f9da30">kHAL_AudioDataFormatI2sClassic</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#aa64712b6f6fa491bd0781cb24e2e187e">bitWidth</a> = (uint8_t)<a class="code" href="a00021.html#ggadae4000ca7499552b791b50420a8c25ea62d4294978237144e5307f1c02218b29">kHAL_AudioWordWidth16bits</a>;</div>
<div class="line">* audioConfig.<a class="code" href="a00021.html#ae38b6beb490dd2acdbda33d2c3a274ac">instance</a> = 0U;</div>
<div class="line">* <a class="code" href="a00021.html#gad942b9cd73faf79c77f26fab3cd8a74b">HAL_AudioRxInit</a>((<a class="code" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>)audioRxHandle, &amp;audioConfig);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Pointer to point to a memory space of size <a class="el" href="a00021.html#ga6ac0495983bc4566f50f901a2f294a15" title="Definition of audio adapter handle size. ">HAL_AUDIO_HANDLE_SIZE</a> allocated by the caller. The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices. You can define the handle in the following two ways: <a class="el" href="a00021.html#gae02ea6cdc3cec664fc07eae7a140daba" title="Defines the Audio handle. ">HAL_AUDIO_HANDLE_DEFINE(handle)</a>; or uint32_t handle[((HAL_AUDIO_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]; </td></tr>
<tr><td class="paramname">config</td><td>A pointer to the audio configuration structure </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9c20e45d2dd6fadd2429930bb9129fcd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTxDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Call this API to gate the HAL Audio clock. The HAL Audio module can't work unless the HAL_AudioTxInit is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio de-initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8405a274028f44285cd89c7e488f6769"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioRxDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Call this API to gate the HAL Audio clock. The HAL Audio module can't work unless the HAL_AudioRxInit is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio de-initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga01fac2a44e2535706127d24baafefddd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTxInstallCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga0705d30b96ea89af38737e4dd5f59b1c">hal_audio_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>callbackParam</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to install the callback and callback parameter for audio module. When any status of the audio changed, the driver will notify the upper layer by the installed callback function. And the status is also passed as status parameter when the callback is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">callback</td><td>pointer to user callback function. </td></tr>
<tr><td class="paramname">callbackParam</td><td>user parameter passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio tx transfer handle created </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafa65562bd1bf840d79a102e397c668f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioRxInstallCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga0705d30b96ea89af38737e4dd5f59b1c">hal_audio_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>callbackParam</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to install the callback and callback parameter for audio module. When any status of the audio changed, the driver will notify the upper layer by the installed callback function. And the status is also passed as status parameter when the callback is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">callback</td><td>pointer to user callback function. </td></tr>
<tr><td class="paramname">callbackParam</td><td>user parameter passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>audio rx transfer handle created </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaea53d08dcdf71c3e49cb3ab6e0f84687"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferSendNonBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>Calling the API returns immediately after transfer initiates. The user can call HAL_AudioTransferGetSendCount to poll the transfer status to check whether the transfer is finished. If the return status is kStatus_HAL_AudioIdle, the transfer is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">xfer</td><td>pointer to hal_audio_transfer_t structure.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The transmit length(T) is related to fifoWatermark(W), bitWidth(B) and the number of FIFO(F). The relationship between them is: T = N * (F - W) * B (N is integer).</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully start the data transmission. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioBusy</td><td>Previous transmission still not finished. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga36aceb067e0f69bc33b7fdefc0a53b62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferReceiveNonBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00021.html#ga303245f7b3153a4f1d0d8b252715870d">hal_audio_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>Calling the API returns immediately after transfer initiates. The user can call HAL_AudioTransferGetReceiveCount to poll the transfer status to check whether the transfer is finished. If the return status is kStatus_HAL_AudioIdle, the transfer is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">xfer</td><td>pointer to hal_audio_transfer_t structure.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The receive length(R) is related to fifoWatermark(W), bitWidth(B) and the number of FIFO(F). The relationship between them is: R = N * W * B (N is integer).</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully start the data transmission. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioBusy</td><td>Previous transmission still not finished. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa75d3880e50143a320324b9539d15de7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferAbortSend </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API can be called at any time when a DMA non-blocking transfer initiates to abort the transfer early.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully abort the transfer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabb15358f15daa606b38585706be66a83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferAbortReceive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API can be called at any time when a DMA non-blocking transfer initiates to abort the transfer early.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully abort the transfer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae3e9bf4412855c8f5b1748b7d08c997b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferGetSendCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">count</td><td>Number of bytes sent so far by the non-blocking transaction. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully return the count. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioIdle</td><td>Previous transmission has been finished. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac916b6d1d634d80f07fb88d56b18bc71"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00021.html#gab37c036129b2639788fda43ae35d9a2c">hal_audio_status_t</a> HAL_AudioTransferGetReceiveCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00021.html#ga0ab057ea8ba06c18918361df1a205f68">hal_audio_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>audio handle pointer, this should be a static variable. </td></tr>
<tr><td class="paramname">count</td><td>Number of bytes received so far by the non-blocking transaction. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_AudioSuccess</td><td>Successfully return the count. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioIdle</td><td>Previous transmission has been finished. </td></tr>
<tr><td class="paramname">kStatus_HAL_AudioError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>