Wemos8266RelaysLedDisplay/lib/MD_MAX72XX/docs/class_m_d___m_a_x72_x_x.html

1772 lines
97 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>MD_MAX72xx LED Matrix Arduino Library: MD_MAX72XX 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</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="projectlogo"><img alt="Logo" src="MajicDesigns_Logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">MD_MAX72xx LED Matrix Arduino Library
&#160;<span id="projectnumber">3.0</span>
</div>
<div id="projectbrief">Library to control connected MAX72XX devices as a pixel array</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&amp;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&amp;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>
</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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('class_m_d___m_a_x72_x_x.html','');});
/* @license-end */
</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)">
</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">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_m_d___m_a_x72_x_x-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">MD_MAX72XX Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;MD_MAX72xx.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a88ea7aada207c02282d091b7be7084e6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a> { <a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6ab1adfbd7e43930ccfc2317a62447d9f9">PAROLA_HW</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6af0b64275e41b18b0e3a0701721f89bb1">GENERIC_HW</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6a583a8410fad078917bc9f0752395b605">ICSTATION_HW</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6aa31c3dd0315ecc5527dd36689069395a">FC16_HW</a>
}</td></tr>
<tr class="separator:a88ea7aada207c02282d091b7be7084e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c6d702fe0161b19448f35049e00bf4f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a> { <br />
&#160;&#160;<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fad2d5ee4317d7dfb62c9f0dcc88562e1a">SHUTDOWN</a> = 0,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fa5bd97d72ff4cc7d30ee1d24213cee6a7">SCANLIMIT</a> = 1,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fa53f3b55b0268f2e1550cf8357c5b4812">INTENSITY</a> = 2,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fab55dacc59026df463c57bb8d269af10c">TEST</a> = 3,
<br />
&#160;&#160;<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fa7293fb34e1b8e326a15e62d58e8bdc47">DECODE</a> = 4,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fa6e9fa4baa13700cb81d9ca48d849d26f">UPDATE</a> = 10,
<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4fa730720f52539695efa6d004046981827">WRAPAROUND</a> = 11
<br />
}</td></tr>
<tr class="separator:a7c6d702fe0161b19448f35049e00bf4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadaf745b81100652dafeff2eb212f457"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">controlValue_t</a> { <a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457a69c74295de1c864d082152eb358409a1">OFF</a> = 0,
<a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457aa19c4a20e024758f7cb4b82283ef2138">ON</a> = 1
}</td></tr>
<tr class="separator:aadaf745b81100652dafeff2eb212f457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac259d8ecd376228c061c373b564a2e28"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> { <br />
&#160;&#160;<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28ad0e19a3463440fa31e182d03ef304d39">TSL</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28afe33d76fd265c530e38a10f3f8c0b02d">TSR</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28a93aa24c2a3b56d91d032b10e7226782f">TSU</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28a7fe0fa883caa12c30399423ef05fa758">TSD</a>,
<br />
&#160;&#160;<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28a30ab2a71665a29d7acd6fff66335cccb">TFLR</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28adfbb503bdd57b1665c0dd88636028ba6">TFUD</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28a69b903b66cb8e47455fedf8afb10e946">TRC</a>,
<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28a682ed1532dcf4562590ab268f3a276cd">TINV</a>
<br />
}</td></tr>
<tr class="separator:ac259d8ecd376228c061c373b564a2e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b2e511f00bddbcc1fffa78757d71bf5"><td class="memItemLeft" align="right" valign="top">typedef const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">fontType_t</a></td></tr>
<tr class="separator:a5b2e511f00bddbcc1fffa78757d71bf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:ae4f5a0cee2714280a7b8fd694d70c93c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ae4f5a0cee2714280a7b8fd694d70c93c">MD_MAX72XX</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a> mod, uint8_t dataPin, uint8_t clkPin, uint8_t csPin, uint8_t numDevices=1)</td></tr>
<tr class="separator:ae4f5a0cee2714280a7b8fd694d70c93c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22877f79afa52fa3242de425ea85255a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a22877f79afa52fa3242de425ea85255a">MD_MAX72XX</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a> mod, uint8_t csPin, uint8_t numDevices=1)</td></tr>
<tr class="separator:a22877f79afa52fa3242de425ea85255a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f5e98bd8aa93c0624f3cf1ceac292f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a4f5e98bd8aa93c0624f3cf1ceac292f9">begin</a> (void)</td></tr>
<tr class="separator:a4f5e98bd8aa93c0624f3cf1ceac292f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afffa5b85187905f713477435187b3759"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#afffa5b85187905f713477435187b3759">~MD_MAX72XX</a> ()</td></tr>
<tr class="separator:afffa5b85187905f713477435187b3759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods for object and hardware control.</div></td></tr>
<tr class="memitem:aa54ba8b079710f6b4e9f9721e2e09c68"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control</a> (uint8_t dev, <a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a> mode, int value)</td></tr>
<tr class="separator:aa54ba8b079710f6b4e9f9721e2e09c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb43fa0c917e716b9d35eac72fb1dd45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aeb43fa0c917e716b9d35eac72fb1dd45">control</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a> mode, int value)</td></tr>
<tr class="separator:aeb43fa0c917e716b9d35eac72fb1dd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa724a797235e28a43b8d127e4999537e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa724a797235e28a43b8d127e4999537e">control</a> (uint8_t startDev, uint8_t endDev, <a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a> mode, int value)</td></tr>
<tr class="separator:aa724a797235e28a43b8d127e4999537e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5508f498566c3b3e80422e6ff9501ec3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount</a> (void)</td></tr>
<tr class="separator:a5508f498566c3b3e80422e6ff9501ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fb151890cf022197b58a546f75e9e20"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount</a> (void)</td></tr>
<tr class="separator:a2fb151890cf022197b58a546f75e9e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab68333e23c99212d9574b39ed7e67a96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ab68333e23c99212d9574b39ed7e67a96">setModuleType</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a> mod)</td></tr>
<tr class="separator:ab68333e23c99212d9574b39ed7e67a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e126c7e12fbca524ef93befad3db825"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a8e126c7e12fbca524ef93befad3db825">setShiftDataInCallback</a> (uint8_t(*cb)(uint8_t dev, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> t))</td></tr>
<tr class="separator:a8e126c7e12fbca524ef93befad3db825"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4672c2b149198fb682d9aa2518f3505"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#af4672c2b149198fb682d9aa2518f3505">setShiftDataOutCallback</a> (void(*cb)(uint8_t dev, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> t, uint8_t colData))</td></tr>
<tr class="separator:af4672c2b149198fb682d9aa2518f3505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods for graphics and bitmap related abstraction.</div></td></tr>
<tr class="memitem:a5ce5b733333d776ef94e0cc36e1043cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5ce5b733333d776ef94e0cc36e1043cf">clear</a> (void)</td></tr>
<tr class="separator:a5ce5b733333d776ef94e0cc36e1043cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac57b7cd49a465e7f5f3027a1eac46242"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ac57b7cd49a465e7f5f3027a1eac46242">clear</a> (uint8_t startDev, uint8_t endDev)</td></tr>
<tr class="separator:ac57b7cd49a465e7f5f3027a1eac46242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afee0d78eed2563729e21a765289c9cbe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#afee0d78eed2563729e21a765289c9cbe">getBuffer</a> (uint16_t col, uint8_t size, uint8_t *pd)</td></tr>
<tr class="separator:afee0d78eed2563729e21a765289c9cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa211a3ed433222911e1d01800357527a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa211a3ed433222911e1d01800357527a">getColumn</a> (uint8_t c)</td></tr>
<tr class="separator:aa211a3ed433222911e1d01800357527a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1533adc9aa15e29a143e69d9db12881"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa1533adc9aa15e29a143e69d9db12881">getPoint</a> (uint8_t r, uint16_t c)</td></tr>
<tr class="separator:aa1533adc9aa15e29a143e69d9db12881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aaabf8c4df556c3e9a04a1319234261"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a1aaabf8c4df556c3e9a04a1319234261">setBuffer</a> (uint16_t col, uint8_t size, uint8_t *pd)</td></tr>
<tr class="separator:a1aaabf8c4df556c3e9a04a1319234261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3f2885a67e435198b5b01505030165d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ab3f2885a67e435198b5b01505030165d">setColumn</a> (uint16_t c, uint8_t value)</td></tr>
<tr class="separator:ab3f2885a67e435198b5b01505030165d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1078a6ad9ae77ff7ef75f78d86f04da7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a1078a6ad9ae77ff7ef75f78d86f04da7">setPoint</a> (uint8_t r, uint16_t c, bool state)</td></tr>
<tr class="separator:a1078a6ad9ae77ff7ef75f78d86f04da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c3c6ea52bfe61fc0279d9deb98a9e6e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a9c3c6ea52bfe61fc0279d9deb98a9e6e">setRow</a> (uint8_t r, uint8_t value)</td></tr>
<tr class="separator:a9c3c6ea52bfe61fc0279d9deb98a9e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a238cb42149b473027fd203406828dc35"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a238cb42149b473027fd203406828dc35">setRow</a> (uint8_t startDev, uint8_t endDev, uint8_t r, uint8_t value)</td></tr>
<tr class="separator:a238cb42149b473027fd203406828dc35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa81af9a9e4309d9971bec7da3eef5890"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa81af9a9e4309d9971bec7da3eef5890">transform</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> ttype)</td></tr>
<tr class="separator:aa81af9a9e4309d9971bec7da3eef5890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ffcd0e496053262109b20fc020c1d12"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a8ffcd0e496053262109b20fc020c1d12">transform</a> (uint8_t startDev, uint8_t endDev, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> ttype)</td></tr>
<tr class="separator:a8ffcd0e496053262109b20fc020c1d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f91498bfc0023f67d4bf1284ca70317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a3f91498bfc0023f67d4bf1284ca70317">update</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">controlValue_t</a> mode)</td></tr>
<tr class="separator:a3f91498bfc0023f67d4bf1284ca70317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d51360880d7a6fa33a6f917cf423879"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a4d51360880d7a6fa33a6f917cf423879">update</a> (void)</td></tr>
<tr class="separator:a4d51360880d7a6fa33a6f917cf423879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5940c115ad58aeb05d7af1e9162f97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a0b5940c115ad58aeb05d7af1e9162f97">wraparound</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">controlValue_t</a> mode)</td></tr>
<tr class="separator:a0b5940c115ad58aeb05d7af1e9162f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods for managing specific devices or display buffers.</div></td></tr>
<tr class="memitem:acff691690cb5848980f10be9facbe086"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#acff691690cb5848980f10be9facbe086">clear</a> (uint8_t buf)</td></tr>
<tr class="separator:acff691690cb5848980f10be9facbe086"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0db87a521190dad074e4b240a8288fb"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#ab0db87a521190dad074e4b240a8288fb">getColumn</a> (uint8_t buf, uint8_t c)</td></tr>
<tr class="separator:ab0db87a521190dad074e4b240a8288fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59eefabcaf003dc37dd17f41c5d6d211"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a59eefabcaf003dc37dd17f41c5d6d211">getRow</a> (uint8_t buf, uint8_t r)</td></tr>
<tr class="separator:a59eefabcaf003dc37dd17f41c5d6d211"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7788a0bdbef1a302a7652998b21703bd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7788a0bdbef1a302a7652998b21703bd">setColumn</a> (uint8_t buf, uint8_t c, uint8_t value)</td></tr>
<tr class="separator:a7788a0bdbef1a302a7652998b21703bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afff77a9eb68408447a15172d7555d794"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#afff77a9eb68408447a15172d7555d794">setRow</a> (uint8_t buf, uint8_t r, uint8_t value)</td></tr>
<tr class="separator:afff77a9eb68408447a15172d7555d794"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67f8567afe489f497f75448a3137a1ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a67f8567afe489f497f75448a3137a1ef">transform</a> (uint8_t buf, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> ttype)</td></tr>
<tr class="separator:a67f8567afe489f497f75448a3137a1ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cc242e22748229a223851217b76fd4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a9cc242e22748229a223851217b76fd4e">update</a> (uint8_t buf)</td></tr>
<tr class="separator:a9cc242e22748229a223851217b76fd4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods for font and characters.</div></td></tr>
<tr class="memitem:a7d2823427408c464f8285183dfdeafcc"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7d2823427408c464f8285183dfdeafcc">getChar</a> (uint8_t c, uint8_t size, uint8_t *buf)</td></tr>
<tr class="separator:a7d2823427408c464f8285183dfdeafcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa97b0a8149fe89513b16518a8300f238"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#aa97b0a8149fe89513b16518a8300f238">setChar</a> (uint16_t col, uint8_t c)</td></tr>
<tr class="separator:aa97b0a8149fe89513b16518a8300f238"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16655f29d088d8ce1d557abcb703513d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a16655f29d088d8ce1d557abcb703513d">setFont</a> (<a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">fontType_t</a> *f)</td></tr>
<tr class="separator:a16655f29d088d8ce1d557abcb703513d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88b4a38d90588e39ffc70986a501ed2e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a88b4a38d90588e39ffc70986a501ed2e">getMaxFontWidth</a> (void)</td></tr>
<tr class="separator:a88b4a38d90588e39ffc70986a501ed2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a899895fcca3bd4dc424eb78397553077"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a899895fcca3bd4dc424eb78397553077">getFontHeight</a> (void)</td></tr>
<tr class="separator:a899895fcca3bd4dc424eb78397553077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b59272f96f8cae6a41ad7dd0cd5aae2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">fontType_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_d___m_a_x72_x_x.html#a4b59272f96f8cae6a41ad7dd0cd5aae2">getFont</a> (void)</td></tr>
<tr class="separator:a4b59272f96f8cae6a41ad7dd0cd5aae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Core object for the <a class="el" href="class_m_d___m_a_x72_x_x.html">MD_MAX72XX</a> library </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a5b2e511f00bddbcc1fffa78757d71bf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b2e511f00bddbcc1fffa78757d71bf5">&#9670;&nbsp;</a></span>fontType_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef const uint8_t <a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">MD_MAX72XX::fontType_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Font definition type.</p>
<p>This type is used in the <a class="el" href="class_m_d___m_a_x72_x_x.html#a16655f29d088d8ce1d557abcb703513d">setFont()</a> method to set the font to be used </p>
</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a7c6d702fe0161b19448f35049e00bf4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c6d702fe0161b19448f35049e00bf4f">&#9670;&nbsp;</a></span>controlRequest_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">MD_MAX72XX::controlRequest_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Control Request enumerated type.</p>
<p>This enumerated type is used with the <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> method to identify the control action request. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fad2d5ee4317d7dfb62c9f0dcc88562e1a"></a>SHUTDOWN&#160;</td><td class="fielddoc"><p>Shut down the MAX72XX. Requires ON/OFF value. Library default is OFF. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fa5bd97d72ff4cc7d30ee1d24213cee6a7"></a>SCANLIMIT&#160;</td><td class="fielddoc"><p>Set the scan limit for the MAX72XX. Requires numeric value [0..MAX_SCANLIMIT]. Library default is all on. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fa53f3b55b0268f2e1550cf8357c5b4812"></a>INTENSITY&#160;</td><td class="fielddoc"><p>Set the LED intensity for the MAX72XX. Requires numeric value [0..MAX_INTENSITY]. LIbrary default is MAX_INTENSITY/2. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fab55dacc59026df463c57bb8d269af10c"></a>TEST&#160;</td><td class="fielddoc"><p>Set the MAX72XX in test mode. Requires ON/OFF value. Library default is OFF. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fa7293fb34e1b8e326a15e62d58e8bdc47"></a>DECODE&#160;</td><td class="fielddoc"><p>Set the MAX72XX 7 segment decode mode. Requires ON/OFF value. Library default is OFF. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fa6e9fa4baa13700cb81d9ca48d849d26f"></a>UPDATE&#160;</td><td class="fielddoc"><p>Enable or disable auto updates of the devices from the library. Requires ON/OFF value. Library default is ON. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7c6d702fe0161b19448f35049e00bf4fa730720f52539695efa6d004046981827"></a>WRAPAROUND&#160;</td><td class="fielddoc"><p>Enable or disable wraparound when shifting (circular buffer). Requires ON/OFF value. Library default is OFF. </p>
</td></tr>
</table>
</div>
</div>
<a id="aadaf745b81100652dafeff2eb212f457"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadaf745b81100652dafeff2eb212f457">&#9670;&nbsp;</a></span>controlValue_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">MD_MAX72XX::controlValue_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Control Value enumerated type.</p>
<p>This enumerated type is used with the <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> method as the ON/OFF value for a control request. Other values may be used if numeric data is required. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aadaf745b81100652dafeff2eb212f457a69c74295de1c864d082152eb358409a1"></a>OFF&#160;</td><td class="fielddoc"><p>General OFF status request. </p>
</td></tr>
<tr><td class="fieldname"><a id="aadaf745b81100652dafeff2eb212f457aa19c4a20e024758f7cb4b82283ef2138"></a>ON&#160;</td><td class="fielddoc"><p>General ON status request. </p>
</td></tr>
</table>
</div>
</div>
<a id="a88ea7aada207c02282d091b7be7084e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88ea7aada207c02282d091b7be7084e6">&#9670;&nbsp;</a></span>moduleType_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">MD_MAX72XX::moduleType_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Module Type enumerated type.</p>
<p>This enumerated type is used to defined the type of modules being used in the application. The types of modules are discussed in detail in the Hardware section of this documentation. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a88ea7aada207c02282d091b7be7084e6ab1adfbd7e43930ccfc2317a62447d9f9"></a>PAROLA_HW&#160;</td><td class="fielddoc"><p>Use the Parola style hardware modules. </p>
</td></tr>
<tr><td class="fieldname"><a id="a88ea7aada207c02282d091b7be7084e6af0b64275e41b18b0e3a0701721f89bb1"></a>GENERIC_HW&#160;</td><td class="fielddoc"><p>Use 'generic' style hardware modules commonly available. </p>
</td></tr>
<tr><td class="fieldname"><a id="a88ea7aada207c02282d091b7be7084e6a583a8410fad078917bc9f0752395b605"></a>ICSTATION_HW&#160;</td><td class="fielddoc"><p>Use ICStation style hardware module. </p>
</td></tr>
<tr><td class="fieldname"><a id="a88ea7aada207c02282d091b7be7084e6aa31c3dd0315ecc5527dd36689069395a"></a>FC16_HW&#160;</td><td class="fielddoc"><p>Use FC-16 style hardware module. </p>
</td></tr>
</table>
</div>
</div>
<a id="ac259d8ecd376228c061c373b564a2e28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac259d8ecd376228c061c373b564a2e28">&#9670;&nbsp;</a></span>transformType_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">MD_MAX72XX::transformType_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Transformation Types enumerated type.</p>
<p>This enumerated type is used in the <a class="el" href="class_m_d___m_a_x72_x_x.html#aa81af9a9e4309d9971bec7da3eef5890">transform()</a> methods to identify a specific transformation of the display data in the device buffers. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28ad0e19a3463440fa31e182d03ef304d39"></a>TSL&#160;</td><td class="fielddoc"><p>Transform Shift Left one pixel element. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28afe33d76fd265c530e38a10f3f8c0b02d"></a>TSR&#160;</td><td class="fielddoc"><p>Transform Shift Right one pixel element. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28a93aa24c2a3b56d91d032b10e7226782f"></a>TSU&#160;</td><td class="fielddoc"><p>Transform Shift Up one pixel element. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28a7fe0fa883caa12c30399423ef05fa758"></a>TSD&#160;</td><td class="fielddoc"><p>Transform Shift Down one pixel element. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28a30ab2a71665a29d7acd6fff66335cccb"></a>TFLR&#160;</td><td class="fielddoc"><p>Transform Flip Left to Right. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28adfbb503bdd57b1665c0dd88636028ba6"></a>TFUD&#160;</td><td class="fielddoc"><p>Transform Flip Up to Down. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28a69b903b66cb8e47455fedf8afb10e946"></a>TRC&#160;</td><td class="fielddoc"><p>Transform Rotate Clockwise 90 degrees. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac259d8ecd376228c061c373b564a2e28a682ed1532dcf4562590ab268f3a276cd"></a>TINV&#160;</td><td class="fielddoc"><p>Transform INVert (pixels inverted) </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae4f5a0cee2714280a7b8fd694d70c93c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4f5a0cee2714280a7b8fd694d70c93c">&#9670;&nbsp;</a></span>MD_MAX72XX() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MD_MAX72XX::MD_MAX72XX </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a>&#160;</td>
<td class="paramname"><em>mod</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>dataPin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>clkPin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>csPin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>numDevices</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Class Constructor - arbitrary digital interface.</p>
<p>Instantiate a new instance of the class. The parameters passed are used to connect the software to the hardware. Multiple instances may co-exist but they should not share the same hardware CS pin (SPI interface).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mod</td><td>module type used in this application. One of the moduleType_t values. </td></tr>
<tr><td class="paramname">dataPin</td><td>output on the Arduino where data gets shifted out. </td></tr>
<tr><td class="paramname">clkPin</td><td>output for the clock signal. </td></tr>
<tr><td class="paramname">csPin</td><td>output for selecting the device. </td></tr>
<tr><td class="paramname">numDevices</td><td>number of devices connected. Default is 1 if not supplied. Memory for device buffers is dynamically allocated based on this parameter. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a22877f79afa52fa3242de425ea85255a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22877f79afa52fa3242de425ea85255a">&#9670;&nbsp;</a></span>MD_MAX72XX() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MD_MAX72XX::MD_MAX72XX </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a>&#160;</td>
<td class="paramname"><em>mod</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>csPin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>numDevices</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Class Constructor - SPI hardware interface.</p>
<p>Instantiate a new instance of the class. The parameters passed are used to connect the software to the hardware. Multiple instances may co-exist but they should not share the same hardware CS pin (SPI interface). The dataPin and the clockPin are defined by the Arduino hardware definition (SPI MOSI and SCK signals).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mod</td><td>module type used in this application. One of the moduleType_t values. </td></tr>
<tr><td class="paramname">csPin</td><td>output for selecting the device. </td></tr>
<tr><td class="paramname">numDevices</td><td>number of devices connected. Default is 1 if not supplied. Memory for device buffers is dynamically allocated based on this parameter. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afffa5b85187905f713477435187b3759"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afffa5b85187905f713477435187b3759">&#9670;&nbsp;</a></span>~MD_MAX72XX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">MD_MAX72XX::~MD_MAX72XX </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Class Destructor.</p>
<p>Released allocated memory and does the necessary to clean up once the object is no longer required. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4f5e98bd8aa93c0624f3cf1ceac292f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f5e98bd8aa93c0624f3cf1ceac292f9">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::begin </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the object.</p>
<p>Initialize the object data. This needs to be called during setup() to initialize new data for the class that cannot be done during the object creation.</p>
<p>The LED hardware is initialized to the middle intensity value, all rows showing, and all LEDs cleared (off). Test, shutdown and decode modes are off. Display updates are on and wraparound is off. </p>
</div>
</div>
<a id="a5ce5b733333d776ef94e0cc36e1043cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ce5b733333d776ef94e0cc36e1043cf">&#9670;&nbsp;</a></span>clear() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::clear </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear all the display data on all the display devices.</p>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<a id="ac57b7cd49a465e7f5f3027a1eac46242"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac57b7cd49a465e7f5f3027a1eac46242">&#9670;&nbsp;</a></span>clear() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::clear </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>startDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>endDev</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear all the display data on a subset of devices.</p>
<p>endDev must be greater than or equal to startDev.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startDev</td><td>the first device to clear [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">endDev</td><td>the last device to clear [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<a id="acff691690cb5848980f10be9facbe086"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acff691690cb5848980f10be9facbe086">&#9670;&nbsp;</a></span>clear() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::clear </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clear all display data in the specified buffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the buffer to clear [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="aa54ba8b079710f6b4e9f9721e2e09c68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa54ba8b079710f6b4e9f9721e2e09c68">&#9670;&nbsp;</a></span>control() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::control </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>dev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the control status of the specified parameter for the specified device.</p>
<p>The device has a number of control parameters that can be set through this method. The type of control action required is passed through the mode parameter and should be one of the control actions defined by controlRequest_t. The value that needs to be supplied on the control action required is one of the defined actions in controlValue_t or a numeric parameter suitable for the control action.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dev</td><td>address of the device to control [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
<tr><td class="paramname">mode</td><td>one of the defined control requests. </td></tr>
<tr><td class="paramname">value</td><td>parameter value or one of the control status defined. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="aeb43fa0c917e716b9d35eac72fb1dd45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb43fa0c917e716b9d35eac72fb1dd45">&#9670;&nbsp;</a></span>control() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::control </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the control status of the specified parameter for all devices.</p>
<p>Invokes the control function for each device in turn. as this is a wrapper for the control(startDev, endDev, ...) methods, see the documentation for that method.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mode</td><td>one of the defined control requests. </td></tr>
<tr><td class="paramname">value</td><td>parameter value or one of the control status defined. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<a id="aa724a797235e28a43b8d127e4999537e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa724a797235e28a43b8d127e4999537e">&#9670;&nbsp;</a></span>control() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::control </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>startDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>endDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a7c6d702fe0161b19448f35049e00bf4f">controlRequest_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the control status of the specified parameter for contiguous subset of devices.</p>
<p>Invokes the control function for each device in turn for the devices in the subset. See documentation for the <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> method.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startDev</td><td>the first device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">endDev</td><td>the last device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">mode</td><td>one of the defined control requests. </td></tr>
<tr><td class="paramname">value</td><td>parameter value or one of the control status defined. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="afee0d78eed2563729e21a765289c9cbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afee0d78eed2563729e21a765289c9cbe">&#9670;&nbsp;</a></span>getBuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::getBuffer </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>col</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>pd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load a bitmap from the display buffers to a user buffer.</p>
<p>Allows the calling program to read bitmaps (characters or graphic) elements from the library display buffers. The data buffer pointer should be a block of uint8_t data of size elements that will contain the returned data.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">col</td><td>address of the display column [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
<tr><td class="paramname">size</td><td>number of columns of data to return. </td></tr>
<tr><td class="paramname">*pd</td><td>Pointer to a data buffer [0..size-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. If true, data will be in the buffer at *pd. </dd></dl>
</div>
</div>
<a id="a7d2823427408c464f8285183dfdeafcc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d2823427408c464f8285183dfdeafcc">&#9670;&nbsp;</a></span>getChar()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getChar </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buf</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load a character from the font data into a user buffer.</p>
<p>Copy the bitmap for a library font character (current font set by <a class="el" href="class_m_d___m_a_x72_x_x.html#a16655f29d088d8ce1d557abcb703513d">setFont()</a>) and return it in the data area passed by the user. If the user buffer is not large enough, only the first size elements are copied to the buffer.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>the character to retrieve. </td></tr>
<tr><td class="paramname">size</td><td>the size of the user buffer in unit8_t units. </td></tr>
<tr><td class="paramname">buf</td><td>address of the user buffer supplied. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>width (in columns) of the character, 0 if parameter errors. </dd></dl>
</div>
</div>
<a id="aa211a3ed433222911e1d01800357527a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa211a3ed433222911e1d01800357527a">&#9670;&nbsp;</a></span>getColumn() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getColumn </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>c</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the LEDS status for the specified column.</p>
<p>This method operates on a specific buffer</p>
<p>This method operates on one column, getting the bit field value of the LEDs in the column. The column is referenced with the absolute column number (ie, the device number is inferred from the column).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>column to be read [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint8_t value with each bit set to 1 if the corresponding LED is lit. 0 is returned for parameter error. </dd></dl>
</div>
</div>
<a id="ab0db87a521190dad074e4b240a8288fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0db87a521190dad074e4b240a8288fb">&#9670;&nbsp;</a></span>getColumn() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getColumn </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the state of the LEDs in a specific column.</p>
<p>This method operates on the specific buffer, returning the bit field value of the LEDs in the column.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
<tr><td class="paramname">c</td><td>column which is to be set [0..COL_SIZE-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint8_t value with each bit set to 1 if the corresponding LED is lit. 0 is returned for parameter error. </dd></dl>
</div>
</div>
<a id="a2fb151890cf022197b58a546f75e9e20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fb151890cf022197b58a546f75e9e20">&#9670;&nbsp;</a></span>getColumnCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t MD_MAX72XX::getColumnCount </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the maximum number of columns for devices attached to this class instance.</p>
<dl class="section return"><dt>Returns</dt><dd>uint16_t representing the number of columns. </dd></dl>
</div>
</div>
<a id="a5508f498566c3b3e80422e6ff9501ec3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5508f498566c3b3e80422e6ff9501ec3">&#9670;&nbsp;</a></span>getDeviceCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getDeviceCount </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the number of devices attached to this class instance.</p>
<dl class="section return"><dt>Returns</dt><dd>uint8_t representing the number of devices attached to this object. </dd></dl>
</div>
</div>
<a id="a4b59272f96f8cae6a41ad7dd0cd5aae2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b59272f96f8cae6a41ad7dd0cd5aae2">&#9670;&nbsp;</a></span>getFont()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">fontType_t</a>* MD_MAX72XX::getFont </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the pointer to current font table.</p>
<p>Returns the pointer to the current font table. Useful if user code needs to replace the current font temporarily and then restore previous font.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the start of the font table in PROGMEM. </dd></dl>
</div>
</div>
<a id="a899895fcca3bd4dc424eb78397553077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a899895fcca3bd4dc424eb78397553077">&#9670;&nbsp;</a></span>getFontHeight()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getFontHeight </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get height of a character for the font.</p>
<p>Returns the number of rows specified as the height of a character in the currently selected font table.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="section return"><dt>Returns</dt><dd>number of rows (height) for the font. </dd></dl>
</div>
</div>
<a id="a88b4a38d90588e39ffc70986a501ed2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88b4a38d90588e39ffc70986a501ed2e">&#9670;&nbsp;</a></span>getMaxFontWidth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getMaxFontWidth </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum width character for the font.</p>
<p>Returns the number of columns for the widest character in the currently selected font table. Useful to allocated buffers of the right size before loading characters from the font table.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="section return"><dt>Returns</dt><dd>number of columns (width) for the widest character. </dd></dl>
</div>
</div>
<a id="aa1533adc9aa15e29a143e69d9db12881"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1533adc9aa15e29a143e69d9db12881">&#9670;&nbsp;</a></span>getPoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::getPoint </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the status of a single LED, addressed as a pixel.</p>
<p>The method will get the status of a specific LED element based on its coordinate position. The column number is dereferenced into the device and column within the device, allowing the LEDs to be treated as a continuous pixel field.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">r</td><td>row coordinate for the point [0..ROW_SIZE-1]. </td></tr>
<tr><td class="paramname">c</td><td>column coordinate for the point [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if LED is on, false if off or parameter errors. </dd></dl>
</div>
</div>
<a id="a59eefabcaf003dc37dd17f41c5d6d211"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59eefabcaf003dc37dd17f41c5d6d211">&#9670;&nbsp;</a></span>getRow()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::getRow </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the state of the LEDs in a specified row.</p>
<p>This method operates on the specific buffer, returning the bit field value of the LEDs in the row.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
<tr><td class="paramname">r</td><td>row which is to be set [0..ROW_SIZE-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint8_t value with each bit set to 1 if the corresponding LED is lit. 0 is returned for parameter error. </dd></dl>
</div>
</div>
<a id="a1aaabf8c4df556c3e9a04a1319234261"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1aaabf8c4df556c3e9a04a1319234261">&#9670;&nbsp;</a></span>setBuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setBuffer </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>col</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>pd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load a bitfield from the user buffer to a display buffer.</p>
<p>Allows the calling program to define bitmaps (characters or graphic) elements and pass them to the library for display. The data buffer pointer should be a block of uint8_t data of size elements that define the bitmap.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">col</td><td>address of the start display column [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
<tr><td class="paramname">size</td><td>number of columns of data following. </td></tr>
<tr><td class="paramname">*pd</td><td>Pointer to a data buffer [0..size-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="aa97b0a8149fe89513b16518a8300f238"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa97b0a8149fe89513b16518a8300f238">&#9670;&nbsp;</a></span>setChar()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t MD_MAX72XX::setChar </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>col</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Load a character from the font data starting at a specific column.</p>
<p>Load a character from the font table directly into the display at the column specified. The currently selected font table is used as the source.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">col</td><td>column of the display in the range accepted [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
<tr><td class="paramname">c</td><td>the character to display. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>width (in columns) of the character, 0 if parameter errors. </dd></dl>
</div>
</div>
<a id="ab3f2885a67e435198b5b01505030165d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3f2885a67e435198b5b01505030165d">&#9670;&nbsp;</a></span>setColumn() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setColumn </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set all LEDs in a specific column to a new state.</p>
<p>This method operates on one column, setting the value of the LEDs in the column to the specified value bitfield. The column is referenced with the absolute column number (ie, the device number is inferred from the column). The method is useful for drawing vertical lines and patterns when the display is being treated as a pixel field. The least significant bit of the value is the lowest row number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>column which is to be set [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
<tr><td class="paramname">value</td><td>each bit set to 1 will light up the corresponding LED. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a7788a0bdbef1a302a7652998b21703bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7788a0bdbef1a302a7652998b21703bd">&#9670;&nbsp;</a></span>setColumn() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setColumn </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set all LEDs in a column to a new state.</p>
<p>This method operates on a specific buffer, setting the value of the LEDs in the column to the specified value bit field. The method is useful for drawing patterns and lines vertically on the display device. The least significant bit of the value is the lowest column number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
<tr><td class="paramname">c</td><td>column which is to be set [0..COL_SIZE-1]. </td></tr>
<tr><td class="paramname">value</td><td>each bit set to 1 will light up the corresponding LED. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a16655f29d088d8ce1d557abcb703513d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16655f29d088d8ce1d557abcb703513d">&#9670;&nbsp;</a></span>setFont()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setFont </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a5b2e511f00bddbcc1fffa78757d71bf5">fontType_t</a> *&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the current font table.</p>
<p>Font data is stored in PROGMEM, in the format described elsewhere in the documentation. All characters retrieved or used after this call will use the nominated font (default or user defined). To specify a user defined character set, pass the PROGMEM address of the font table. Passing a nullptr resets the font table to the library default table.</p>
<p>NOTE: This function is only available if the library defined value USE_LOCAL_FONT is set to 1.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>fontType_t pointer to the table of font data in PROGMEM or nullptr. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="ab68333e23c99212d9574b39ed7e67a96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab68333e23c99212d9574b39ed7e67a96">&#9670;&nbsp;</a></span>setModuleType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::setModuleType </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#a88ea7aada207c02282d091b7be7084e6">moduleType_t</a>&#160;</td>
<td class="paramname"><em>mod</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the type of hardware module being used.</p>
<p>This method changes the type of module being used in the application during at run time.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mod</td><td>module type used in this application; one of the moduleType_t values. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return data </dd></dl>
</div>
</div>
<a id="a1078a6ad9ae77ff7ef75f78d86f04da7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1078a6ad9ae77ff7ef75f78d86f04da7">&#9670;&nbsp;</a></span>setPoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setPoint </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the status of a single LED, addressed as a pixel.</p>
<p>The method will set the value of a specific LED element based on its coordinate position. The LED will be turned on or off depending on the value supplied. The column number is dereferenced into the device and column within the device, allowing the LEDs to be treated as a continuous pixel field.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">r</td><td>row coordinate for the point [0..ROW_SIZE-1]. </td></tr>
<tr><td class="paramname">c</td><td>column coordinate for the point [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a2fb151890cf022197b58a546f75e9e20">getColumnCount()</a>-1]. </td></tr>
<tr><td class="paramname">state</td><td>true - switch on; false - switch off. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a9c3c6ea52bfe61fc0279d9deb98a9e6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c3c6ea52bfe61fc0279d9deb98a9e6e">&#9670;&nbsp;</a></span>setRow() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setRow </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set all LEDs in a row to a new state on all devices.</p>
<p>This method operates on all devices, setting the value of the LEDs in the row to the specified value bit field. The method is useful for drawing patterns and lines horizontally across on the entire display. The least significant bit of the value is the lowest column number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">r</td><td>row which is to be set [0..ROW_SIZE-1]. </td></tr>
<tr><td class="paramname">value</td><td>each bit set to 1 will light up the corresponding LED on each device. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a238cb42149b473027fd203406828dc35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a238cb42149b473027fd203406828dc35">&#9670;&nbsp;</a></span>setRow() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setRow </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>startDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>endDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set all LEDs in a row to a new state on contiguous subset of devices.</p>
<p>This method operates on a contiguous subset of devices, setting the value of the LEDs in the row to the specified value bit field. The method is useful for drawing patterns and lines horizontally across specific devices only. endDev must be greater than or equal to startDev. The least significant bit of the value is the lowest column number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startDev</td><td>the first device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">endDev</td><td>the last device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">r</td><td>row which is to be set [0..ROW_SIZE-1]. </td></tr>
<tr><td class="paramname">value</td><td>each bit set to 1 will light up the corresponding LED on each device. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="afff77a9eb68408447a15172d7555d794"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afff77a9eb68408447a15172d7555d794">&#9670;&nbsp;</a></span>setRow() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::setRow </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>r</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set all LEDs in a row to a new state.</p>
<p>This method operates on a specific device, setting the value of the LEDs in the row to the specified value bit field. The method is useful for drawing patterns and lines horizontally across the display device. The least significant bit of the value is the lowest row number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]. </td></tr>
<tr><td class="paramname">r</td><td>row which is to be set [0..ROW_SIZE-1]. </td></tr>
<tr><td class="paramname">value</td><td>each bit set to 1 within this byte will light up the corresponding LED. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a8e126c7e12fbca524ef93befad3db825"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e126c7e12fbca524ef93befad3db825">&#9670;&nbsp;</a></span>setShiftDataInCallback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::setShiftDataInCallback </td>
<td>(</td>
<td class="paramtype">uint8_t(*)(uint8_t dev, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> t)&#160;</td>
<td class="paramname"><em>cb</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the Shift Data In callback function.</p>
<p>The callback function is called from the library when a transform shift left or shift right operation is executed and the library needs to obtain data for the end element of the shift (ie, conceptually this is the new data that is shifted 'into' the display). The callback function is invoked when</p><ul>
<li>WRAPAROUND is not active, as the data would automatically supplied within the library.</li>
<li>the call to <a class="el" href="class_m_d___m_a_x72_x_x.html#aa81af9a9e4309d9971bec7da3eef5890">transform()</a> is global (ie, not for an individual buffer).</li>
</ul>
<p>The callback function takes 2 parameters:</p><ul>
<li>the device number requesting the data [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]</li>
<li>one of the transformation types in transformType_t) that tells the callback function what shift is being performed The return value is the data for the column to be shifted into the display.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cb</td><td>the address of the user function to be called from the library. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return data </dd></dl>
</div>
</div>
<a id="af4672c2b149198fb682d9aa2518f3505"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4672c2b149198fb682d9aa2518f3505">&#9670;&nbsp;</a></span>setShiftDataOutCallback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::setShiftDataOutCallback </td>
<td>(</td>
<td class="paramtype">void(*)(uint8_t dev, <a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a> t, uint8_t colData)&#160;</td>
<td class="paramname"><em>cb</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the Shift Data Out callback function.</p>
<p>The callback function is called from the library when a transform shift left or shift right operation is executed and the library is about to discard the data for the first element of the shift (ie, conceptually this is the data that 'falls' off the front end of the scrolling display). The callback function is invoked when</p><ul>
<li>WRAPAROUND is not active, as the data would automatically supplied to the tail end.</li>
<li>the call to <a class="el" href="class_m_d___m_a_x72_x_x.html#aa81af9a9e4309d9971bec7da3eef5890">transform()</a> is global (ie, not for an individual buffer).</li>
</ul>
<p>The callback function is with supplied 3 parameters, with no return value required:</p><ul>
<li>the device number that is the source of the data [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1]</li>
<li>one of the transformation types transformType_t that tells the callback function the type of shifting being executed</li>
<li>the data for the column being shifted out</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cb</td><td>the address of the user function to be called from the library. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return data </dd></dl>
</div>
</div>
<a id="aa81af9a9e4309d9971bec7da3eef5890"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa81af9a9e4309d9971bec7da3eef5890">&#9670;&nbsp;</a></span>transform() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::transform </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a>&#160;</td>
<td class="paramname"><em>ttype</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply a transformation to the data in all the devices.</p>
<p>The buffers for all devices can be transformed using one of the enumerated transformations in transformType_t. The transformation is carried across device boundaries (ie, there is overflow to an adjacent devices if appropriate).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ttype</td><td>one of the transformation types in transformType_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a8ffcd0e496053262109b20fc020c1d12"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ffcd0e496053262109b20fc020c1d12">&#9670;&nbsp;</a></span>transform() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::transform </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>startDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>endDev</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a>&#160;</td>
<td class="paramname"><em>ttype</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply a transformation to the data in contiguous subset of devices.</p>
<p>The buffers for all devices in the subset can be transformed using one of the enumerated transformations in transformType_t. The transformation is carried across device boundaries (ie, there is overflow to an adjacent devices if appropriate). endDev must be greater than or equal to startDev.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startDev</td><td>the first device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">endDev</td><td>the last device for the transformation [0..<a class="el" href="class_m_d___m_a_x72_x_x.html#a5508f498566c3b3e80422e6ff9501ec3">getDeviceCount()</a>-1] </td></tr>
<tr><td class="paramname">ttype</td><td>one of the transformation types in transformType_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a67f8567afe489f497f75448a3137a1ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67f8567afe489f497f75448a3137a1ef">&#9670;&nbsp;</a></span>transform() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool MD_MAX72XX::transform </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#ac259d8ecd376228c061c373b564a2e28">transformType_t</a>&#160;</td>
<td class="paramname"><em>ttype</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Apply a transformation to the data in the specified device.</p>
<p>The buffer for one device can be transformed using one of the enumerated transformations in transformType_t. The transformation is limited to the nominated device buffer only (ie, there is no overflow to an adjacent device).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..getBufferCount()-1]. </td></tr>
<tr><td class="paramname">ttype</td><td>one of the transformation types in transformType_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>false if parameter errors, true otherwise. </dd></dl>
</div>
</div>
<a id="a3f91498bfc0023f67d4bf1284ca70317"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f91498bfc0023f67d4bf1284ca70317">&#9670;&nbsp;</a></span>update() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::update </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">controlValue_t</a>&#160;</td>
<td class="paramname"><em>mode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Turn auto display updates on or off.</p>
<p>Turn auto updates on and off, as required. When auto updates are turned OFF the display will not update after each operation. Display updates can be forced at any time using using a call to <a class="el" href="class_m_d___m_a_x72_x_x.html#a4d51360880d7a6fa33a6f917cf423879">update()</a> with no parameters.</p>
<p>This function is a convenience wrapper for the more general <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> function call.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mode</td><td>one of the types in controlValue_t (ON/OFF). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<a id="a4d51360880d7a6fa33a6f917cf423879"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d51360880d7a6fa33a6f917cf423879">&#9670;&nbsp;</a></span>update() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::update </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Force an update of all devices</p>
<p>Used when auto updates have been turned off through the control method. This will force all buffered changes to be written to all the connected devices.</p>
<dl class="section return"><dt>Returns</dt><dd>no return value. </dd></dl>
</div>
</div>
<a id="a9cc242e22748229a223851217b76fd4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cc242e22748229a223851217b76fd4e">&#9670;&nbsp;</a></span>update() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::update </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>buf</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Force an update of one buffer.</p>
<p>Used when auto updates have been turned off through the <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> method. This will force all buffered display changes to be written to the specified device at the same time. Note that <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> messages are not buffered but cause immediate action.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>address of the display [0..getBufferCount()-1]. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<a id="a0b5940c115ad58aeb05d7af1e9162f97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b5940c115ad58aeb05d7af1e9162f97">&#9670;&nbsp;</a></span>wraparound()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MD_MAX72XX::wraparound </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_m_d___m_a_x72_x_x.html#aadaf745b81100652dafeff2eb212f457">controlValue_t</a>&#160;</td>
<td class="paramname"><em>mode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Turn display wraparound on or off.</p>
<p>When shifting left or right, up or down, the outermost edge is normally lost and a blank row or column inserted on the opposite side. If this options is enabled, the edge is wrapped around to the opposite side.</p>
<p>This function is a convenience wrapper for the more general <a class="el" href="class_m_d___m_a_x72_x_x.html#aa54ba8b079710f6b4e9f9721e2e09c68">control()</a> function call.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mode</td><td>one of the types in controlValue_t (ON/OFF). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>No return value. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="_m_d___m_a_x72xx_8h.html">MD_MAX72xx.h</a></li>
<li>src/<a class="el" href="_m_d___m_a_x72xx_8cpp.html">MD_MAX72xx.cpp</a></li>
<li>src/<a class="el" href="_m_d___m_a_x72xx__buf_8cpp.html">MD_MAX72xx_buf.cpp</a></li>
<li>src/<a class="el" href="_m_d___m_a_x72xx__font_8cpp.html">MD_MAX72xx_font.cpp</a></li>
<li>src/<a class="el" href="_m_d___m_a_x72xx__pix_8cpp.html">MD_MAX72xx_pix.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_m_d___m_a_x72_x_x.html">MD_MAX72XX</a></li>
<li class="footer">Generated on Sat Aug 4 2018 13:21:28 for MD_MAX72xx LED Matrix Arduino Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>