Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1f9eb832ba1e4b88d9a5c2b384813bb4 > files > 6890

kdelibs3-apidocs-3.5.10-31.fc15.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!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" lang="en_US" xml:lang="en_US">

<head>
  <title>libkmid: DeviceManager Class Reference (libkmid)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">libkmid</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.7.4 -->
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">DeviceManager Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="DeviceManager" -->
<p>MIDI Device Manager class .  
 <a href="classDeviceManager.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="deviceman_8h_source.html">deviceman.h</a>&gt;</code></p>

<p><a href="classDeviceManager-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ab7536ec7dd31f6c8aca24edb49e09b13">DeviceManager</a> (int def=-1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a5ea25e511c9be6a5787bfbd842241753">~DeviceManager</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a7db7e18ae68dd5fa5ead64f176e6fc9e">initManager</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a0c37953f265992987d0cbb360980dc4f">checkInit</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classMidiOut.html">MidiOut</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a54ffab347deaf55297da2fc22b5c079a">chntodev</a> (int chn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classMidiOut.html">MidiOut</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a46e90df7f3d8a08a71666b2f6ca0db76">deviceForChannel</a> (int chn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a9cc4244880040dea1cadfe9c8bbed75d">deviceNumberForChannel</a> (int chn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#aeb18a56dc0e0a053efa1ff8ffb2c13e8">setDeviceNumberForChannel</a> (int chn, int dev)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a9e825f1b20b11e98627cbeef658e33cc">ok</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a5883bacd781156dfec30ce3a39556c5b">usingAlsa</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#adf3c0979839a9c05f64fc63eca98e5fb">openDev</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ac3e9e2d06aeef1b67e4aee8cf49501b8">closeDev</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a6176475ba6b491909f3b65d0ace82e9b">initDev</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a0a8fa608705b596053d3a033ffc50124">noteOn</a> (uchar chn, uchar note, uchar vel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ab68d50cd0887a9952f90d1ce34f23ae0">noteOff</a> (uchar chn, uchar note, uchar vel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ac1c843e8d8f3b0e2d9364ccd570c0623">keyPressure</a> (uchar chn, uchar note, uchar vel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a457923289e59bd156e3d57d5d9aecd33">chnPatchChange</a> (uchar chn, uchar patch)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#aa5538517c5a963e4a416cd4aa2b6dbd6">chnPressure</a> (uchar chn, uchar vel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a0f6cd1f7c8283dcff2d143de6bce1236">chnPitchBender</a> (uchar chn, uchar lsb, uchar msb)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a5b810226cc168b31edbc80ac8d785227">chnController</a> (uchar chn, uchar ctl, uchar v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a72cb10d4d2effaf4052093eed190ef03">sysEx</a> (uchar *data, ulong size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a27f98f4e3ae1372925ba284fe9e3a7fd">wait</a> (double ms)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ac993414a510635a85f860e202151ed47">tmrSetTempo</a> (int v)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a63c6809d3a6e0d18eecdf2f2b4115d7b">tmrStart</a> (long int tpcn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#aae81962047a142ae5f5e5e0bcbce6c2f">tmrStop</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#af8ecd94b0b4895d076547b42eac5bed1">tmrContinue</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#ae2cdcd7de4b43eb7580b1979a4ce12ed">allNotesOff</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#aae92764328471a6b4973459d723d5ddd">sync</a> (bool f=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a733942a89771c2a62b405448fc7fbaa8">setVolumePercentage</a> (int i)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a71f424b244890cb7d07f698cf85f00a6">defaultDevice</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a5433c50c02af9ff9b6d084034a793eef">setDefaultDevice</a> (int i)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a4dc2867a62b15054e8acdc4380199830">setPatchesToUse</a> (int *patchesused)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#adc20cd4349f8a8aa8a1f6e69ccbdbbc5">midiMapFilename</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a8825249454dd2951aa8f6ba3aeb7f551">setMidiMap</a> (<a class="el" href="classMidiMapper.html">MidiMapper</a> *map)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a2a8c1b518e52cb680c1e9404c8b7a010">rate</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a47bc84ac9bdc1e772817f1c246e5155b">midiPorts</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#afaf503897ac59b44227e2a59ccfcf959">synthDevices</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a3b9204e92042f1113d00908052ee26ed">name</a> (int i)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDeviceManager.html#a907bc773d87d409fc72a6708e7012ce5">type</a> (int i)</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d43b3ca5b00e555cf15754b1b64b9cb"></a><!-- doxytag: member="DeviceManager::seqbuf_dump" ref="a6d43b3ca5b00e555cf15754b1b64b9cb" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>seqbuf_dump</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afad50d66022a5302ff403ebf79e41c88"></a><!-- doxytag: member="DeviceManager::seqbuf_clean" ref="afad50d66022a5302ff403ebf79e41c88" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>seqbuf_clean</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53cf91649bf18bdeb57a7ef0f0a5f77f"></a><!-- doxytag: member="DeviceManager::checkAlsa" ref="a53cf91649bf18bdeb57a7ef0f0a5f77f" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>checkAlsa</b> (void)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0466bba5a15df25ce72eab4e7e1ca071"></a><!-- doxytag: member="DeviceManager::device" ref="a0466bba5a15df25ce72eab4e7e1ca071" args="" -->
<a class="el" href="classMidiOut.html">MidiOut</a> **&#160;</td><td class="memItemRight" valign="bottom"><b>device</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae210c22cac775273e8a94a3f28782a10"></a><!-- doxytag: member="DeviceManager::midiinfo" ref="ae210c22cac775273e8a94a3f28782a10" args="" -->
struct midi_info *&#160;</td><td class="memItemRight" valign="bottom"><b>midiinfo</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10848c4eb68797cf76501f2a670b7fbf"></a><!-- doxytag: member="DeviceManager::synthinfo" ref="a10848c4eb68797cf76501f2a670b7fbf" args="" -->
struct synth_info *&#160;</td><td class="memItemRight" valign="bottom"><b>synthinfo</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45b0d0a8f9a7f1e8533c5b50f520e411"></a><!-- doxytag: member="DeviceManager::chn2dev" ref="a45b0d0a8f9a7f1e8533c5b50f520e411" args="[16]" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>chn2dev</b> [16]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87d021808442a26dba5c78b82d02db82"></a><!-- doxytag: member="DeviceManager::n_synths" ref="a87d021808442a26dba5c78b82d02db82" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>n_synths</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d425ec2203af5fa7269edd35c86cf66"></a><!-- doxytag: member="DeviceManager::n_midi" ref="a1d425ec2203af5fa7269edd35c86cf66" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>n_midi</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4a03e3923893dba654d014ff7ff68d3"></a><!-- doxytag: member="DeviceManager::n_total" ref="aa4a03e3923893dba654d014ff7ff68d3" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>n_total</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7a573346b22d766c3854ea0903332f2"></a><!-- doxytag: member="DeviceManager::m_rate" ref="ac7a573346b22d766c3854ea0903332f2" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>m_rate</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f934d7659631db38970891811a7298c"></a><!-- doxytag: member="DeviceManager::convertrate" ref="a7f934d7659631db38970891811a7298c" args="" -->
double&#160;</td><td class="memItemRight" valign="bottom"><b>convertrate</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78858f0f860bc6c548287178cb55a62f"></a><!-- doxytag: member="DeviceManager::timerstarted" ref="a78858f0f860bc6c548287178cb55a62f" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>timerstarted</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a695b79e76352be9ad7c39109d9625307"></a><!-- doxytag: member="DeviceManager::lastwaittime" ref="a695b79e76352be9ad7c39109d9625307" args="" -->
double&#160;</td><td class="memItemRight" valign="bottom"><b>lastwaittime</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb04ae8232f1cbda13f26f52674b9be0"></a><!-- doxytag: member="DeviceManager::mapper_tmp" ref="aeb04ae8232f1cbda13f26f52674b9be0" args="" -->
<a class="el" href="classMidiMapper.html">MidiMapper</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>mapper_tmp</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad48bf96198ab55df0784c3a780880926"></a><!-- doxytag: member="DeviceManager::initialized" ref="ad48bf96198ab55df0784c3a780880926" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>initialized</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f56f2ccf3f70f6719de755d817c94fe"></a><!-- doxytag: member="DeviceManager::seqfd" ref="a3f56f2ccf3f70f6719de755d817c94fe" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>seqfd</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72225b668206747c08fc71830c9fc47f"></a><!-- doxytag: member="DeviceManager::default_dev" ref="a72225b668206747c08fc71830c9fc47f" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>default_dev</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a015f7f5ef91f9165f10347bb7f8616a3"></a><!-- doxytag: member="DeviceManager::_ok" ref="a015f7f5ef91f9165f10347bb7f8616a3" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>_ok</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab478307546830208093c7fbd6a9034a9"></a><!-- doxytag: member="DeviceManager::alsa" ref="ab478307546830208093c7fbd6a9034a9" args="" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>alsa</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>MIDI Device Manager class . </p>
<p>This class is the one you should use to send MIDI events to any device, as it creates and manages the *Out classes.</p>
<p>This class is usually used by creating a <a class="el" href="classDeviceManager.html" title="MIDI Device Manager class .">DeviceManager</a> object, then call <a class="el" href="classDeviceManager.html#adf3c0979839a9c05f64fc63eca98e5fb" title="Open the devices.">openDev()</a> and <a class="el" href="classDeviceManager.html#a6176475ba6b491909f3b65d0ace82e9b" title="Calls MidiOut::initDev() in turn in each of the available devices.">initDev()</a> . Then, use numberOfMidiPorts(), numberOfSynthDevices(), <a class="el" href="classDeviceManager.html#a3b9204e92042f1113d00908052ee26ed" title="Returns the name of the i-th device .">name()</a> and <a class="el" href="classDeviceManager.html#a907bc773d87d409fc72a6708e7012ce5" title="Returns the type of device the i-th device is , in a user-friendly string .">type()</a> to choose which device to play MIDI events to and then use <a class="el" href="classDeviceManager.html#a71f424b244890cb7d07f698cf85f00a6" title="Returns the device to which the MIDI events will be sent.">defaultDevice()</a> to set the MIDI device to play.</p>
<p>Manages all MIDI devices and redirects MIDI events to each one as configured. </p>
<dl class="version"><dt><b>Version:</b></dt><dd>0.9.5 17/01/2000 </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Antonio Larrosa Jimenez &lt;<a href="mailto:larrosa@kde.org">larrosa@kde.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00047">47</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab7536ec7dd31f6c8aca24edb49e09b13"></a><!-- doxytag: member="DeviceManager::DeviceManager" ref="ab7536ec7dd31f6c8aca24edb49e09b13" args="(int def=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DeviceManager::DeviceManager </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>def</em> = <code>-1</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>It just initializes internal variables, before playing any music, you should call <a class="el" href="classDeviceManager.html#a7db7e18ae68dd5fa5ead64f176e6fc9e" title="Initializes the MIDI Device Manager object.">initManager()</a>, <a class="el" href="classDeviceManager.html#a8825249454dd2951aa8f6ba3aeb7f551" title="Sets a MidiMapper object to use.">setMidiMap()</a> (optional), <a class="el" href="classDeviceManager.html#adf3c0979839a9c05f64fc63eca98e5fb" title="Open the devices.">openDev()</a>, <a class="el" href="classDeviceManager.html#a6176475ba6b491909f3b65d0ace82e9b" title="Calls MidiOut::initDev() in turn in each of the available devices.">initDev()</a>, <a class="el" href="classDeviceManager.html#a4dc2867a62b15054e8acdc4380199830" title="Loads the patches you&#39;re going to use .">setPatchesToUse()</a> (not required, unless you're playing to a GUS device, which must load the patches), <a class="el" href="classDeviceManager.html#a63c6809d3a6e0d18eecdf2f2b4115d7b" title="Starts the timer.">tmrStart()</a>, and finally, play the music. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00106">106</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a5ea25e511c9be6a5787bfbd842241753"></a><!-- doxytag: member="DeviceManager::~DeviceManager" ref="a5ea25e511c9be6a5787bfbd842241753" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DeviceManager::~DeviceManager </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>
<p>It closes the device (calling <a class="el" href="classDeviceManager.html#ac3e9e2d06aeef1b67e4aee8cf49501b8" title="Closes the devices, and /dev/sequencer.">closeDev()</a> ) if it wasn't closed before. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00153">153</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ae2cdcd7de4b43eb7580b1979a4ce12ed"></a><!-- doxytag: member="DeviceManager::allNotesOff" ref="ae2cdcd7de4b43eb7580b1979a4ce12ed" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::allNotesOff </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends an all notes off event. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00826">826</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a0c37953f265992987d0cbb360980dc4f"></a><!-- doxytag: member="DeviceManager::checkInit" ref="a0c37953f265992987d0cbb360980dc4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::checkInit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the device manager has been initialized (with <code>initManager</code>), and in case it wasn't, initializes it. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if it was (or has just been) correctly initialized, and -1 if there was an error. </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00176">176</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a5b810226cc168b31edbc80ac8d785227"></a><!-- doxytag: member="DeviceManager::chnController" ref="a5b810226cc168b31edbc80ac8d785227" args="(uchar chn, uchar ctl, uchar v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::chnController </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>ctl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>v</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a Controller event to a MIDI channel. </p>
<p>This can be used for example to change the volume, set a XG patch, etc. Look for any General Midi resource page on the net for more information about the available controller events.</p>
<p>For example, to set the tremolo value to a maximum on the MIDI channel number one, you should pass 1 to <code>chn</code>, 1 to <code>ctl</code> and 127 to <code>v</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) to send the event to. </td></tr>
    <tr><td class="paramname">ctl</td><td>the controller (0 to 15) to send. </td></tr>
    <tr><td class="paramname">v</td><td>the value (data) of the controller. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00526">526</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a457923289e59bd156e3d57d5d9aecd33"></a><!-- doxytag: member="DeviceManager::chnPatchChange" ref="a457923289e59bd156e3d57d5d9aecd33" args="(uchar chn, uchar patch)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::chnPatchChange </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>patch</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the patch (instrument) on a MIDI channel. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a4dc2867a62b15054e8acdc4380199830" title="Loads the patches you&#39;re going to use .">setPatchesToUse()</a></dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) . </td></tr>
    <tr><td class="paramname">patch</td><td>the General Midi patch (0 to 127) to use on the channel chn. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00511">511</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a0f6cd1f7c8283dcff2d143de6bce1236"></a><!-- doxytag: member="DeviceManager::chnPitchBender" ref="a0f6cd1f7c8283dcff2d143de6bce1236" args="(uchar chn, uchar lsb, uchar msb)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::chnPitchBender </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>lsb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>msb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the Pitch Bender value on a MIDI channel. </p>
