Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 2eb128636afdc4a8c8207ec3ec09861d > files > 66

fluidsynth-devel-1.1.3-1.fc14.i686.rpm

<!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"/>
<title>libfluidsynth: midi.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>midi.h File Reference</h1>  </div>
</div>
<div class="contents">

<p>Functions for MIDI events, drivers and MIDI file playback.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a> )(void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generic callback function for MIDI events.  <a href="#a3a48ed2196aabf2618a7d1ad64257465"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962b">fluid_midi_router_rule_type</a> { <br/>
&nbsp;&nbsp;<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba44d3968ac6d884210bdace219f17c684">FLUID_MIDI_ROUTER_RULE_NOTE</a>, 
<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba7101b696d6409a75744cced6becc6e6e">FLUID_MIDI_ROUTER_RULE_CC</a>, 
<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962babbe8a5a3656c54f93860007d618758d6">FLUID_MIDI_ROUTER_RULE_PROG_CHANGE</a>, 
<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba087309f49bb501d67d74a9d5a128e621">FLUID_MIDI_ROUTER_RULE_PITCH_BEND</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba6a5cef115e539ec2d4bdc0f0edc7e78a">FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE</a>, 
<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba087ac6403062ebe1714658d13fb503f8">FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE</a>, 
<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba6046a4845f7d72a92afed8ea13ab2a7a">FLUID_MIDI_ROUTER_RULE_COUNT</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>MIDI router rule type. </p>
 <a href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962b">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83">fluid_player_status</a> { <a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83a7c1ac551f1a28ba42ca3d7abac0120b6">FLUID_PLAYER_READY</a>, 
<a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83a98ece3a92210189eaad462edc8545bc5">FLUID_PLAYER_PLAYING</a>, 
<a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83a3495ae2441e9ec5f25f085378e9ac7be">FLUID_PLAYER_DONE</a>
 }</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>MIDI player status enum. </p>
 <a href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#aa6415d0c9caa2b317ba4beff63171ceb">new_fluid_midi_event</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a MIDI event structure.  <a href="#aa6415d0c9caa2b317ba4beff63171ceb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a2f7ad06b26b452f36b8dc94cd9376899">delete_fluid_midi_event</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete MIDI event structure.  <a href="#a2f7ad06b26b452f36b8dc94cd9376899"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ab1286f2dec54372e866d6654cc9360aa">fluid_midi_event_set_type</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the event type field of a MIDI event structure.  <a href="#ab1286f2dec54372e866d6654cc9360aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a63c2b0009873e8a1761f3a3365b12244">fluid_midi_event_get_type</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the event type field of a MIDI event structure.  <a href="#a63c2b0009873e8a1761f3a3365b12244"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#afcb5b13a619a8248d28c4f1dda5545c7">fluid_midi_event_set_channel</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the channel field of a MIDI event structure.  <a href="#afcb5b13a619a8248d28c4f1dda5545c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ad6a5072d25f83834d41205d0c0806b9d">fluid_midi_event_get_channel</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the channel field of a MIDI event structure.  <a href="#ad6a5072d25f83834d41205d0c0806b9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a2ed781f6bc77a94c80d5f33ba63f4b05">fluid_midi_event_get_key</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the key field of a MIDI event structure.  <a href="#a2ed781f6bc77a94c80d5f33ba63f4b05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a5f0468e784e597a8c00300ba2f4feb94">fluid_midi_event_set_key</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int key)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the key field of a MIDI event structure.  <a href="#a5f0468e784e597a8c00300ba2f4feb94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a6462c5c51d6cfa9c328417d2f1f4b6d5">fluid_midi_event_get_velocity</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the velocity field of a MIDI event structure.  <a href="#a6462c5c51d6cfa9c328417d2f1f4b6d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a9a5b449df35e4741b8148188b82432ee">fluid_midi_event_set_velocity</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int vel)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the velocity field of a MIDI event structure.  <a href="#a9a5b449df35e4741b8148188b82432ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a4f50a77de21c9bfa7207617ef3ff3440">fluid_midi_event_get_control</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the control number of a MIDI event structure.  <a href="#a4f50a77de21c9bfa7207617ef3ff3440"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ad469d37df9528021a23ae791e83fc883">fluid_midi_event_set_control</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int ctrl)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the control field of a MIDI event structure.  <a href="#ad469d37df9528021a23ae791e83fc883"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ac0dfb3cc8be8571ecf2d2dd05b92a9b2">fluid_midi_event_get_value</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the value field from a MIDI event structure.  <a href="#ac0dfb3cc8be8571ecf2d2dd05b92a9b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a9e5ba6063c37232da0a1ca54d014d2c2">fluid_midi_event_set_value</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value field of a MIDI event structure.  <a href="#a9e5ba6063c37232da0a1ca54d014d2c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a49901971bb418efc14b2de5954b4b200">fluid_midi_event_get_program</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program field of a MIDI event structure.  <a href="#a49901971bb418efc14b2de5954b4b200"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#aebfaddc5df291b918611e0535488cc3e">fluid_midi_event_set_program</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the program field of a MIDI event structure.  <a href="#aebfaddc5df291b918611e0535488cc3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ad1f10dd6f386f2a189b7389fd1fac169">fluid_midi_event_get_pitch</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the pitch field of a MIDI event structure.  <a href="#ad1f10dd6f386f2a189b7389fd1fac169"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a1cf0dceda327e1f5203bfaf5abb7a4a5">fluid_midi_event_set_pitch</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, int val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the pitch field of a MIDI event structure.  <a href="#a1cf0dceda327e1f5203bfaf5abb7a4a5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#aca9629155bc66432248972037ef6d317">fluid_midi_event_set_sysex</a> (<a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *evt, void *data, int size, int dynamic)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign sysex data to a MIDI event structure.  <a href="#aca9629155bc66432248972037ef6d317"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <br class="typebreak"/>
<a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ae28ddf804fa5ba108a65c24fcf6e9813">new_fluid_midi_router</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings, <a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a> handler, void *event_handler_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new midi router.  <a href="#ae28ddf804fa5ba108a65c24fcf6e9813"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a48f3cd2fcebc5f80c8a9ce43973b9fdc">delete_fluid_midi_router</a> (<a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a MIDI router instance.  <a href="#a48f3cd2fcebc5f80c8a9ce43973b9fdc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a32ecd2bdcc9bce39d0e0c68e5c1b80cb">fluid_midi_router_set_default_rules</a> (<a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *router)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a MIDI router to use default "unity" rules.  <a href="#a32ecd2bdcc9bce39d0e0c68e5c1b80cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a57aed5e84828c202452e13f265dd72f7">fluid_midi_router_clear_rules</a> (<a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *router)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear all rules in a MIDI router.  <a href="#a57aed5e84828c202452e13f265dd72f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#aa1894a103cde4f1efe80c7c9d5096ae2">fluid_midi_router_add_rule</a> (<a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *router, <a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *rule, int type)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a rule to a MIDI router.  <a href="#aa1894a103cde4f1efe80c7c9d5096ae2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <br class="typebreak"/>
<a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a128bc8b126cbabf7717149123815d235">new_fluid_midi_router_rule</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new MIDI router rule.  <a href="#a128bc8b126cbabf7717149123815d235"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#af1ba4e46f279d4d177169446d85bf06c">delete_fluid_midi_router_rule</a> (<a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *rule)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a MIDI router rule.  <a href="#af1ba4e46f279d4d177169446d85bf06c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#acc264709865c1e2dc972528cca55dc6f">fluid_midi_router_rule_set_chan</a> (<a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *rule, int min, int max, float mul, int add)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the channel portion of a rule.  <a href="#acc264709865c1e2dc972528cca55dc6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ac4f572c218943ded7fe43692a265ddb5">fluid_midi_router_rule_set_param1</a> (<a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *rule, int min, int max, float mul, int add)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the first parameter portion of a rule.  <a href="#ac4f572c218943ded7fe43692a265ddb5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a20afb0ffeb59c373534e5d46ed3d4b73">fluid_midi_router_rule_set_param2</a> (<a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *rule, int min, int max, float mul, int add)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the second parameter portion of a rule.  <a href="#a20afb0ffeb59c373534e5d46ed3d4b73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event</a> (void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handle a MIDI event through a MIDI router instance.  <a href="#a9d3a463c348a3b98076e5cc4a7f6d678"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a643f017a5c8878e68c131d29114e5a25">fluid_midi_dump_prerouter</a> (void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MIDI event callback function to display event information to stdout.  <a href="#a643f017a5c8878e68c131d29114e5a25"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a9c1493b7a7f5a5518aa47e23938139db">fluid_midi_dump_postrouter</a> (void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">MIDI event callback function to display event information to stdout.  <a href="#a9c1493b7a7f5a5518aa47e23938139db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <br class="typebreak"/>
<a class="el" href="types_8h.html#ab0f64d7ed81d7361e9600e4a480828df">fluid_midi_driver_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ad0971af69fb51398d468b151cba70bee">new_fluid_midi_driver</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings, <a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a> handler, void *event_handler_data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new MIDI driver instance.  <a href="#ad0971af69fb51398d468b151cba70bee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#afe4c8e3657f654edde69e89ea87784eb">delete_fluid_midi_driver</a> (<a class="el" href="types_8h.html#ab0f64d7ed81d7361e9600e4a480828df">fluid_midi_driver_t</a> *driver)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a MIDI driver instance.  <a href="#afe4c8e3657f654edde69e89ea87784eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a6a8628edc77c83c6865fde4b1c296773">new_fluid_player</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new MIDI player.  <a href="#a6a8628edc77c83c6865fde4b1c296773"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a678a3d103532b86dada3d2cd111fed0a">delete_fluid_player</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a MIDI player instance.  <a href="#a678a3d103532b86dada3d2cd111fed0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a1ac5b59e4ab9d0f48e917dda0a9a4403">fluid_player_add</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player, const char *midifile)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a MIDI file to a player queue.  <a href="#a1ac5b59e4ab9d0f48e917dda0a9a4403"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a5ac629c8667dbf4eba2cf75d72e134e0">fluid_player_play</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Activates play mode for a MIDI player if not already playing.  <a href="#a5ac629c8667dbf4eba2cf75d72e134e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a24f5a512dcef6ee34b963366c0a61b33">fluid_player_stop</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stops a MIDI player.  <a href="#a24f5a512dcef6ee34b963366c0a61b33"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a78a49a72e02c2aafe41687dc3a59f533">fluid_player_join</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a MIDI player to terminate (when done playing).  <a href="#a78a49a72e02c2aafe41687dc3a59f533"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#af8343daaeb32ed1bd5bcc4c0be00c2fc">fluid_player_set_loop</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player, int loop)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enable looping of a MIDI player.  <a href="#af8343daaeb32ed1bd5bcc4c0be00c2fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#a6ad1a9abbd32abcbd0023da61e29e28d">fluid_player_set_midi_tempo</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player, int tempo)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the tempo of a MIDI player.  <a href="#a6ad1a9abbd32abcbd0023da61e29e28d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#aae8bff0cc180425b61b36eabb69784df">fluid_player_set_bpm</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player, int bpm)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the tempo of a MIDI player in beats per minute.  <a href="#aae8bff0cc180425b61b36eabb69784df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="midi_8h.html#ad9b5bd5dcacaa1c967275f537e2add26">fluid_player_get_status</a> (<a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *player)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get MIDI player status.  <a href="#ad9b5bd5dcacaa1c967275f537e2add26"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Functions for MIDI events, drivers and MIDI file playback. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a3a48ed2196aabf2618a7d1ad64257465"></a><!-- doxytag: member="midi.h::handle_midi_event_func_t" ref="a3a48ed2196aabf2618a7d1ad64257465" args=")(void *data, fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* <a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a>)(void *data, <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *event)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generic callback function for MIDI events. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>User defined data pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>The MIDI event </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Should return <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise</dd></dl>
<p>Will be used between</p>
<ul>
<li>MIDI driver and MIDI router</li>
<li>MIDI router and synth to communicate events. In the not-so-far future... </li>
</ul>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962b"></a><!-- doxytag: member="midi.h::fluid_midi_router_rule_type" ref="ab798a0a5b95607556c9ecfbeaaab962b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962b">fluid_midi_router_rule_type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MIDI router rule type. </p>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba44d3968ac6d884210bdace219f17c684"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_NOTE" ref="ab798a0a5b95607556c9ecfbeaaab962ba44d3968ac6d884210bdace219f17c684" args="" -->FLUID_MIDI_ROUTER_RULE_NOTE</em>&nbsp;</td><td>
<p>MIDI note rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba7101b696d6409a75744cced6becc6e6e"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_CC" ref="ab798a0a5b95607556c9ecfbeaaab962ba7101b696d6409a75744cced6becc6e6e" args="" -->FLUID_MIDI_ROUTER_RULE_CC</em>&nbsp;</td><td>
<p>MIDI controller rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962babbe8a5a3656c54f93860007d618758d6"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_PROG_CHANGE" ref="ab798a0a5b95607556c9ecfbeaaab962babbe8a5a3656c54f93860007d618758d6" args="" -->FLUID_MIDI_ROUTER_RULE_PROG_CHANGE</em>&nbsp;</td><td>
<p>MIDI program change rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba087309f49bb501d67d74a9d5a128e621"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_PITCH_BEND" ref="ab798a0a5b95607556c9ecfbeaaab962ba087309f49bb501d67d74a9d5a128e621" args="" -->FLUID_MIDI_ROUTER_RULE_PITCH_BEND</em>&nbsp;</td><td>
<p>MIDI pitch bend rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba6a5cef115e539ec2d4bdc0f0edc7e78a"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE" ref="ab798a0a5b95607556c9ecfbeaaab962ba6a5cef115e539ec2d4bdc0f0edc7e78a" args="" -->FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE</em>&nbsp;</td><td>
<p>MIDI channel pressure rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba087ac6403062ebe1714658d13fb503f8"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE" ref="ab798a0a5b95607556c9ecfbeaaab962ba087ac6403062ebe1714658d13fb503f8" args="" -->FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE</em>&nbsp;</td><td>
<p>MIDI key pressure rule. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ab798a0a5b95607556c9ecfbeaaab962ba6046a4845f7d72a92afed8ea13ab2a7a"></a><!-- doxytag: member="FLUID_MIDI_ROUTER_RULE_COUNT" ref="ab798a0a5b95607556c9ecfbeaaab962ba6046a4845f7d72a92afed8ea13ab2a7a" args="" -->FLUID_MIDI_ROUTER_RULE_COUNT</em>&nbsp;</td><td>
<p>Total count of rule types. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a5ec93766f61465dedbbac9bdb76ced83"></a><!-- doxytag: member="midi.h::fluid_player_status" ref="a5ec93766f61465dedbbac9bdb76ced83" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83">fluid_player_status</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MIDI player status enum. </p>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a5ec93766f61465dedbbac9bdb76ced83a7c1ac551f1a28ba42ca3d7abac0120b6"></a><!-- doxytag: member="FLUID_PLAYER_READY" ref="a5ec93766f61465dedbbac9bdb76ced83a7c1ac551f1a28ba42ca3d7abac0120b6" args="" -->FLUID_PLAYER_READY</em>&nbsp;</td><td>
<p>Player is ready. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a5ec93766f61465dedbbac9bdb76ced83a98ece3a92210189eaad462edc8545bc5"></a><!-- doxytag: member="FLUID_PLAYER_PLAYING" ref="a5ec93766f61465dedbbac9bdb76ced83a98ece3a92210189eaad462edc8545bc5" args="" -->FLUID_PLAYER_PLAYING</em>&nbsp;</td><td>
<p>Player is currently playing. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a5ec93766f61465dedbbac9bdb76ced83a3495ae2441e9ec5f25f085378e9ac7be"></a><!-- doxytag: member="FLUID_PLAYER_DONE" ref="a5ec93766f61465dedbbac9bdb76ced83a3495ae2441e9ec5f25f085378e9ac7be" args="" -->FLUID_PLAYER_DONE</em>&nbsp;</td><td>
<p>Player is finished playing. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aa6415d0c9caa2b317ba4beff63171ceb"></a><!-- doxytag: member="midi.h::new_fluid_midi_event" ref="aa6415d0c9caa2b317ba4beff63171ceb" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a>* new_fluid_midi_event </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a MIDI event structure. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>New MIDI event structure or NULL when out of memory. </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, and <a class="el" href="midi_8h.html#aa6415d0c9caa2b317ba4beff63171ceb">new_fluid_midi_event()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aa6415d0c9caa2b317ba4beff63171ceb">new_fluid_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a2f7ad06b26b452f36b8dc94cd9376899"></a><!-- doxytag: member="midi.h::delete_fluid_midi_event" ref="a2f7ad06b26b452f36b8dc94cd9376899" args="(fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int delete_fluid_midi_event </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a2f7ad06b26b452f36b8dc94cd9376899">delete_fluid_midi_event()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a2f7ad06b26b452f36b8dc94cd9376899">delete_fluid_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="ab1286f2dec54372e866d6654cc9360aa"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_type" ref="ab1286f2dec54372e866d6654cc9360aa" args="(fluid_midi_event_t *evt, int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the event type field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Event type field (MIDI status byte without channel) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#ab1286f2dec54372e866d6654cc9360aa">fluid_midi_event_set_type()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ab1286f2dec54372e866d6654cc9360aa">fluid_midi_event_set_type()</a>, and <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a63c2b0009873e8a1761f3a3365b12244"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_type" ref="a63c2b0009873e8a1761f3a3365b12244" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the event type field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Event type field (MIDI status byte without channel) </dd></dl>

<p>References <a class="el" href="midi_8h.html#a63c2b0009873e8a1761f3a3365b12244">fluid_midi_event_get_type()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a63c2b0009873e8a1761f3a3365b12244">fluid_midi_event_get_type()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="afcb5b13a619a8248d28c4f1dda5545c7"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_channel" ref="afcb5b13a619a8248d28c4f1dda5545c7" args="(fluid_midi_event_t *evt, int chan)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_channel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>chan</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the channel field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>MIDI channel field </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#afcb5b13a619a8248d28c4f1dda5545c7">fluid_midi_event_set_channel()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#afcb5b13a619a8248d28c4f1dda5545c7">fluid_midi_event_set_channel()</a>, and <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="ad6a5072d25f83834d41205d0c0806b9d"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_channel" ref="ad6a5072d25f83834d41205d0c0806b9d" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_channel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the channel field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Channel field </dd></dl>

<p>References <a class="el" href="midi_8h.html#ad6a5072d25f83834d41205d0c0806b9d">fluid_midi_event_get_channel()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ad6a5072d25f83834d41205d0c0806b9d">fluid_midi_event_get_channel()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ed781f6bc77a94c80d5f33ba63f4b05"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_key" ref="a2ed781f6bc77a94c80d5f33ba63f4b05" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the key field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MIDI note number (0-127) </dd></dl>

<p>References <a class="el" href="midi_8h.html#a2ed781f6bc77a94c80d5f33ba63f4b05">fluid_midi_event_get_key()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a2ed781f6bc77a94c80d5f33ba63f4b05">fluid_midi_event_get_key()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a5f0468e784e597a8c00300ba2f4feb94"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_key" ref="a5f0468e784e597a8c00300ba2f4feb94" args="(fluid_midi_event_t *evt, int key)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_key </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the key field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>MIDI note number (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a5f0468e784e597a8c00300ba2f4feb94">fluid_midi_event_set_key()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a5f0468e784e597a8c00300ba2f4feb94">fluid_midi_event_set_key()</a>.</p>

</div>
</div>
<a class="anchor" id="a6462c5c51d6cfa9c328417d2f1f4b6d5"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_velocity" ref="a6462c5c51d6cfa9c328417d2f1f4b6d5" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_velocity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the velocity field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MIDI velocity number (0-127) </dd></dl>

<p>References <a class="el" href="midi_8h.html#a6462c5c51d6cfa9c328417d2f1f4b6d5">fluid_midi_event_get_velocity()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a6462c5c51d6cfa9c328417d2f1f4b6d5">fluid_midi_event_get_velocity()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a9a5b449df35e4741b8148188b82432ee"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_velocity" ref="a9a5b449df35e4741b8148188b82432ee" args="(fluid_midi_event_t *evt, int vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_velocity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the velocity field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>MIDI velocity value </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a9a5b449df35e4741b8148188b82432ee">fluid_midi_event_set_velocity()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a9a5b449df35e4741b8148188b82432ee">fluid_midi_event_set_velocity()</a>.</p>

</div>
</div>
<a class="anchor" id="a4f50a77de21c9bfa7207617ef3ff3440"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_control" ref="a4f50a77de21c9bfa7207617ef3ff3440" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_control </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the control number of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MIDI control number </dd></dl>

<p>References <a class="el" href="midi_8h.html#a4f50a77de21c9bfa7207617ef3ff3440">fluid_midi_event_get_control()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a4f50a77de21c9bfa7207617ef3ff3440">fluid_midi_event_get_control()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="ad469d37df9528021a23ae791e83fc883"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_control" ref="ad469d37df9528021a23ae791e83fc883" args="(fluid_midi_event_t *evt, int ctrl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_control </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the control field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>MIDI control number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#ad469d37df9528021a23ae791e83fc883">fluid_midi_event_set_control()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ad469d37df9528021a23ae791e83fc883">fluid_midi_event_set_control()</a>.</p>

</div>
</div>
<a class="anchor" id="ac0dfb3cc8be8571ecf2d2dd05b92a9b2"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_value" ref="ac0dfb3cc8be8571ecf2d2dd05b92a9b2" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the value field from a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Value field </dd></dl>

<p>References <a class="el" href="midi_8h.html#ac0dfb3cc8be8571ecf2d2dd05b92a9b2">fluid_midi_event_get_value()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ac0dfb3cc8be8571ecf2d2dd05b92a9b2">fluid_midi_event_get_value()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a9e5ba6063c37232da0a1ca54d014d2c2"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_value" ref="a9e5ba6063c37232da0a1ca54d014d2c2" args="(fluid_midi_event_t *evt, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_value </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the value field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Value to assign </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a9e5ba6063c37232da0a1ca54d014d2c2">fluid_midi_event_set_value()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a9e5ba6063c37232da0a1ca54d014d2c2">fluid_midi_event_set_value()</a>.</p>

</div>
</div>
<a class="anchor" id="a49901971bb418efc14b2de5954b4b200"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_program" ref="a49901971bb418efc14b2de5954b4b200" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_program </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the program field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MIDI program number (0-127) </dd></dl>

<p>References <a class="el" href="midi_8h.html#a49901971bb418efc14b2de5954b4b200">fluid_midi_event_get_program()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a49901971bb418efc14b2de5954b4b200">fluid_midi_event_get_program()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="aebfaddc5df291b918611e0535488cc3e"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_program" ref="aebfaddc5df291b918611e0535488cc3e" args="(fluid_midi_event_t *evt, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_program </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the program field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>MIDI program number (0-127) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#aebfaddc5df291b918611e0535488cc3e">fluid_midi_event_set_program()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aebfaddc5df291b918611e0535488cc3e">fluid_midi_event_set_program()</a>.</p>

</div>
</div>
<a class="anchor" id="ad1f10dd6f386f2a189b7389fd1fac169"></a><!-- doxytag: member="midi.h::fluid_midi_event_get_pitch" ref="ad1f10dd6f386f2a189b7389fd1fac169" args="(fluid_midi_event_t *evt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_get_pitch </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the pitch field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pitch value (14 bit value, 0-16383, 8192 is center) </dd></dl>

<p>References <a class="el" href="midi_8h.html#ad1f10dd6f386f2a189b7389fd1fac169">fluid_midi_event_get_pitch()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ad1f10dd6f386f2a189b7389fd1fac169">fluid_midi_event_get_pitch()</a>, <a class="el" href="seqbind_8h.html#aecf29486fa3b80514be4a6a535b02045">fluid_sequencer_add_midi_event_to_buffer()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a1cf0dceda327e1f5203bfaf5abb7a4a5"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_pitch" ref="a1cf0dceda327e1f5203bfaf5abb7a4a5" args="(fluid_midi_event_t *evt, int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_pitch </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>val</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the pitch field of a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>Pitch value (14 bit value, 0-16383, 8192 is center) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns FLUID_OK </dd></dl>

<p>References <a class="el" href="midi_8h.html#a1cf0dceda327e1f5203bfaf5abb7a4a5">fluid_midi_event_set_pitch()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a1cf0dceda327e1f5203bfaf5abb7a4a5">fluid_midi_event_set_pitch()</a>.</p>

</div>
</div>
<a class="anchor" id="aca9629155bc66432248972037ef6d317"></a><!-- doxytag: member="midi.h::fluid_midi_event_set_sysex" ref="aca9629155bc66432248972037ef6d317" args="(fluid_midi_event_t *evt, void *data, int size, int dynamic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_event_set_sysex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>evt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>dynamic</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign sysex data to a MIDI event structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>evt</em>&nbsp;</td><td>MIDI event structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Pointer to SYSEX data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>Size of SYSEX data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dynamic</em>&nbsp;</td><td>TRUE if the SYSEX data has been dynamically allocated and should be freed when the event is freed (only applies if event gets destroyed with <a class="el" href="midi_8h.html#a2f7ad06b26b452f36b8dc94cd9376899" title="Delete MIDI event structure.">delete_fluid_midi_event()</a>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a></dd></dl>
<p>NOTE: Unlike the other event assignment functions, this one sets evt-&gt;type. </p>

<p>References <a class="el" href="midi_8h.html#aca9629155bc66432248972037ef6d317">fluid_midi_event_set_sysex()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aca9629155bc66432248972037ef6d317">fluid_midi_event_set_sysex()</a>.</p>

</div>
</div>
<a class="anchor" id="ae28ddf804fa5ba108a65c24fcf6e9813"></a><!-- doxytag: member="midi.h::new_fluid_midi_router" ref="ae28ddf804fa5ba108a65c24fcf6e9813" args="(fluid_settings_t *settings, handle_midi_event_func_t handler, void *event_handler_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a>* new_fluid_midi_router </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *&nbsp;</td>
          <td class="paramname"> <em>settings</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a>&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>event_handler_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new midi router. </p>
<p>The default rules will pass all events unmodified. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>settings</em>&nbsp;</td><td>Settings used to configure MIDI router </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>MIDI event callback. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event_handler_data</em>&nbsp;</td><td>Caller defined data pointer which gets passed to 'handler' </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>New MIDI router instance or NULL on error</dd></dl>
<p>The MIDI handler callback should process the possibly filtered/modified MIDI events from the MIDI router and forward them on to a synthesizer for example. The function <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd" title="Handle MIDI event from MIDI router, used as a callback function.">fluid_synth_handle_midi_event()</a> can be used for <em>handle</em> and a <a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4" title="Synthesizer instance.">fluid_synth_t</a> passed as the <em>event_handler_data</em> parameter for this purpose. </p>

<p>References <a class="el" href="midi_8h.html#a48f3cd2fcebc5f80c8a9ce43973b9fdc">delete_fluid_midi_router()</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="settings_8h.html#a4a570095ef3de25e77f4dd9c574bc56c">fluid_settings_getint()</a>, <a class="el" href="midi_8h.html#ae28ddf804fa5ba108a65c24fcf6e9813">new_fluid_midi_router()</a>, and <a class="el" href="midi_8h.html#a128bc8b126cbabf7717149123815d235">new_fluid_midi_router_rule()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ae28ddf804fa5ba108a65c24fcf6e9813">new_fluid_midi_router()</a>.</p>

</div>
</div>
<a class="anchor" id="a48f3cd2fcebc5f80c8a9ce43973b9fdc"></a><!-- doxytag: member="midi.h::delete_fluid_midi_router" ref="a48f3cd2fcebc5f80c8a9ce43973b9fdc" args="(fluid_midi_router_t *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int delete_fluid_midi_router </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td>
          <td class="paramname"> <em>router</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a MIDI router instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>router</em>&nbsp;</td><td>MIDI router to delete </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise (only if NULL <em>router</em> passed really) </dd></dl>

<p>References <a class="el" href="midi_8h.html#a48f3cd2fcebc5f80c8a9ce43973b9fdc">delete_fluid_midi_router()</a>, and <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a48f3cd2fcebc5f80c8a9ce43973b9fdc">delete_fluid_midi_router()</a>, and <a class="el" href="midi_8h.html#ae28ddf804fa5ba108a65c24fcf6e9813">new_fluid_midi_router()</a>.</p>

</div>
</div>
<a class="anchor" id="a32ecd2bdcc9bce39d0e0c68e5c1b80cb"></a><!-- doxytag: member="midi.h::fluid_midi_router_set_default_rules" ref="a32ecd2bdcc9bce39d0e0c68e5c1b80cb" args="(fluid_midi_router_t *router)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_router_set_default_rules </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td>
          <td class="paramname"> <em>router</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a MIDI router to use default "unity" rules. </p>
<p>Such a router will pass all events unmodified. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>router</em>&nbsp;</td><td>Router to set to default rules. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="midi_8h.html#af1ba4e46f279d4d177169446d85bf06c">delete_fluid_midi_router_rule()</a>, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="midi_8h.html#a32ecd2bdcc9bce39d0e0c68e5c1b80cb">fluid_midi_router_set_default_rules()</a>, and <a class="el" href="midi_8h.html#a128bc8b126cbabf7717149123815d235">new_fluid_midi_router_rule()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a32ecd2bdcc9bce39d0e0c68e5c1b80cb">fluid_midi_router_set_default_rules()</a>.</p>

</div>
</div>
<a class="anchor" id="a57aed5e84828c202452e13f265dd72f7"></a><!-- doxytag: member="midi.h::fluid_midi_router_clear_rules" ref="a57aed5e84828c202452e13f265dd72f7" args="(fluid_midi_router_t *router)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_router_clear_rules </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td>
          <td class="paramname"> <em>router</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear all rules in a MIDI router. </p>
<p>Such a router will drop all events until rules are added. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>router</em>&nbsp;</td><td>Router to clear all rules from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, and <a class="el" href="midi_8h.html#a57aed5e84828c202452e13f265dd72f7">fluid_midi_router_clear_rules()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a57aed5e84828c202452e13f265dd72f7">fluid_midi_router_clear_rules()</a>.</p>

</div>
</div>
<a class="anchor" id="aa1894a103cde4f1efe80c7c9d5096ae2"></a><!-- doxytag: member="midi.h::fluid_midi_router_add_rule" ref="aa1894a103cde4f1efe80c7c9d5096ae2" args="(fluid_midi_router_t *router, fluid_midi_router_rule_t *rule, int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_router_add_rule </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad">fluid_midi_router_t</a> *&nbsp;</td>
          <td class="paramname"> <em>router</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a rule to a MIDI router. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>router</em>&nbsp;</td><td>MIDI router </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rule</em>&nbsp;</td><td>Rule to add (used directly and should not be accessed again following a successful call to this function). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>The type of rule to add (<a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962b" title="MIDI router rule type.">fluid_midi_router_rule_type</a>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise (invalid rule for example) </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="midi_8h.html#aa1894a103cde4f1efe80c7c9d5096ae2">fluid_midi_router_add_rule()</a>, and <a class="el" href="midi_8h.html#ab798a0a5b95607556c9ecfbeaaab962ba6046a4845f7d72a92afed8ea13ab2a7a">FLUID_MIDI_ROUTER_RULE_COUNT</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aa1894a103cde4f1efe80c7c9d5096ae2">fluid_midi_router_add_rule()</a>.</p>

</div>
</div>
<a class="anchor" id="a128bc8b126cbabf7717149123815d235"></a><!-- doxytag: member="midi.h::new_fluid_midi_router_rule" ref="a128bc8b126cbabf7717149123815d235" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a>* new_fluid_midi_router_rule </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new MIDI router rule. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Newly allocated router rule or NULL if out of memory. </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>The new rule is a "unity" rule which will accept any values and wont modify them. </p>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, and <a class="el" href="midi_8h.html#a128bc8b126cbabf7717149123815d235">new_fluid_midi_router_rule()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a32ecd2bdcc9bce39d0e0c68e5c1b80cb">fluid_midi_router_set_default_rules()</a>, <a class="el" href="midi_8h.html#ae28ddf804fa5ba108a65c24fcf6e9813">new_fluid_midi_router()</a>, and <a class="el" href="midi_8h.html#a128bc8b126cbabf7717149123815d235">new_fluid_midi_router_rule()</a>.</p>

</div>
</div>
<a class="anchor" id="af1ba4e46f279d4d177169446d85bf06c"></a><!-- doxytag: member="midi.h::delete_fluid_midi_router_rule" ref="af1ba4e46f279d4d177169446d85bf06c" args="(fluid_midi_router_rule_t *rule)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void delete_fluid_midi_router_rule </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>rule</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Free a MIDI router rule. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rule</em>&nbsp;</td><td>Router rule to free </td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>Note that rules which have been added to a router are managed by the router, so this function should seldom be needed. </p>

<p>References <a class="el" href="midi_8h.html#af1ba4e46f279d4d177169446d85bf06c">delete_fluid_midi_router_rule()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#af1ba4e46f279d4d177169446d85bf06c">delete_fluid_midi_router_rule()</a>, and <a class="el" href="midi_8h.html#a32ecd2bdcc9bce39d0e0c68e5c1b80cb">fluid_midi_router_set_default_rules()</a>.</p>

</div>
</div>
<a class="anchor" id="acc264709865c1e2dc972528cca55dc6f"></a><!-- doxytag: member="midi.h::fluid_midi_router_rule_set_chan" ref="acc264709865c1e2dc972528cca55dc6f" args="(fluid_midi_router_rule_t *rule, int min, int max, float mul, int add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_midi_router_rule_set_chan </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>mul</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>add</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the channel portion of a rule. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rule</em>&nbsp;</td><td>MIDI router rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>Minimum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>Maximum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mul</em>&nbsp;</td><td>Value which is multiplied by matching event's channel value (1.0 to not modify) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>add</em>&nbsp;</td><td>Value which is added to matching event's channel value (0 to not modify) </td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>The <em>min</em> and <em>max</em> parameters define a channel range window to match incoming events to. If <em>min</em> is less than or equal to <em>max</em> then an event is matched if its channel is within the defined range (including <em>min</em> and <em>max</em>). If <em>min</em> is greater than <em>max</em> then rule is inverted and matches everything except in *between* the defined range (so <em>min</em> and <em>max</em> would match).</p>
<p>The <em>mul</em> and <em>add</em> values are used to modify event channel values prior to sending the event, if the rule matches. </p>

<p>References <a class="el" href="midi_8h.html#acc264709865c1e2dc972528cca55dc6f">fluid_midi_router_rule_set_chan()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#acc264709865c1e2dc972528cca55dc6f">fluid_midi_router_rule_set_chan()</a>.</p>

</div>
</div>
<a class="anchor" id="ac4f572c218943ded7fe43692a265ddb5"></a><!-- doxytag: member="midi.h::fluid_midi_router_rule_set_param1" ref="ac4f572c218943ded7fe43692a265ddb5" args="(fluid_midi_router_rule_t *rule, int min, int max, float mul, int add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_midi_router_rule_set_param1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>mul</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>add</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the first parameter portion of a rule. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rule</em>&nbsp;</td><td>MIDI router rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>Minimum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>Maximum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mul</em>&nbsp;</td><td>Value which is multiplied by matching event's 1st parameter value (1.0 to not modify) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>add</em>&nbsp;</td><td>Value which is added to matching event's 1st parameter value (0 to not modify) </td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>The 1st parameter of an event depends on the type of event. For note events its the MIDI note #, for CC events its the MIDI control number, for program change events its the MIDI program #, for pitch bend events its the bend value, for channel pressure its the channel pressure value and for key pressure its the MIDI note number.</p>
<p>Pitch bend values have a maximum value of 16383 (8192 is pitch bend center) and all other events have a max of 127. All events have a minimum value of 0.</p>
<p>The <em>min</em> and <em>max</em> parameters define a parameter range window to match incoming events to. If <em>min</em> is less than or equal to <em>max</em> then an event is matched if its 1st parameter is within the defined range (including <em>min</em> and <em>max</em>). If <em>min</em> is greater than <em>max</em> then rule is inverted and matches everything except in *between* the defined range (so <em>min</em> and <em>max</em> would match).</p>
<p>The <em>mul</em> and <em>add</em> values are used to modify event 1st parameter values prior to sending the event, if the rule matches. </p>

<p>References <a class="el" href="midi_8h.html#ac4f572c218943ded7fe43692a265ddb5">fluid_midi_router_rule_set_param1()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ac4f572c218943ded7fe43692a265ddb5">fluid_midi_router_rule_set_param1()</a>.</p>

</div>
</div>
<a class="anchor" id="a20afb0ffeb59c373534e5d46ed3d4b73"></a><!-- doxytag: member="midi.h::fluid_midi_router_rule_set_param2" ref="a20afb0ffeb59c373534e5d46ed3d4b73" args="(fluid_midi_router_rule_t *rule, int min, int max, float mul, int add)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void fluid_midi_router_rule_set_param2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a3154253ddb8f9b8f8f737c91f5973278">fluid_midi_router_rule_t</a> *&nbsp;</td>
          <td class="paramname"> <em>rule</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>mul</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>add</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the second parameter portion of a rule. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>rule</em>&nbsp;</td><td>MIDI router rule </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>min</em>&nbsp;</td><td>Minimum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>Maximum value for rule match </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mul</em>&nbsp;</td><td>Value which is multiplied by matching event's 2nd parameter value (1.0 to not modify) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>add</em>&nbsp;</td><td>Value which is added to matching event's 2nd parameter value (0 to not modify) </td></tr>
  </table>
  </dd>
</dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>The 2nd parameter of an event depends on the type of event. For note events its the MIDI velocity, for CC events its the control value and for key pressure events its the key pressure value. All other types lack a 2nd parameter.</p>
<p>All applicable 2nd parameters have the range 0-127.</p>
<p>The <em>min</em> and <em>max</em> parameters define a parameter range window to match incoming events to. If <em>min</em> is less than or equal to <em>max</em> then an event is matched if its 2nd parameter is within the defined range (including <em>min</em> and <em>max</em>). If <em>min</em> is greater than <em>max</em> then rule is inverted and matches everything except in *between* the defined range (so <em>min</em> and <em>max</em> would match).</p>
<p>The <em>mul</em> and <em>add</em> values are used to modify event 2nd parameter values prior to sending the event, if the rule matches. </p>

<p>References <a class="el" href="midi_8h.html#a20afb0ffeb59c373534e5d46ed3d4b73">fluid_midi_router_rule_set_param2()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a20afb0ffeb59c373534e5d46ed3d4b73">fluid_midi_router_rule_set_param2()</a>.</p>

</div>
</div>
<a class="anchor" id="a9d3a463c348a3b98076e5cc4a7f6d678"></a><!-- doxytag: member="midi.h::fluid_midi_router_handle_midi_event" ref="a9d3a463c348a3b98076e5cc4a7f6d678" args="(void *data, fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_router_handle_midi_event </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Handle a MIDI event through a MIDI router instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>MIDI router instance <a class="el" href="types_8h.html#aa57b4746220e24506a169f109875e4ad" title="MIDI router instance.">fluid_midi_router_t</a>, its a void * so that this function can be used as a callback for other subsystems (<a class="el" href="midi_8h.html#ad0971af69fb51398d468b151cba70bee" title="Create a new MIDI driver instance.">new_fluid_midi_driver()</a> for example). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>MIDI event to handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise</dd></dl>
<p>Purpose: The midi router is called for each event, that is received via the 'physical' midi input. Each event can trigger an arbitrary number of generated events (one for each rule that matches).</p>
<p>In default mode, a noteon event is just forwarded to the synth's 'noteon' function, a 'CC' event to the synth's 'CC' function and so on.</p>
<p>The router can be used to:</p>
<ul>
<li>filter messages (for example: Pass sustain pedal CCs only to selected channels)</li>
<li>split the keyboard (noteon with notenr &lt; x: to ch 1, &gt;x to ch 2)</li>
<li>layer sounds (for each noteon received on ch 1, create a noteon on ch1, ch2, ch3,...)</li>
<li>velocity scaling (for each noteon event, scale the velocity by 1.27 to give DX7 users a chance)</li>
<li>velocity switching ("v &lt;=100: Angel Choir; V &gt; 100: Hell's Bells")</li>
<li>get rid of aftertouch</li>
<li>... </li>
</ul>

<p>References <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61">FLUID_FAILED</a>, <a class="el" href="midi_8h.html#afcb5b13a619a8248d28c4f1dda5545c7">fluid_midi_event_set_channel()</a>, <a class="el" href="midi_8h.html#ab1286f2dec54372e866d6654cc9360aa">fluid_midi_event_set_type()</a>, and <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a643f017a5c8878e68c131d29114e5a25">fluid_midi_dump_prerouter()</a>, and <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event()</a>.</p>

</div>
</div>
<a class="anchor" id="a643f017a5c8878e68c131d29114e5a25"></a><!-- doxytag: member="midi.h::fluid_midi_dump_prerouter" ref="a643f017a5c8878e68c131d29114e5a25" args="(void *data, fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_dump_prerouter </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MIDI event callback function to display event information to stdout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>MIDI router instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>MIDI event data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise</dd></dl>
<p>An implementation of the <a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465" title="Generic callback function for MIDI events.">handle_midi_event_func_t</a> function type, used for displaying MIDI event information between the MIDI driver and router to stdout. Useful for adding into a MIDI router chain for debugging MIDI events. </p>

<p>References <a class="el" href="midi_8h.html#a643f017a5c8878e68c131d29114e5a25">fluid_midi_dump_prerouter()</a>, and <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678">fluid_midi_router_handle_midi_event()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a643f017a5c8878e68c131d29114e5a25">fluid_midi_dump_prerouter()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c1493b7a7f5a5518aa47e23938139db"></a><!-- doxytag: member="midi.h::fluid_midi_dump_postrouter" ref="a9c1493b7a7f5a5518aa47e23938139db" args="(void *data, fluid_midi_event_t *event)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_midi_dump_postrouter </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#a61c72b76e3ee344637994c3071f74d94">fluid_midi_event_t</a> *&nbsp;</td>
          <td class="paramname"> <em>event</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>MIDI event callback function to display event information to stdout. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>MIDI router instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>MIDI event data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise</dd></dl>
<p>An implementation of the <a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465" title="Generic callback function for MIDI events.">handle_midi_event_func_t</a> function type, used for displaying MIDI event information between the MIDI driver and router to stdout. Useful for adding into a MIDI router chain for debugging MIDI events. </p>

<p>References <a class="el" href="midi_8h.html#a9c1493b7a7f5a5518aa47e23938139db">fluid_midi_dump_postrouter()</a>, and <a class="el" href="synth_8h.html#a439e1175fa34123b3d0c96a0366d42dd">fluid_synth_handle_midi_event()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a9c1493b7a7f5a5518aa47e23938139db">fluid_midi_dump_postrouter()</a>.</p>

</div>
</div>
<a class="anchor" id="ad0971af69fb51398d468b151cba70bee"></a><!-- doxytag: member="midi.h::new_fluid_midi_driver" ref="ad0971af69fb51398d468b151cba70bee" args="(fluid_settings_t *settings, handle_midi_event_func_t handler, void *event_handler_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#ab0f64d7ed81d7361e9600e4a480828df">fluid_midi_driver_t</a>* new_fluid_midi_driver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *&nbsp;</td>
          <td class="paramname"> <em>settings</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="midi_8h.html#a3a48ed2196aabf2618a7d1ad64257465">handle_midi_event_func_t</a>&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>event_handler_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new MIDI driver instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>settings</em>&nbsp;</td><td>Settings used to configure new MIDI driver. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>MIDI handler callback (for example: <a class="el" href="midi_8h.html#a9d3a463c348a3b98076e5cc4a7f6d678" title="Handle a MIDI event through a MIDI router instance.">fluid_midi_router_handle_midi_event()</a> for MIDI router) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event_handler_data</em>&nbsp;</td><td>Caller defined data to pass to 'handler' </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>New MIDI driver instance or NULL on error </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea5542b67c606598020b832c31729175fc">FLUID_DBG</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="settings_8h.html#a7c78d673d39c3463339612f7a508cda4">fluid_settings_option_concat()</a>, <a class="el" href="settings_8h.html#a2646edb018c961162845f1711503b597">fluid_settings_str_equal()</a>, and <a class="el" href="midi_8h.html#ad0971af69fb51398d468b151cba70bee">new_fluid_midi_driver()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ad0971af69fb51398d468b151cba70bee">new_fluid_midi_driver()</a>.</p>

</div>
</div>
<a class="anchor" id="afe4c8e3657f654edde69e89ea87784eb"></a><!-- doxytag: member="midi.h::delete_fluid_midi_driver" ref="afe4c8e3657f654edde69e89ea87784eb" args="(fluid_midi_driver_t *driver)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API void delete_fluid_midi_driver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ab0f64d7ed81d7361e9600e4a480828df">fluid_midi_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a MIDI driver instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>MIDI driver to delete </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="midi_8h.html#afe4c8e3657f654edde69e89ea87784eb">delete_fluid_midi_driver()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#afe4c8e3657f654edde69e89ea87784eb">delete_fluid_midi_driver()</a>.</p>

</div>
</div>
<a class="anchor" id="a6a8628edc77c83c6865fde4b1c296773"></a><!-- doxytag: member="midi.h::new_fluid_player" ref="a6a8628edc77c83c6865fde4b1c296773" args="(fluid_synth_t *synth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a>* new_fluid_player </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *&nbsp;</td>
          <td class="paramname"> <em>synth</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new MIDI player. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>synth</em>&nbsp;</td><td>Fluid synthesizer instance to create player for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>New MIDI player instance or NULL on error (out of memory) </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="settings_8h.html#a4a570095ef3de25e77f4dd9c574bc56c">fluid_settings_getint()</a>, <a class="el" href="settings_8h.html#a2646edb018c961162845f1711503b597">fluid_settings_str_equal()</a>, and <a class="el" href="midi_8h.html#a6a8628edc77c83c6865fde4b1c296773">new_fluid_player()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a6a8628edc77c83c6865fde4b1c296773">new_fluid_player()</a>.</p>

</div>
</div>
<a class="anchor" id="a678a3d103532b86dada3d2cd111fed0a"></a><!-- doxytag: member="midi.h::delete_fluid_player" ref="a678a3d103532b86dada3d2cd111fed0a" args="(fluid_player_t *player)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int delete_fluid_player </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a MIDI player instance. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a678a3d103532b86dada3d2cd111fed0a">delete_fluid_player()</a>, and <a class="el" href="midi_8h.html#a24f5a512dcef6ee34b963366c0a61b33">fluid_player_stop()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a678a3d103532b86dada3d2cd111fed0a">delete_fluid_player()</a>.</p>

</div>
</div>
<a class="anchor" id="a1ac5b59e4ab9d0f48e917dda0a9a4403"></a><!-- doxytag: member="midi.h::fluid_player_add" ref="a1ac5b59e4ab9d0f48e917dda0a9a4403" args="(fluid_player_t *player, const char *midifile)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>midifile</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a MIDI file to a player queue. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>midifile</em>&nbsp;</td><td>File name of the MIDI file to add </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a1ac5b59e4ab9d0f48e917dda0a9a4403">fluid_player_add()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a1ac5b59e4ab9d0f48e917dda0a9a4403">fluid_player_add()</a>.</p>

</div>
</div>
<a class="anchor" id="a5ac629c8667dbf4eba2cf75d72e134e0"></a><!-- doxytag: member="midi.h::fluid_player_play" ref="a5ac629c8667dbf4eba2cf75d72e134e0" args="(fluid_player_t *player)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_play </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Activates play mode for a MIDI player if not already playing. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>

<p>References <a class="el" href="midi_8h.html#a5ac629c8667dbf4eba2cf75d72e134e0">fluid_player_play()</a>, and <a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83a98ece3a92210189eaad462edc8545bc5">FLUID_PLAYER_PLAYING</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a5ac629c8667dbf4eba2cf75d72e134e0">fluid_player_play()</a>.</p>

</div>
</div>
<a class="anchor" id="a24f5a512dcef6ee34b963366c0a61b33"></a><!-- doxytag: member="midi.h::fluid_player_stop" ref="a24f5a512dcef6ee34b963366c0a61b33" args="(fluid_player_t *player)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_stop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stops a MIDI player. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#a24f5a512dcef6ee34b963366c0a61b33">fluid_player_stop()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a678a3d103532b86dada3d2cd111fed0a">delete_fluid_player()</a>, and <a class="el" href="midi_8h.html#a24f5a512dcef6ee34b963366c0a61b33">fluid_player_stop()</a>.</p>

</div>
</div>
<a class="anchor" id="a78a49a72e02c2aafe41687dc3a59f533"></a><!-- doxytag: member="midi.h::fluid_player_join" ref="a78a49a72e02c2aafe41687dc3a59f533" args="(fluid_player_t *player)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_join </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wait for a MIDI player to terminate (when done playing). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl>

<p>References <a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83a3495ae2441e9ec5f25f085378e9ac7be">FLUID_PLAYER_DONE</a>, and <a class="el" href="midi_8h.html#a78a49a72e02c2aafe41687dc3a59f533">fluid_player_join()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#a78a49a72e02c2aafe41687dc3a59f533">fluid_player_join()</a>.</p>

</div>
</div>
<a class="anchor" id="af8343daaeb32ed1bd5bcc4c0be00c2fc"></a><!-- doxytag: member="midi.h::fluid_player_set_loop" ref="af8343daaeb32ed1bd5bcc4c0be00c2fc" args="(fluid_player_t *player, int loop)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_set_loop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>loop</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enable looping of a MIDI player. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>loop</em>&nbsp;</td><td>Times left to loop the playlist. -1 means loop infinitely. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0</dd></dl>
<p>For example, if you want to loop the playlist twice, set loop to 2 and call this function before you start the player. </p>

<p>References <a class="el" href="midi_8h.html#af8343daaeb32ed1bd5bcc4c0be00c2fc">fluid_player_set_loop()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#af8343daaeb32ed1bd5bcc4c0be00c2fc">fluid_player_set_loop()</a>.</p>

</div>
</div>
<a class="anchor" id="a6ad1a9abbd32abcbd0023da61e29e28d"></a><!-- doxytag: member="midi.h::fluid_player_set_midi_tempo" ref="a6ad1a9abbd32abcbd0023da61e29e28d" args="(fluid_player_t *player, int tempo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_set_midi_tempo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>tempo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the tempo of a MIDI player. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tempo</em>&nbsp;</td><td>Tempo to set playback speed to (in microseconds per quarter note, as per MIDI file spec) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea5542b67c606598020b832c31729175fc">FLUID_DBG</a>, and <a class="el" href="midi_8h.html#a6ad1a9abbd32abcbd0023da61e29e28d">fluid_player_set_midi_tempo()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aae8bff0cc180425b61b36eabb69784df">fluid_player_set_bpm()</a>, and <a class="el" href="midi_8h.html#a6ad1a9abbd32abcbd0023da61e29e28d">fluid_player_set_midi_tempo()</a>.</p>

</div>
</div>
<a class="anchor" id="aae8bff0cc180425b61b36eabb69784df"></a><!-- doxytag: member="midi.h::fluid_player_set_bpm" ref="aae8bff0cc180425b61b36eabb69784df" args="(fluid_player_t *player, int bpm)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_set_bpm </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bpm</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the tempo of a MIDI player in beats per minute. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bpm</em>&nbsp;</td><td>Tempo in beats per minute </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Always returns <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> </dd></dl>

<p>References <a class="el" href="midi_8h.html#aae8bff0cc180425b61b36eabb69784df">fluid_player_set_bpm()</a>, and <a class="el" href="midi_8h.html#a6ad1a9abbd32abcbd0023da61e29e28d">fluid_player_set_midi_tempo()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#aae8bff0cc180425b61b36eabb69784df">fluid_player_set_bpm()</a>.</p>

</div>
</div>
<a class="anchor" id="ad9b5bd5dcacaa1c967275f537e2add26"></a><!-- doxytag: member="midi.h::fluid_player_get_status" ref="ad9b5bd5dcacaa1c967275f537e2add26" args="(fluid_player_t *player)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FLUIDSYNTH_API int fluid_player_get_status </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#af6c718e19d8c9c6632cb8ffac6974d80">fluid_player_t</a> *&nbsp;</td>
          <td class="paramname"> <em>player</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get MIDI player status. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>player</em>&nbsp;</td><td>MIDI player instance </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Player status (<a class="el" href="midi_8h.html#a5ec93766f61465dedbbac9bdb76ced83" title="MIDI player status enum.">fluid_player_status</a>) </dd></dl>
<dl class="since"><dt><b>Since:</b></dt><dd>1.1.0 </dd></dl>

<p>References <a class="el" href="midi_8h.html#ad9b5bd5dcacaa1c967275f537e2add26">fluid_player_get_status()</a>.</p>

<p>Referenced by <a class="el" href="midi_8h.html#ad9b5bd5dcacaa1c967275f537e2add26">fluid_player_get_status()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Tue Oct 12 2010 for libfluidsynth by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>