263 lines
15 KiB
HTML
263 lines
15 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.14"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Adafruit mp3: Adafruit_mp3 Class Reference</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="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.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="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Adafruit mp3
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.14 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</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><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classAdafruit__mp3-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">Adafruit_mp3 Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a2bbb23d5b48e5ff1e8cc0e51858c2939"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#a2bbb23d5b48e5ff1e8cc0e51858c2939">begin</a> ()</td></tr>
|
|
<tr class="memdesc:a2bbb23d5b48e5ff1e8cc0e51858c2939"><td class="mdescLeft"> </td><td class="mdescRight">Begin the mp3 player. This initializes the playback timer and necessary interrupts. <a href="#a2bbb23d5b48e5ff1e8cc0e51858c2939">More...</a><br /></td></tr>
|
|
<tr class="separator:a2bbb23d5b48e5ff1e8cc0e51858c2939"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abd2665ab4f873681b8e2408a52e57ac7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#abd2665ab4f873681b8e2408a52e57ac7">setBufferCallback</a> (int(*fun_ptr)(uint8_t *, int))</td></tr>
|
|
<tr class="memdesc:abd2665ab4f873681b8e2408a52e57ac7"><td class="mdescLeft"> </td><td class="mdescRight">Set the function the player will call when it's buffers need to be filled. Care must be taken to ensure that the callback function is efficient. If the callback takes too long to fill the buffer, playback will be choppy. <a href="#abd2665ab4f873681b8e2408a52e57ac7">More...</a><br /></td></tr>
|
|
<tr class="separator:abd2665ab4f873681b8e2408a52e57ac7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5cd94928d07e4396270644985ed3f5d8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#a5cd94928d07e4396270644985ed3f5d8">setSampleReadyCallback</a> (void(*fun_ptr)(int16_t, int16_t))</td></tr>
|
|
<tr class="memdesc:a5cd94928d07e4396270644985ed3f5d8"><td class="mdescLeft"> </td><td class="mdescRight">Set the function that the player will call when the playback timer fires. The callback is called inside of an ISR, so it should be short and efficient. This will usually just be writing samples to the DAC. <a href="#a5cd94928d07e4396270644985ed3f5d8">More...</a><br /></td></tr>
|
|
<tr class="separator:a5cd94928d07e4396270644985ed3f5d8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4027adaa57e6ac8cf3540e6238fae689"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#a4027adaa57e6ac8cf3540e6238fae689">play</a> ()</td></tr>
|
|
<tr class="memdesc:a4027adaa57e6ac8cf3540e6238fae689"><td class="mdescLeft"> </td><td class="mdescRight">Play an mp3 file. This function resets the buffers and should only be used when beginning playback of a new mp3 file. If playback has been stopped and you would like to resume playback at the current location, use <a class="el" href="classAdafruit__mp3.html#a31e5c7e431f6ae67d14c5d9ba52f114e" title="Resume playback. This function re-enables the playback timer. If you are starting playback of a new f...">Adafruit_mp3::resume</a> instead. <a href="#a4027adaa57e6ac8cf3540e6238fae689">More...</a><br /></td></tr>
|
|
<tr class="separator:a4027adaa57e6ac8cf3540e6238fae689"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acb4313d72c8258a89ea4cb7a568eb99e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#acb4313d72c8258a89ea4cb7a568eb99e">stop</a> ()</td></tr>
|
|
<tr class="memdesc:acb4313d72c8258a89ea4cb7a568eb99e"><td class="mdescLeft"> </td><td class="mdescRight">Stop playback. This function stops the playback timer. <a href="#acb4313d72c8258a89ea4cb7a568eb99e">More...</a><br /></td></tr>
|
|
<tr class="separator:acb4313d72c8258a89ea4cb7a568eb99e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a31e5c7e431f6ae67d14c5d9ba52f114e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#a31e5c7e431f6ae67d14c5d9ba52f114e">resume</a> ()</td></tr>
|
|
<tr class="memdesc:a31e5c7e431f6ae67d14c5d9ba52f114e"><td class="mdescLeft"> </td><td class="mdescRight">Resume playback. This function re-enables the playback timer. If you are starting playback of a new file, use <a class="el" href="classAdafruit__mp3.html#a4027adaa57e6ac8cf3540e6238fae689" title="Play an mp3 file. This function resets the buffers and should only be used when beginning playback of...">Adafruit_mp3::play</a> instead. <a href="#a31e5c7e431f6ae67d14c5d9ba52f114e">More...</a><br /></td></tr>
|
|
<tr class="separator:a31e5c7e431f6ae67d14c5d9ba52f114e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9a1baa4861d222fa29f9020b945b8e97"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classAdafruit__mp3.html#a9a1baa4861d222fa29f9020b945b8e97">tick</a> ()</td></tr>
|
|
<tr class="memdesc:a9a1baa4861d222fa29f9020b945b8e97"><td class="mdescLeft"> </td><td class="mdescRight">The main loop of the mp3 player. This function should be called as fast as possible in the loop() function of your sketch. This checks to see if the buffers need to be filled, and calls the buffer callback function if necessary. It also calls the functions to decode another frame of mp3 data. <a href="#a9a1baa4861d222fa29f9020b945b8e97">More...</a><br /></td></tr>
|
|
<tr class="separator:a9a1baa4861d222fa29f9020b945b8e97"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a2bbb23d5b48e5ff1e8cc0e51858c2939"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2bbb23d5b48e5ff1e8cc0e51858c2939">◆ </a></span>begin()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool Adafruit_mp3::begin </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Begin the mp3 player. This initializes the playback timer and necessary interrupts. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4027adaa57e6ac8cf3540e6238fae689"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4027adaa57e6ac8cf3540e6238fae689">◆ </a></span>play()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void Adafruit_mp3::play </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Play an mp3 file. This function resets the buffers and should only be used when beginning playback of a new mp3 file. If playback has been stopped and you would like to resume playback at the current location, use <a class="el" href="classAdafruit__mp3.html#a31e5c7e431f6ae67d14c5d9ba52f114e" title="Resume playback. This function re-enables the playback timer. If you are starting playback of a new f...">Adafruit_mp3::resume</a> instead. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a31e5c7e431f6ae67d14c5d9ba52f114e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a31e5c7e431f6ae67d14c5d9ba52f114e">◆ </a></span>resume()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void Adafruit_mp3::resume </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Resume playback. This function re-enables the playback timer. If you are starting playback of a new file, use <a class="el" href="classAdafruit__mp3.html#a4027adaa57e6ac8cf3540e6238fae689" title="Play an mp3 file. This function resets the buffers and should only be used when beginning playback of...">Adafruit_mp3::play</a> instead. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abd2665ab4f873681b8e2408a52e57ac7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abd2665ab4f873681b8e2408a52e57ac7">◆ </a></span>setBufferCallback()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void Adafruit_mp3::setBufferCallback </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int(*)(uint8_t *, int) </td>
|
|
<td class="paramname"><em>fun_ptr</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the function the player will call when it's buffers need to be filled. Care must be taken to ensure that the callback function is efficient. If the callback takes too long to fill the buffer, playback will be choppy. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">fun_ptr</td><td>the pointer to the callback function. This function must take a pointer to the location the bytes will be written, as well as an integer that represents the maximum possible bytes that can be written. The function should return the actual number of bytes that were written.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5cd94928d07e4396270644985ed3f5d8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5cd94928d07e4396270644985ed3f5d8">◆ </a></span>setSampleReadyCallback()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void Adafruit_mp3::setSampleReadyCallback </td>
|
|
<td>(</td>
|
|
<td class="paramtype">void(*)(int16_t, int16_t) </td>
|
|
<td class="paramname"><em>fun_ptr</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the function that the player will call when the playback timer fires. The callback is called inside of an ISR, so it should be short and efficient. This will usually just be writing samples to the DAC. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">fun_ptr</td><td>the pointer to the callback function. The function must take two unsigned 16 bit integers. The first argument to the callback will be the left channel sample, and the second channel will be the right channel sample. If the played file is mono, only the left channel data is used.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="acb4313d72c8258a89ea4cb7a568eb99e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acb4313d72c8258a89ea4cb7a568eb99e">◆ </a></span>stop()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void Adafruit_mp3::stop </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Stop playback. This function stops the playback timer. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9a1baa4861d222fa29f9020b945b8e97"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9a1baa4861d222fa29f9020b945b8e97">◆ </a></span>tick()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int Adafruit_mp3::tick </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The main loop of the mp3 player. This function should be called as fast as possible in the loop() function of your sketch. This checks to see if the buffers need to be filled, and calls the buffer callback function if necessary. It also calls the functions to decode another frame of mp3 data. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li>src/<a class="el" href="Adafruit__mp3_8h_source.html">Adafruit_mp3.h</a></li>
|
|
<li>src/Adafruit_mp3.cpp</li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.14
|
|
</small></address>
|
|
</body>
|
|
</html>
|