<p>This bends the tone of each note played on this channel.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) to use. </td></tr>
    <tr><td class="paramname">lsb</td><td>and <code>msb</code> the less significant byte and the most significant byte (0 to 127 each) of the number by which notes will be bend. a 0x4000 value means not to bend. </td></tr>
    <tr><td class="paramname">msb</td><td>the most significant byte </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00521">521</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="aa5538517c5a963e4a416cd4aa2b6dbd6"></a><!-- doxytag: member="DeviceManager::chnPressure" ref="aa5538517c5a963e4a416cd4aa2b6dbd6" args="(uchar chn, uchar vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::chnPressure </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>vel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the Pressure (Aftertouch) on a MIDI channel. </p>
<p>Keep in mind that some synthesizers don't like this events, and it's better not to send it.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) to change. </td></tr>
    <tr><td class="paramname">vel</td><td>the velocity (0 to 127) to use on the channel chn. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00516">516</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a54ffab347deaf55297da2fc22b5c079a"></a><!-- doxytag: member="DeviceManager::chntodev" ref="a54ffab347deaf55297da2fc22b5c079a" args="(int chn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classMidiOut.html">MidiOut</a>* DeviceManager::chntodev </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chn</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Please use <a class="el" href="classDeviceManager.html#a46e90df7f3d8a08a71666b2f6ca0db76" title="It&#39;s possible to send different MIDI channels to different MIDI devices, so that you can for example ...">deviceForChannel()</a> instead.</dd></dl>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00206">206</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac3e9e2d06aeef1b67e4aee8cf49501b8"></a><!-- doxytag: member="DeviceManager::closeDev" ref="ac3e9e2d06aeef1b67e4aee8cf49501b8" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::closeDev </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Closes the devices, and /dev/sequencer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#adf3c0979839a9c05f64fc63eca98e5fb" title="Open the devices.">openDev()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00449">449</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a71f424b244890cb7d07f698cf85f00a6"></a><!-- doxytag: member="DeviceManager::defaultDevice" ref="a71f424b244890cb7d07f698cf85f00a6" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::defaultDevice </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the device to which the MIDI events will be sent. </p>
