arduino_midi_library/a00042.html

621 lines
49 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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Arduino MIDI Library: MIDI Input</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">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Arduino MIDI Library
&#160;<span id="projectnumber">Version 4.3.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('a00042.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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="#groups">Modules</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">MIDI Input</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:a00043"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">Callbacks</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga77b72b026ff0096aa7157d012405e365"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga77b72b026ff0096aa7157d012405e365">MidiInterface&lt; SerialPort, _Settings &gt;::read</a> ()</td></tr>
<tr class="memdesc:ga77b72b026ff0096aa7157d012405e365"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read messages from the serial port using the main input channel. <a href="#ga77b72b026ff0096aa7157d012405e365">More...</a><br /></td></tr>
<tr class="separator:ga77b72b026ff0096aa7157d012405e365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc4cd3ade3754607de336a9b0ef51562"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#gafc4cd3ade3754607de336a9b0ef51562">MidiInterface&lt; SerialPort, _Settings &gt;::read</a> (<a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a> inChannel)</td></tr>
<tr class="memdesc:gafc4cd3ade3754607de336a9b0ef51562"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read messages on a specified channel. <a href="#gafc4cd3ade3754607de336a9b0ef51562">More...</a><br /></td></tr>
<tr class="separator:gafc4cd3ade3754607de336a9b0ef51562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7459c0fb4018b11a7dc811b56af5e171"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga7459c0fb4018b11a7dc811b56af5e171">MidiInterface&lt; SerialPort, _Settings &gt;::getType</a> () const</td></tr>
<tr class="memdesc:ga7459c0fb4018b11a7dc811b56af5e171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the last received message's type. <a href="#ga7459c0fb4018b11a7dc811b56af5e171">More...</a><br /></td></tr>
<tr class="separator:ga7459c0fb4018b11a7dc811b56af5e171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d760c63664735b045c24b17156e0985"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga1d760c63664735b045c24b17156e0985">MidiInterface&lt; SerialPort, _Settings &gt;::getChannel</a> () const</td></tr>
<tr class="memdesc:ga1d760c63664735b045c24b17156e0985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the channel of the message stored in the structure. <a href="#ga1d760c63664735b045c24b17156e0985">More...</a><br /></td></tr>
<tr class="separator:ga1d760c63664735b045c24b17156e0985"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf00f589ca15b3d6b0907f959ee1344c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00008.html#a7c1eccfe3d7d44de8ee9138d5378cd91">DataByte</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#gaf00f589ca15b3d6b0907f959ee1344c8">MidiInterface&lt; SerialPort, _Settings &gt;::getData1</a> () const</td></tr>
<tr class="memdesc:gaf00f589ca15b3d6b0907f959ee1344c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the first data byte of the last received message. <a href="#gaf00f589ca15b3d6b0907f959ee1344c8">More...</a><br /></td></tr>
<tr class="separator:gaf00f589ca15b3d6b0907f959ee1344c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafae0a8c77c9066cb949e5b6b1ff360e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00008.html#a7c1eccfe3d7d44de8ee9138d5378cd91">DataByte</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#gafae0a8c77c9066cb949e5b6b1ff360e4">MidiInterface&lt; SerialPort, _Settings &gt;::getData2</a> () const</td></tr>
<tr class="memdesc:gafae0a8c77c9066cb949e5b6b1ff360e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the second data byte of the last received message. <a href="#gafae0a8c77c9066cb949e5b6b1ff360e4">More...</a><br /></td></tr>
<tr class="separator:gafae0a8c77c9066cb949e5b6b1ff360e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed0ea7484ddde16f22f6fb5220696946"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#gaed0ea7484ddde16f22f6fb5220696946">MidiInterface&lt; SerialPort, _Settings &gt;::getSysExArray</a> () const</td></tr>
<tr class="memdesc:gaed0ea7484ddde16f22f6fb5220696946"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the System Exclusive byte array. <a href="#gaed0ea7484ddde16f22f6fb5220696946">More...</a><br /></td></tr>
<tr class="separator:gaed0ea7484ddde16f22f6fb5220696946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05856922772312097495bc245e644cfd"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga05856922772312097495bc245e644cfd">MidiInterface&lt; SerialPort, _Settings &gt;::getSysExArrayLength</a> () const</td></tr>
<tr class="memdesc:ga05856922772312097495bc245e644cfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the lenght of the System Exclusive array. <a href="#ga05856922772312097495bc245e644cfd">More...</a><br /></td></tr>
<tr class="separator:ga05856922772312097495bc245e644cfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14362d20af2353f5450d127bdbe3a0cc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga14362d20af2353f5450d127bdbe3a0cc">MidiInterface&lt; SerialPort, _Settings &gt;::check</a> () const</td></tr>
<tr class="memdesc:ga14362d20af2353f5450d127bdbe3a0cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a valid message is stored in the structure. <a href="#ga14362d20af2353f5450d127bdbe3a0cc">More...</a><br /></td></tr>
<tr class="separator:ga14362d20af2353f5450d127bdbe3a0cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7d349bbcf42e5118168b921b6a4c37b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#gac7d349bbcf42e5118168b921b6a4c37b">MidiInterface&lt; SerialPort, _Settings &gt;::getInputChannel</a> () const</td></tr>
<tr class="separator:gac7d349bbcf42e5118168b921b6a4c37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga576df6ff055ecb72c1af9073fae9e1f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga576df6ff055ecb72c1af9073fae9e1f0">MidiInterface&lt; SerialPort, _Settings &gt;::setInputChannel</a> (<a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a> inChannel)</td></tr>
<tr class="memdesc:ga576df6ff055ecb72c1af9073fae9e1f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value for the input MIDI channel. <a href="#ga576df6ff055ecb72c1af9073fae9e1f0">More...</a><br /></td></tr>
<tr class="separator:ga576df6ff055ecb72c1af9073fae9e1f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fe93ef5d57c050691348e44e1588e16"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga5fe93ef5d57c050691348e44e1588e16">MidiInterface&lt; SerialPort, _Settings &gt;::getTypeFromStatusByte</a> (<a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> inStatus)</td></tr>
<tr class="memdesc:ga5fe93ef5d57c050691348e44e1588e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract an enumerated MIDI type from a status byte. <a href="#ga5fe93ef5d57c050691348e44e1588e16">More...</a><br /></td></tr>
<tr class="separator:ga5fe93ef5d57c050691348e44e1588e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c50a2be0160dfb169126c7d9e6d1458"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga4c50a2be0160dfb169126c7d9e6d1458">MidiInterface&lt; SerialPort, _Settings &gt;::getChannelFromStatusByte</a> (<a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> inStatus)</td></tr>
<tr class="memdesc:ga4c50a2be0160dfb169126c7d9e6d1458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns channel in the range 1-16. <a href="#ga4c50a2be0160dfb169126c7d9e6d1458">More...</a><br /></td></tr>
<tr class="separator:ga4c50a2be0160dfb169126c7d9e6d1458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga833885e236de37d75838cb6447fdc694"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00042.html#ga833885e236de37d75838cb6447fdc694">MidiInterface&lt; SerialPort, _Settings &gt;::isChannelMessage</a> (<a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a> inType)</td></tr>
<tr class="separator:ga833885e236de37d75838cb6447fdc694"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga14362d20af2353f5450d127bdbe3a0cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga14362d20af2353f5450d127bdbe3a0cc">&sect;&nbsp;</a></span>check()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::check </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if a valid message is stored in the structure. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l01063">1063</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;{</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#a715befa071b78dc19c48c4871bd5f293">valid</a>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;}</div><div class="ttc" id="a00060_html_a715befa071b78dc19c48c4871bd5f293"><div class="ttname"><a href="a00060.html#a715befa071b78dc19c48c4871bd5f293">Message::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00089">midi_Message.h:89</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga1d760c63664735b045c24b17156e0985"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d760c63664735b045c24b17156e0985">&sect;&nbsp;</a></span>getChannel()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getChannel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the channel of the message stored in the structure. </p>
<dl class="section return"><dt>Returns</dt><dd>Channel range is 1 to 16. For non-channel messages, this will return 0. </dd></dl>
<p>Definition at line <a class="el" href="a00005_source.html#l01021">1021</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;{</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#a3e088d88b4c2c84efd78f080a6ba3384">channel</a>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;}</div><div class="ttc" id="a00060_html_a3e088d88b4c2c84efd78f080a6ba3384"><div class="ttname"><a href="a00060.html#a3e088d88b4c2c84efd78f080a6ba3384">Message::channel</a></div><div class="ttdeci">Channel channel</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00061">midi_Message.h:61</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga4c50a2be0160dfb169126c7d9e6d1458"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c50a2be0160dfb169126c7d9e6d1458">&sect;&nbsp;</a></span>getChannelFromStatusByte()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getChannelFromStatusByte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a>&#160;</td>
<td class="paramname"><em>inStatus</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns channel in the range 1-16. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l01117">1117</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;{</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">return</span> (inStatus &amp; 0x0f) + 1;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="gaf00f589ca15b3d6b0907f959ee1344c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf00f589ca15b3d6b0907f959ee1344c8">&sect;&nbsp;</a></span>getData1()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#a7c1eccfe3d7d44de8ee9138d5378cd91">DataByte</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getData1 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the first data byte of the last received message. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l01028">1028</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;{</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#a92150532e5720f95013e16a2f49a8df8">data1</a>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;}</div><div class="ttc" id="a00060_html_a92150532e5720f95013e16a2f49a8df8"><div class="ttname"><a href="a00060.html#a92150532e5720f95013e16a2f49a8df8">Message::data1</a></div><div class="ttdeci">DataByte data1</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00071">midi_Message.h:71</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="gafae0a8c77c9066cb949e5b6b1ff360e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafae0a8c77c9066cb949e5b6b1ff360e4">&sect;&nbsp;</a></span>getData2()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#a7c1eccfe3d7d44de8ee9138d5378cd91">DataByte</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getData2 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the second data byte of the last received message. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l01035">1035</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;{</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#af6ca8f3ba3f77fe769a259de3b88c36c">data2</a>;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;}</div><div class="ttc" id="a00060_html_af6ca8f3ba3f77fe769a259de3b88c36c"><div class="ttname"><a href="a00060.html#af6ca8f3ba3f77fe769a259de3b88c36c">Message::data2</a></div><div class="ttdeci">DataByte data2</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00077">midi_Message.h:77</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="gac7d349bbcf42e5118168b921b6a4c37b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7d349bbcf42e5118168b921b6a4c37b">&sect;&nbsp;</a></span>getInputChannel()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getInputChannel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="a00005_source.html#l01071">1071</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;{</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">return</span> mInputChannel;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
<a id="gaed0ea7484ddde16f22f6fb5220696946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed0ea7484ddde16f22f6fb5220696946">&sect;&nbsp;</a></span>getSysExArray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a> * <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getSysExArray </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the System Exclusive byte array. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00042.html#ga05856922772312097495bc245e644cfd" title="Get the lenght of the System Exclusive array. ">getSysExArrayLength</a> to get the array's length in bytes. </dd></dl>
<p>Definition at line <a class="el" href="a00005_source.html#l01045">1045</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;{</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#a4f63b5d7cc89e5f96c8fed1367832c2b">sysexArray</a>;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;}</div><div class="ttc" id="a00060_html_a4f63b5d7cc89e5f96c8fed1367832c2b"><div class="ttname"><a href="a00060.html#a4f63b5d7cc89e5f96c8fed1367832c2b">Message::sysexArray</a></div><div class="ttdeci">DataByte sysexArray[sSysExMaxSize]</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00083">midi_Message.h:83</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga05856922772312097495bc245e644cfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05856922772312097495bc245e644cfd">&sect;&nbsp;</a></span>getSysExArrayLength()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getSysExArrayLength </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the lenght of the System Exclusive array. </p>
<p>It is coded using data1 as LSB and data2 as MSB. </p><dl class="section return"><dt>Returns</dt><dd>The array's length, in bytes. </dd></dl>
<p>Definition at line <a class="el" href="a00005_source.html#l01056">1056</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;{</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#ab4397a36b44edf4b49cad1fec4b4c41e">getSysExSize</a>();</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;}</div><div class="ttc" id="a00060_html_ab4397a36b44edf4b49cad1fec4b4c41e"><div class="ttname"><a href="a00060.html#ab4397a36b44edf4b49cad1fec4b4c41e">Message::getSysExSize</a></div><div class="ttdeci">unsigned getSysExSize() const</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00091">midi_Message.h:91</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga7459c0fb4018b11a7dc811b56af5e171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7459c0fb4018b11a7dc811b56af5e171">&sect;&nbsp;</a></span>getType()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getType </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the last received message's type. </p>
<p>Returns an enumerated type. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a> </dd></dl>
<p>Definition at line <a class="el" href="a00005_source.html#l01010">1010</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;{</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">return</span> mMessage.<a class="code" href="a00060.html#abfe2249141ed2a0b529f35343affb0e0">type</a>;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;}</div><div class="ttc" id="a00060_html_abfe2249141ed2a0b529f35343affb0e0"><div class="ttname"><a href="a00060.html#abfe2249141ed2a0b529f35343affb0e0">Message::type</a></div><div class="ttdeci">MidiType type</div><div class="ttdef"><b>Definition:</b> <a href="a00011_source.html#l00066">midi_Message.h:66</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga5fe93ef5d57c050691348e44e1588e16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5fe93ef5d57c050691348e44e1588e16">&sect;&nbsp;</a></span>getTypeFromStatusByte()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a> <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::getTypeFromStatusByte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00008.html#ab8ef12fab634c171394422d0ee8baf94">byte</a>&#160;</td>
<td class="paramname"><em>inStatus</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract an enumerated MIDI type from a status byte. </p>
<p>This is a utility static method, used internally, made public so you can handle MidiTypes more easily. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l01094">1094</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;{</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">if</span> ((inStatus &lt; 0x80) ||</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; (inStatus == 0xf4) ||</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; (inStatus == 0xf5) ||</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; (inStatus == 0xf9) ||</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; (inStatus == 0xfD))</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; {</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="comment">// Data bytes and undefined.</span></div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943a791c6b5c1e5f30ce6c7b0937e93adbbb">InvalidType</a>;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; }</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">if</span> (inStatus &lt; 0xf0)</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; {</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="comment">// Channel message, remove channel nibble.</span></div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a>(inStatus &amp; 0xf0);</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; }</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a>(inStatus);</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;}</div><div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943a791c6b5c1e5f30ce6c7b0937e93adbbb"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943a791c6b5c1e5f30ce6c7b0937e93adbbb">InvalidType</a></div><div class="ttdoc">For notifying errors. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00067">midi_Defs.h:67</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a></div><div class="ttdeci">MidiType</div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00065">midi_Defs.h:65</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga833885e236de37d75838cb6447fdc694"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga833885e236de37d75838cb6447fdc694">&sect;&nbsp;</a></span>isChannelMessage()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::isChannelMessage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00008.html#af8bb3cf501a6b530be54ef36864af943">MidiType</a>&#160;</td>
<td class="paramname"><em>inType</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="a00005_source.html#l01123">1123</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;{</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">return</span> (inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943ad37718bd43a7976d5e89e8ee7819e5fd">NoteOff</a> ||</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943affc541f2571710265776574dd39fc319">NoteOn</a> ||</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943ac150258f2e69ec1e535cee9df3f5bb1e">ControlChange</a> ||</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943aef074e16a30d86e0a42b873dd6843cd2">AfterTouchPoly</a> ||</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943a040c84d19624cf23edd3f54c2d432793">AfterTouchChannel</a> ||</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943ad0eed86b1606c722a91a0cb9e71305e6">PitchBend</a> ||</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; inType == <a class="code" href="a00008.html#af8bb3cf501a6b530be54ef36864af943a1b28117f91e20a90f91f6a6886023186">ProgramChange</a>);</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;}</div><div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943aef074e16a30d86e0a42b873dd6843cd2"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943aef074e16a30d86e0a42b873dd6843cd2">AfterTouchPoly</a></div><div class="ttdoc">Polyphonic AfterTouch. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00070">midi_Defs.h:70</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943a040c84d19624cf23edd3f54c2d432793"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943a040c84d19624cf23edd3f54c2d432793">AfterTouchChannel</a></div><div class="ttdoc">Channel (monophonic) AfterTouch. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00073">midi_Defs.h:73</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943a1b28117f91e20a90f91f6a6886023186"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943a1b28117f91e20a90f91f6a6886023186">ProgramChange</a></div><div class="ttdoc">Program Change. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00072">midi_Defs.h:72</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943affc541f2571710265776574dd39fc319"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943affc541f2571710265776574dd39fc319">NoteOn</a></div><div class="ttdoc">Note On. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00069">midi_Defs.h:69</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943ac150258f2e69ec1e535cee9df3f5bb1e"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943ac150258f2e69ec1e535cee9df3f5bb1e">ControlChange</a></div><div class="ttdoc">Control Change / Channel Mode. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00071">midi_Defs.h:71</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943ad0eed86b1606c722a91a0cb9e71305e6"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943ad0eed86b1606c722a91a0cb9e71305e6">PitchBend</a></div><div class="ttdoc">Pitch Bend. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00074">midi_Defs.h:74</a></div></div>
<div class="ttc" id="a00008_html_af8bb3cf501a6b530be54ef36864af943ad37718bd43a7976d5e89e8ee7819e5fd"><div class="ttname"><a href="a00008.html#af8bb3cf501a6b530be54ef36864af943ad37718bd43a7976d5e89e8ee7819e5fd">NoteOff</a></div><div class="ttdoc">Note Off. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00068">midi_Defs.h:68</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga77b72b026ff0096aa7157d012405e365"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77b72b026ff0096aa7157d012405e365">&sect;&nbsp;</a></span>read() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::read </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read messages from the serial port using the main input channel. </p>
<dl class="section return"><dt>Returns</dt><dd>True if a valid message has been stored in the structure, false if not. A valid message is a message that matches the input channel. <br />
<br />
If the <a class="el" href="a00052.html">Thru</a> is enabled and the message matches the filter, it is sent back on the MIDI output. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>see <a class="el" href="a00042.html#ga576df6ff055ecb72c1af9073fae9e1f0" title="Set the value for the input MIDI channel. ">setInputChannel()</a> </dd></dl>
<p>Definition at line <a class="el" href="a00005_source.html#l00643">643</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;{</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> <a class="code" href="a00042.html#ga77b72b026ff0096aa7157d012405e365">read</a>(mInputChannel);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;}</div><div class="ttc" id="a00042_html_ga77b72b026ff0096aa7157d012405e365"><div class="ttname"><a href="a00042.html#ga77b72b026ff0096aa7157d012405e365">MidiInterface::read</a></div><div class="ttdeci">bool read()</div><div class="ttdoc">Read messages from the serial port using the main input channel. </div><div class="ttdef"><b>Definition:</b> <a href="a00005_source.html#l00643">MIDI.hpp:643</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="gafc4cd3ade3754607de336a9b0ef51562"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc4cd3ade3754607de336a9b0ef51562">&sect;&nbsp;</a></span>read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a>&#160;</td>
<td class="paramname"><em>inChannel</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read messages on a specified channel. </p>
<p>Definition at line <a class="el" href="a00005_source.html#l00651">651</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;{</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">if</span> (inChannel &gt;= <a class="code" href="a00008.html#ae5f8dc293002c1090c3551ba40f6aee8">MIDI_CHANNEL_OFF</a>)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// MIDI Input disabled.</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">if</span> (!parse())</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; handleNullVelocityNoteOnAsNoteOff();</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> channelMatch = inputFilter(inChannel);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">if</span> (channelMatch)</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; {</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; launchCallback();</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; }</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; thruFilter(inChannel);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> channelMatch;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;}</div><div class="ttc" id="a00008_html_ae5f8dc293002c1090c3551ba40f6aee8"><div class="ttname"><a href="a00008.html#ae5f8dc293002c1090c3551ba40f6aee8">MIDI_CHANNEL_OFF</a></div><div class="ttdeci">#define MIDI_CHANNEL_OFF</div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00049">midi_Defs.h:49</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ga576df6ff055ecb72c1af9073fae9e1f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga576df6ff055ecb72c1af9073fae9e1f0">&sect;&nbsp;</a></span>setInputChannel()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class SerialPort , class Settings &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="a00048.html">MidiInterface</a>&lt; SerialPort, <a class="el" href="a00048.html#a5f27d8ce1bd770fde14b80b53cdb0b55">Settings</a> &gt;::setInputChannel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00008.html#af0fba1bdf23d6f77614ea9697290325d">Channel</a>&#160;</td>
<td class="paramname"><em>inChannel</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the value for the input MIDI channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">inChannel</td><td>the channel value. Valid values are 1 to 16, MIDI_CHANNEL_OMNI if you want to listen to all channels, and MIDI_CHANNEL_OFF to disable input. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="a00005_source.html#l01081">1081</a> of file <a class="el" href="a00005_source.html">MIDI.hpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;{</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; mInputChannel = inChannel;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;}</div></div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Fri Nov 4 2016 10:54:55 for Arduino MIDI Library by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
</ul>
</div>
</body>
</html>