<p>Returns -1 if there's no available device.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a5433c50c02af9ff9b6d084034a793eef" title="Sets the device to send the MIDI events to.">setDefaultDevice()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00766">766</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a46e90df7f3d8a08a71666b2f6ca0db76"></a><!-- doxytag: member="DeviceManager::deviceForChannel" ref="a46e90df7f3d8a08a71666b2f6ca0db76" args="(int chn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classMidiOut.html">MidiOut</a>* DeviceManager::deviceForChannel </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chn</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>It's possible to send different MIDI channels to different MIDI devices, so that you can for example send channel 1 to an external synthesizer, channel 2 to a FM device and channel 10 to an AWE synth. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the device to which MIDI events goind to channel <code>chn</code> should be sent. </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00217">217</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9cc4244880040dea1cadfe9c8bbed75d"></a><!-- doxytag: member="DeviceManager::deviceNumberForChannel" ref="a9cc4244880040dea1cadfe9c8bbed75d" args="(int chn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::deviceNumberForChannel </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chn</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the device number associated with a given channel. </p>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00223">223</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6176475ba6b491909f3b65d0ace82e9b"></a><!-- doxytag: member="DeviceManager::initDev" ref="a6176475ba6b491909f3b65d0ace82e9b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::initDev </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calls <a class="el" href="classMidiOut.html#a79b9e6ea9e9eaf66dc2de1fdd6b9168c" title="Initializes the device sending generic standard midi events and controllers, such as changing the pat...">MidiOut::initDev()</a> in turn in each of the available devices. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classMidiOut.html#a79b9e6ea9e9eaf66dc2de1fdd6b9168c" title="Initializes the device sending generic standard midi events and controllers, such as changing the pat...">MidiOut::initDev()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00482">482</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a7db7e18ae68dd5fa5ead64f176e6fc9e"></a><!-- doxytag: member="DeviceManager::initManager" ref="a7db7e18ae68dd5fa5ead64f176e6fc9e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::initManager </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes the MIDI Device Manager object. </p>
<p>The /dev/sequencer and/or /dev/snd/seq files are opened, available devices are analyzed and *Out objects are created. Then, the device files are closed.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if everything was OK, or -1 if there was an error and it couldn't be initialized (for example, because it couldn't open the /dev/sequencer file) </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00203">203</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="ac1c843e8d8f3b0e2d9364ccd570c0623"></a><!-- doxytag: member="DeviceManager::keyPressure" ref="ac1c843e8d8f3b0e2d9364ccd570c0623" args="(uchar chn, uchar note, uchar vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::keyPressure </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>note</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>vel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a Key Pressure (or Aftertouch) MIDI event. </p>
<p>This event changes the pressure over a key after this key has been played.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) where the note is being played. </td></tr>
    <tr><td class="paramname">note</td><td>the key of the note (0 to 127). </td></tr>
    <tr><td class="paramname">vel</td><td>the new velocity (or pressure) of the note (0 to 127). </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00506">506</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="adc20cd4349f8a8aa8a1f6e69ccbdbbc5"></a><!-- doxytag: member="DeviceManager::midiMapFilename" ref="adc20cd4349f8a8aa8a1f6e69ccbdbbc5" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * DeviceManager::midiMapFilename </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the filename where the Midi Mapper was loaded from, or "" if no MIDI Mapper is in use. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a8825249454dd2951aa8f6ba3aeb7f551" title="Sets a MidiMapper object to use.">setMidiMap()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00778">778</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a47bc84ac9bdc1e772817f1c246e5155b"></a><!-- doxytag: member="DeviceManager::midiPorts" ref="a47bc84ac9bdc1e772817f1c246e5155b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::midiPorts </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of MIDI ports available on the system. </p>
<p>It's common that users have MIDI ports available, but there are no external synthesizers connected to these ports, so sending MIDI events to these ports will not produce any music in this case.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#afaf503897ac59b44227e2a59ccfcf959" title="Returns the number of internal synthesizers available on the system.">synthDevices()</a> </dd>
<dd>
<a class="el" href="classDeviceManager.html#a5433c50c02af9ff9b6d084034a793eef" title="Sets the device to send the MIDI events to.">setDefaultDevice()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00504">504</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3b9204e92042f1113d00908052ee26ed"></a><!-- doxytag: member="DeviceManager::name" ref="a3b9204e92042f1113d00908052ee26ed" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * DeviceManager::name </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the name of the <code>i-th</code> device . </p>
<p>In case the <a class="el" href="classDeviceManager.html" title="MIDI Device Manager class .">DeviceManager</a> wasn't yet initialized ( see <a class="el" href="classDeviceManager.html#a0c37953f265992987d0cbb360980dc4f" title="Checks if the device manager has been initialized (with initManager), and in case it wasn&#39;t...">checkInit()</a> ), the return value is NULL, and in case the parameter has a value out of the valid range ( 0 to <a class="el" href="classDeviceManager.html#a47bc84ac9bdc1e772817f1c246e5155b" title="Returns the number of MIDI ports available on the system.">midiPorts()</a> + <a class="el" href="classDeviceManager.html#afaf503897ac59b44227e2a59ccfcf959" title="Returns the number of internal synthesizers available on the system.">synthDevices()</a> ) it returns an empty string. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00718">718</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="ab68d50cd0887a9952f90d1ce34f23ae0"></a><!-- doxytag: member="DeviceManager::noteOff" ref="ab68d50cd0887a9952f90d1ce34f23ae0" args="(uchar chn, uchar note, uchar vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::noteOff </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>note</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>vel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a Note Off MIDI event. </p>
<p>This is equivalent to send a Note On event with a vel value of 0.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) to play the note on. </td></tr>
    <tr><td class="paramname">note</td><td>the key of the note to play (0 to 127). </td></tr>
    <tr><td class="paramname">vel</td><td>the velocity of the note (0 to 127).</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a0a8fa608705b596053d3a033ffc50124" title="Sends a Note On MIDI event.">noteOn()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00501">501</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a0a8fa608705b596053d3a033ffc50124"></a><!-- doxytag: member="DeviceManager::noteOn" ref="a0a8fa608705b596053d3a033ffc50124" args="(uchar chn, uchar note, uchar vel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::noteOn </td>
          <td>(</td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>note</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uchar&#160;</td>
          <td class="paramname"><em>vel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a Note On MIDI event. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">chn</td><td>the MIDI channel (0 to 15) to play the note on. </td></tr>
    <tr><td class="paramname">note</td><td>the key of the note to play (0 to 127). </td></tr>
    <tr><td class="paramname">vel</td><td>the velocity of the note (0 to 127).</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#ab68d50cd0887a9952f90d1ce34f23ae0" title="Sends a Note Off MIDI event.">noteOff()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00496">496</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a9e825f1b20b11e98627cbeef658e33cc"></a><!-- doxytag: member="DeviceManager::ok" ref="a9e825f1b20b11e98627cbeef658e33cc" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::ok </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if there was a problem and 1 if everything was OK. Note that the return value is changed after you check it, so you can only check it once. </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00169">169</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="adf3c0979839a9c05f64fc63eca98e5fb"></a><!-- doxytag: member="DeviceManager::openDev" ref="adf3c0979839a9c05f64fc63eca98e5fb" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::openDev </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open the devices. </p>
<p>It first initializes the manager it that wasn't done yet (you should do it yourself, to be able to choose the MIDI output device, as it will be set to an external synth by default, if available).</p>
<p>Then /dev/sequencer is opened and the MIDI devices are opened (calling <a class="el" href="classMidiOut.html#a866c94cc2ce695ba8c0593dbc27b3716" title="Opens the device.">MidiOut::openDev()</a> ). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a9e825f1b20b11e98627cbeef658e33cc">ok()</a> to check if there was any problem </dd>
<dd>
<a class="el" href="classDeviceManager.html#ac3e9e2d06aeef1b67e4aee8cf49501b8" title="Closes the devices, and /dev/sequencer.">closeDev()</a> </dd>
<dd>
<a class="el" href="classDeviceManager.html#a6176475ba6b491909f3b65d0ace82e9b" title="Calls MidiOut::initDev() in turn in each of the available devices.">initDev()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00398">398</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a2a8c1b518e52cb680c1e9404c8b7a010"></a><!-- doxytag: member="DeviceManager::rate" ref="a2a8c1b518e52cb680c1e9404c8b7a010" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::rate </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the SNDCTL_SEQ_CTRLRATE ioctl value. </p>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00493">493</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5433c50c02af9ff9b6d084034a793eef"></a><!-- doxytag: member="DeviceManager::setDefaultDevice" ref="a5433c50c02af9ff9b6d084034a793eef" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::setDefaultDevice </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the device to send the MIDI events to. </p>
<p>By using <a class="el" href="classDeviceManager.html#a47bc84ac9bdc1e772817f1c246e5155b" title="Returns the number of MIDI ports available on the system.">midiPorts()</a>, <a class="el" href="classDeviceManager.html#afaf503897ac59b44227e2a59ccfcf959" title="Returns the number of internal synthesizers available on the system.">synthDevices()</a>, <a class="el" href="classDeviceManager.html#a3b9204e92042f1113d00908052ee26ed" title="Returns the name of the i-th device .">name()</a> and <a class="el" href="classDeviceManager.html#a907bc773d87d409fc72a6708e7012ce5" title="Returns the type of device the i-th device is , in a user-friendly string .">type()</a>, you should choose which device to use (note that they are numbered with midi ports being first and synth devices next)</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a71f424b244890cb7d07f698cf85f00a6" title="Returns the device to which the MIDI events will be sent.">defaultDevice()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00771">771</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="aeb18a56dc0e0a053efa1ff8ffb2c13e8"></a><!-- doxytag: member="DeviceManager::setDeviceNumberForChannel" ref="aeb18a56dc0e0a053efa1ff8ffb2c13e8" args="(int chn, int dev)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::setDeviceNumberForChannel </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>chn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dev</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the device number associated with a given channel. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00821">821</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a8825249454dd2951aa8f6ba3aeb7f551"></a><!-- doxytag: member="DeviceManager::setMidiMap" ref="a8825249454dd2951aa8f6ba3aeb7f551" args="(MidiMapper *map)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::setMidiMap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classMidiMapper.html">MidiMapper</a> *&#160;</td>
          <td class="paramname"><em>map</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a <a class="el" href="classMidiMapper.html" title="A Midi Mapper class which defines the way MIDI events are translated (or &quot;mapped&quot;) to different ones...">MidiMapper</a> object to use. </p>
<p>This object should already have loaded the configuration. See the description of <a class="el" href="classMidiMapper.html" title="A Midi Mapper class which defines the way MIDI events are translated (or &quot;mapped&quot;) to different ones...">MidiMapper</a> for more information.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classMidiMapper.html#a0581eb1b30fa24553b7e15f9414cd932" title="Constructor.">MidiMapper::MidiMapper()</a> </dd>
<dd>
<a class="el" href="classDeviceManager.html#adc20cd4349f8a8aa8a1f6e69ccbdbbc5" title="Returns the filename where the Midi Mapper was loaded from, or &quot;&quot; if no MIDI Mapper is in use...">midiMapFilename()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00786">786</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a4dc2867a62b15054e8acdc4380199830"></a><!-- doxytag: member="DeviceManager::setPatchesToUse" ref="a4dc2867a62b15054e8acdc4380199830" args="(int *patchesused)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::setPatchesToUse </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>patchesused</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Loads the patches you're going to use . </p>
<p>This has effect only for GUS cards, although, if you use this function when <a class="el" href="classDeviceManager.html#a71f424b244890cb7d07f698cf85f00a6" title="Returns the device to which the MIDI events will be sent.">defaultDevice()</a> is not a GUS device, it will be ignored.</p>
<p>The parameter is an int [256] array, which contain the following:</p>
<p>The first 0..127 integers, are the number of times each General MIDI patch will be used, and -1 when the corresponding patch won't be used.</p>
<p>The 128..255 integers are the number of times each drum voice (each note on the drum channel) will be used, and -1 when the corresponding percussion won't be used.</p>
<p>This is done this way so that if the user has very little memory on his GUS card, and not all patches will be loaded, they are at least reordered, so that it first loads the one you're going to use most.</p>
<p>In case you don't worry about such users, or you don't know "a priori" the number of notes you're going to play, you can just use 1 for each patch you want to load and -1 in the rest.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classGUSOut.html#abab52f7f2cab4643479b1ff3953755ee" title="See DeviceManager::setPatchesToUse() .">GUSOut::setPatchesToUse()</a> </dd>
<dd>
<a class="el" href="classGUSOut.html#a791b7cd77daa1f4bfac78a2e922e87e5" title="Loads a single patch on the synthesizer memory.">GUSOut::loadPatch()</a></dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if ok, and -1 if there wasn't enough memory to load the patches in the card's memory. </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00796">796</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a733942a89771c2a62b405448fc7fbaa8"></a><!-- doxytag: member="DeviceManager::setVolumePercentage" ref="a733942a89771c2a62b405448fc7fbaa8" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::setVolumePercentage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the "master" volume of the played events by altering next volume controller events. </p>
<p>The parameter <code>i</code> should be in the range of 0 (nothing is heard) to 150 (music is played at a 150% of the original volume).</p>
<p>Keep in mind that as most MIDI files already play music at near the maximum volume, an <code>i</code> value greater than 100 is very probably ignored most of the times. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00810">810</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="aae92764328471a6b4973459d723d5ddd"></a><!-- doxytag: member="DeviceManager::sync" ref="aae92764328471a6b4973459d723d5ddd" args="(bool f=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::sync </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>f</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronizes with the MIDI buffer. </p>
<p>Midi events are put into a buffer, along with timer delays (see <a class="el" href="classDeviceManager.html#a27f98f4e3ae1372925ba284fe9e3a7fd" title="Sets the number of milliseconds at which the next event will be sent.">wait()</a> ). sync returns when the buffer is empty.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>if false, it syncronizes by waiting for the buffer to be sent. If true, it forces the synchronization by clearing the buffer inmediately. The "force" method is, of course, not recommended, except in rare situations. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00632">632</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="afaf503897ac59b44227e2a59ccfcf959"></a><!-- doxytag: member="DeviceManager::synthDevices" ref="afaf503897ac59b44227e2a59ccfcf959" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::synthDevices </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of internal synthesizers available on the system. </p>
<p>Some of these devices will need special configuration, for example, to load sound patches.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a47bc84ac9bdc1e772817f1c246e5155b" title="Returns the number of MIDI ports available on the system.">midiPorts()</a> </dd>
<dd>
<a class="el" href="classDeviceManager.html#a5433c50c02af9ff9b6d084034a793eef" title="Sets the device to send the MIDI events to.">setDefaultDevice()</a> </dd>
<dd>
<a class="el" href="classDeviceManager.html#a4dc2867a62b15054e8acdc4380199830" title="Loads the patches you&#39;re going to use .">setPatchesToUse()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00515">515</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a72cb10d4d2effaf4052093eed190ef03"></a><!-- doxytag: member="DeviceManager::sysEx" ref="a72cb10d4d2effaf4052093eed190ef03" args="(uchar *data, ulong size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::sysEx </td>
          <td>(</td>
          <td class="paramtype">uchar *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ulong&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a SYStem EXclusive message to the default MIDI device (usually, external MIDI synths, as most internal synths do not support sysex messages) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>the array of bytes that comform the system exclusive message. Without the initial 0xF0 char, and including the final 0xF7 char (end of exclusive message) </td></tr>
    <tr><td class="paramname">size</td><td>the size in bytes of the data to send</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a5433c50c02af9ff9b6d084034a793eef" title="Sets the device to send the MIDI events to.">setDefaultDevice()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00531">531</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="af8ecd94b0b4895d076547b42eac5bed1"></a><!-- doxytag: member="DeviceManager::tmrContinue" ref="af8ecd94b0b4895d076547b42eac5bed1" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::tmrContinue </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Continue the stopped timer . </p>
<p>It is the same than starting a new timer, but without resetting it. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00612">612</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="ac993414a510635a85f860e202151ed47"></a><!-- doxytag: member="DeviceManager::tmrSetTempo" ref="ac993414a510635a85f860e202151ed47" args="(int v)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::tmrSetTempo </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the tempo which will be used to convert between ticks and milliseconds. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00553">553</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a63c6809d3a6e0d18eecdf2f2b4115d7b"></a><!-- doxytag: member="DeviceManager::tmrStart" ref="a63c6809d3a6e0d18eecdf2f2b4115d7b" args="(long int tpcn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::tmrStart </td>
          <td>(</td>
          <td class="paramtype">long int&#160;</td>
          <td class="paramname"><em>tpcn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Starts the timer. </p>
<p>You must call tmrStart before using <a class="el" href="classDeviceManager.html#a27f98f4e3ae1372925ba284fe9e3a7fd" title="Sets the number of milliseconds at which the next event will be sent.">wait()</a> </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00565">565</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="aae81962047a142ae5f5e5e0bcbce6c2f"></a><!-- doxytag: member="DeviceManager::tmrStop" ref="aae81962047a142ae5f5e5e0bcbce6c2f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::tmrStop </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stops the timer. </p>
<p>This will be called by <a class="el" href="classDeviceManager.html#ac3e9e2d06aeef1b67e4aee8cf49501b8" title="Closes the devices, and /dev/sequencer.">closeDev()</a> before closing the device </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00591">591</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a907bc773d87d409fc72a6708e7012ce5"></a><!-- doxytag: member="DeviceManager::type" ref="a907bc773d87d409fc72a6708e7012ce5" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * DeviceManager::type </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the type of device the <code>i-th</code> device is , in a user-friendly string . </p>
<p>For example, "External Midi Port" for midi ports, "FM" for FM synthesizers, "GUS" for Gravis Ultrasound devices, etc. </p>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00736">736</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a5883bacd781156dfec30ce3a39556c5b"></a><!-- doxytag: member="DeviceManager::usingAlsa" ref="a5883bacd781156dfec30ce3a39556c5b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int DeviceManager::usingAlsa </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if it's running ALSA and false if OSS is being run. </p>

<p>Definition at line <a class="el" href="deviceman_8h_source.html#l00239">239</a> of file <a class="el" href="deviceman_8h_source.html">deviceman.h</a>.</p>

</div>
</div>
<a class="anchor" id="a27f98f4e3ae1372925ba284fe9e3a7fd"></a><!-- doxytag: member="DeviceManager::wait" ref="a27f98f4e3ae1372925ba284fe9e3a7fd" args="(double ms)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceManager::wait </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ms</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the number of milliseconds at which the next event will be sent. </p>
<p>This way, you can schedule notes and events to send to the MIDI device. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classDeviceManager.html#a63c6809d3a6e0d18eecdf2f2b4115d7b" title="Starts the timer.">tmrStart()</a> </dd></dl>

<p>Definition at line <a class="el" href="deviceman_8cc_source.html#l00537">537</a> of file <a class="el" href="deviceman_8cc_source.html">deviceman.cc</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="deviceman_8h_source.html">deviceman.h</a></li>
<li><a class="el" href="deviceman_8cc_source.html">deviceman.cc</a></li>
</ul>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>libkmid</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classAlsaOut.html">alsaout</option>,  <option value="classDeviceManager.html">devicemanager</option>,  <option value="classFMOut.html">fmout</option>,  <option value="classGUSOut.html">gusout</option>,  <option value="classMidiMapper.html">midimapper</option>,  <option value="classMidiOut.html">midiout</option>,  <option value="classMidiPlayer.html">midiplayer</option>,  <option value="classMidiStatus.html">midistatus</option>,  <option value="classMidiTrack.html">miditrack</option>,  <option value="classNoteArray.html">notearray</option>,  <option value="classSynthOut.html">synthout</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>