diff options
Diffstat (limited to 'doc/html')
69 files changed, 1997 insertions, 285 deletions
diff --git a/doc/html/RtError_8h_source.html b/doc/html/RtError_8h_source.html index 4987b5d..24c3fc4 100644 --- a/doc/html/RtError_8h_source.html +++ b/doc/html/RtError_8h_source.html @@ -57,7 +57,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/RtMidi_8h.html b/doc/html/RtMidi_8h.html new file mode 100644 index 0000000..b5c22ef --- /dev/null +++ b/doc/html/RtMidi_8h.html @@ -0,0 +1,51 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>RtMidi.h File Reference</h1><code>#include "RtError.h"</code><br/> +<code>#include <string></code><br/> +<code>#include <vector></code><br/> + +<p><a href="RtMidi_8h_source.html">Go to the source code of this file.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td colspan="2"><h2>Classes</h2></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html">RtMidi</a></td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">An abstract base class for realtime MIDI input/output. <a href="classRtMidi.html#_details">More...</a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">A realtime MIDI input class. <a href="classRtMidiIn.html#_details">More...</a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">A realtime MIDI output class. <a href="classRtMidiOut.html#_details">More...</a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInApi.html">MidiInApi</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiInApi::MidiMessage</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiInApi::MidiQueue</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1RtMidiInData.html">MidiInApi::RtMidiInData</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutApi.html">MidiOutApi</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInCore.html">MidiInCore</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutCore.html">MidiOutCore</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInJack.html">MidiInJack</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutJack.html">MidiOutJack</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInAlsa.html">MidiInAlsa</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutAlsa.html">MidiOutAlsa</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInWinMM.html">MidiInWinMM</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutWinMM.html">MidiOutWinMM</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiInWinKS.html">MidiInWinKS</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classMidiOutWinKS.html">MidiOutWinKS</a></td></tr> +</table> +<hr/><a name="_details"></a><h2>Detailed Description</h2> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/RtMidi_8h_source.html b/doc/html/RtMidi_8h_source.html index 0867a7b..2fee9bf 100644 --- a/doc/html/RtMidi_8h_source.html +++ b/doc/html/RtMidi_8h_source.html @@ -8,177 +8,522 @@ <a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> <HR> <!-- Generated by Doxygen 1.6.2 --> -<h1>RtMidi.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**********************************************************************/</span> -<a name="l00036"></a>00036 <span class="comment">/**********************************************************************/</span> -<a name="l00037"></a>00037 -<a name="l00038"></a>00038 <span class="comment">// RtMidi: Version 1.0.15</span> -<a name="l00039"></a>00039 -<a name="l00040"></a>00040 <span class="preprocessor">#ifndef RTMIDI_H</span> -<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define RTMIDI_H</span> -<a name="l00042"></a>00042 <span class="preprocessor"></span> -<a name="l00043"></a>00043 <span class="preprocessor">#include "RtError.h"</span> -<a name="l00044"></a>00044 <span class="preprocessor">#include <string></span> -<a name="l00045"></a>00045 -<a name="l00046"></a><a class="code" href="classRtMidi.html">00046</a> <span class="keyword">class </span><a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> -<a name="l00047"></a>00047 { -<a name="l00048"></a>00048 <span class="keyword">public</span>: -<a name="l00049"></a>00049 -<a name="l00051"></a>00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5" title="Pure virtual openPort() function.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi"</span> ) ) = 0; -<a name="l00052"></a>00052 -<a name="l00054"></a>00054 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654" title="Pure virtual openVirtualPort() function.">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi"</span> ) ) = 0; -<a name="l00055"></a>00055 -<a name="l00057"></a>00057 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195" title="Pure virtual getPortCount() function.">getPortCount</a>() = 0; -<a name="l00058"></a>00058 -<a name="l00060"></a>00060 <span class="keyword">virtual</span> std::string <a class="code" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391" title="Pure virtual getPortName() function.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0; -<a name="l00061"></a>00061 -<a name="l00063"></a>00063 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a" title="Pure virtual closePort() function.">closePort</a>( <span class="keywordtype">void</span> ) = 0; -<a name="l00064"></a>00064 -<a name="l00065"></a>00065 <span class="keyword">protected</span>: +<h1>RtMidi.h</h1><a href="RtMidi_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**********************************************************************/</span> +<a name="l00037"></a>00037 <span class="comment">/**********************************************************************/</span> +<a name="l00038"></a>00038 +<a name="l00043"></a>00043 <span class="comment">// RtMidi: Version 2.0.0</span> +<a name="l00044"></a>00044 +<a name="l00045"></a>00045 <span class="preprocessor">#ifndef RTMIDI_H</span> +<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define RTMIDI_H</span> +<a name="l00047"></a>00047 <span class="preprocessor"></span> +<a name="l00048"></a>00048 <span class="preprocessor">#include "RtError.h"</span> +<a name="l00049"></a>00049 <span class="preprocessor">#include <string></span> +<a name="l00050"></a>00050 <span class="preprocessor">#include <vector></span> +<a name="l00051"></a>00051 +<a name="l00052"></a><a class="code" href="classRtMidi.html">00052</a> <span class="keyword">class </span><a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> +<a name="l00053"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">00053</a> { +<a name="l00054"></a>00054 <span class="keyword">public</span>: +<a name="l00055"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">00055</a> +<a name="l00057"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">00057</a> <span class="keyword">enum</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">Api</a> { +<a name="l00058"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">00058</a> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a>, +<a name="l00059"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">00059</a> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">MACOSX_CORE</a>, +<a name="l00060"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">00060</a> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">LINUX_ALSA</a>, +<a name="l00061"></a><a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">00061</a> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">UNIX_JACK</a>, +<a name="l00062"></a>00062 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">WINDOWS_MM</a>, +<a name="l00063"></a>00063 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">WINDOWS_KS</a>, +<a name="l00064"></a>00064 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RTMIDI_DUMMY</a> +<a name="l00065"></a>00065 }; <a name="l00066"></a>00066 -<a name="l00067"></a>00067 <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>(); -<a name="l00068"></a>00068 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>() {}; -<a name="l00069"></a>00069 -<a name="l00070"></a>00070 <span class="comment">// A basic error reporting function for internal use in the RtMidi</span> -<a name="l00071"></a>00071 <span class="comment">// subclasses. The behavior of this function can be modified to</span> -<a name="l00072"></a>00072 <span class="comment">// suit specific needs.</span> -<a name="l00073"></a>00073 <span class="keywordtype">void</span> error( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a> type ); +<a name="l00068"></a>00068 +<a name="l00073"></a>00073 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce" title="A static function to determine the available compiled MIDI APIs.">getCompiledApi</a>( std::vector<RtMidi::Api> &apis ) <span class="keywordflow">throw</span>(); <a name="l00074"></a>00074 -<a name="l00075"></a>00075 <span class="keywordtype">void</span> *apiData_; -<a name="l00076"></a>00076 <span class="keywordtype">bool</span> connected_; -<a name="l00077"></a>00077 std::string errorString_; -<a name="l00078"></a>00078 }; -<a name="l00079"></a>00079 -<a name="l00080"></a>00080 <span class="comment">/**********************************************************************/</span> -<a name="l00096"></a>00096 <span class="comment">/**********************************************************************/</span> -<a name="l00097"></a>00097 -<a name="l00098"></a>00098 <span class="preprocessor">#include <vector></span> -<a name="l00099"></a>00099 -<a name="l00100"></a><a class="code" href="classRtMidiIn.html">00100</a> <span class="keyword">class </span><a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> -<a name="l00101"></a>00101 { -<a name="l00102"></a>00102 <span class="keyword">public</span>: -<a name="l00103"></a>00103 -<a name="l00105"></a><a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">00105</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector<unsigned char> *message, <span class="keywordtype">void</span> *userData); -<a name="l00106"></a>00106 -<a name="l00108"></a>00108 -<a name="l00115"></a>00115 <a class="code" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d" title="Default constructor that allows an optional client name and queue size.">RtMidiIn</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Input Client"</span>), <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit = 100 ); +<a name="l00076"></a>00076 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5" title="Pure virtual openPort() function.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi"</span> ) ) = 0; +<a name="l00077"></a>00077 +<a name="l00079"></a>00079 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654" title="Pure virtual openVirtualPort() function.">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi"</span> ) ) = 0; +<a name="l00080"></a>00080 +<a name="l00082"></a>00082 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195" title="Pure virtual getPortCount() function.">getPortCount</a>() = 0; +<a name="l00083"></a>00083 +<a name="l00085"></a>00085 <span class="keyword">virtual</span> std::string <a class="code" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391" title="Pure virtual getPortName() function.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0; +<a name="l00086"></a>00086 +<a name="l00088"></a>00088 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a" title="Pure virtual closePort() function.">closePort</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00089"></a>00089 +<a name="l00091"></a>00091 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c" title="A basic error reporting function for RtMidi classes.">error</a>( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a> type, std::string errorString ); +<a name="l00092"></a>00092 +<a name="l00093"></a>00093 <span class="keyword">protected</span>: +<a name="l00094"></a>00094 +<a name="l00095"></a>00095 <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>() {}; +<a name="l00096"></a>00096 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>() {}; +<a name="l00097"></a>00097 }; +<a name="l00098"></a>00098 +<a name="l00099"></a>00099 <span class="comment">/**********************************************************************/</span> +<a name="l00115"></a>00115 <span class="comment">/**********************************************************************/</span> <a name="l00116"></a>00116 -<a name="l00118"></a>00118 <a class="code" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40" title="If a MIDI connection is still open, it will be closed by the destructor.">~RtMidiIn</a>(); -<a name="l00119"></a>00119 -<a name="l00121"></a>00121 -<a name="l00125"></a>00125 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string Portname = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); -<a name="l00126"></a>00126 -<a name="l00128"></a>00128 -<a name="l00134"></a>00134 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); -<a name="l00135"></a>00135 +<a name="l00117"></a>00117 <span class="comment">// **************************************************************** //</span> +<a name="l00118"></a>00118 <span class="comment">//</span> +<a name="l00119"></a>00119 <span class="comment">// RtMidiIn and RtMidiOut class declarations.</span> +<a name="l00120"></a>00120 <span class="comment">//</span> +<a name="l00121"></a>00121 <span class="comment">// RtMidiIn / RtMidiOut are "controllers" used to select an available</span> +<a name="l00122"></a>00122 <span class="comment">// MIDI input or output interface. They present common APIs for the</span> +<a name="l00123"></a>00123 <span class="comment">// user to call but all functionality is implemented by the classes</span> +<a name="l00124"></a>00124 <span class="comment">// MidiInApi, MidiOutApi and their subclasses. RtMidiIn and RtMidiOut</span> +<a name="l00125"></a>00125 <span class="comment">// each create an instance of a MidiInApi or MidiOutApi subclass based</span> +<a name="l00126"></a>00126 <span class="comment">// on the user's API choice. If no choice is made, they attempt to</span> +<a name="l00127"></a>00127 <span class="comment">// make a "logical" API selection.</span> +<a name="l00128"></a>00128 <span class="comment">//</span> +<a name="l00129"></a>00129 <span class="comment">// **************************************************************** //</span> +<a name="l00130"></a>00130 +<a name="l00131"></a>00131 <span class="keyword">class </span><a class="code" href="classMidiInApi.html">MidiInApi</a>; +<a name="l00132"></a>00132 <span class="keyword">class </span><a class="code" href="classMidiOutApi.html">MidiOutApi</a>; +<a name="l00133"></a>00133 +<a name="l00134"></a><a class="code" href="classRtMidiIn.html">00134</a> <span class="keyword">class </span><a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> +<a name="l00135"></a>00135 { +<a name="l00136"></a>00136 <span class="keyword">public</span>: <a name="l00137"></a>00137 -<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( <a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData = 0 ); -<a name="l00144"></a>00144 -<a name="l00146"></a>00146 -<a name="l00150"></a>00150 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">cancelCallback</a>(); -<a name="l00151"></a>00151 -<a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ); -<a name="l00154"></a>00154 -<a name="l00156"></a>00156 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); -<a name="l00157"></a>00157 +<a name="l00139"></a><a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">00139</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector<unsigned char> *message, <span class="keywordtype">void</span> *userData); +<a name="l00140"></a>00140 +<a name="l00142"></a>00142 +<a name="l00153"></a>00153 <a class="code" href="classRtMidiIn.html#aeeaeed8dae387dffc70e73e6e88b4d1a" title="Default constructor that allows an optional api, client name and queue size.">RtMidiIn</a>( <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> api=<a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a>, +<a name="l00154"></a>00154 <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Input Client"</span>), +<a name="l00155"></a>00155 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit = 100 ); +<a name="l00156"></a>00156 +<a name="l00158"></a>00158 <a class="code" href="classRtMidiIn.html#ae79f4da8a1b2e7efecdd1047670b27dc" title="If a MIDI connection is still open, it will be closed by the destructor.">~RtMidiIn</a> ( <span class="keywordtype">void</span> ) throw(); <a name="l00159"></a>00159 -<a name="l00162"></a>00162 std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -<a name="l00163"></a>00163 -<a name="l00165"></a>00165 -<a name="l00172"></a>00172 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiTime = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiSense = <span class="keyword">true</span> ); -<a name="l00173"></a>00173 -<a name="l00175"></a>00175 -<a name="l00182"></a>00182 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( std::vector<unsigned char> *message ); -<a name="l00183"></a>00183 -<a name="l00184"></a>00184 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> -<a name="l00185"></a>00185 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> -<a name="l00186"></a><a class="code" href="structRtMidiIn_1_1MidiMessage.html">00186</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> { -<a name="l00187"></a>00187 std::vector<unsigned char> bytes; -<a name="l00188"></a>00188 <span class="keywordtype">double</span> timeStamp; +<a name="l00161"></a>00161 <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>::<a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">Api</a> <a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164" title="Returns the MIDI API specifier for the current instance of RtMidiIn.">getCurrentApi</a>( <span class="keywordtype">void</span> ) throw(); +<a name="l00162"></a>00162 +<a name="l00164"></a>00164 +<a name="l00168"></a>00168 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, const std::<span class="keywordtype">string</span> portName = std::<span class="keywordtype">string</span>( "<a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Input" ) ); +<a name="l00169"></a>00169 +<a name="l00171"></a>00171 +<a name="l00177"></a>00177 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( const std::<span class="keywordtype">string</span> portName = std::<span class="keywordtype">string</span>( "<a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Input" ) ); +<a name="l00178"></a>00178 +<a name="l00180"></a>00180 +<a name="l00186"></a>00186 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( <a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData = 0 ); +<a name="l00187"></a>00187 <a name="l00189"></a>00189 -<a name="l00190"></a>00190 <span class="comment">// Default constructor.</span> -<a name="l00191"></a>00191 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a>() -<a name="l00192"></a>00192 :bytes(0), timeStamp(0.0) {} -<a name="l00193"></a>00193 }; +<a name="l00193"></a>00193 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">cancelCallback</a>(); <a name="l00194"></a>00194 -<a name="l00195"></a><a class="code" href="structRtMidiIn_1_1MidiQueue.html">00195</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a> { -<a name="l00196"></a>00196 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> front; -<a name="l00197"></a>00197 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> back; -<a name="l00198"></a>00198 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size; -<a name="l00199"></a>00199 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ringSize; -<a name="l00200"></a>00200 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> *ring; -<a name="l00201"></a>00201 -<a name="l00202"></a>00202 <span class="comment">// Default constructor.</span> -<a name="l00203"></a>00203 <a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a>() -<a name="l00204"></a>00204 :front(0), back(0), size(0), ringSize(0) {} -<a name="l00205"></a>00205 }; +<a name="l00196"></a>00196 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ); +<a name="l00197"></a>00197 +<a name="l00199"></a>00199 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); +<a name="l00200"></a>00200 +<a name="l00202"></a>00202 +<a name="l00205"></a>00205 std::<span class="keywordtype">string</span> <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); <a name="l00206"></a>00206 -<a name="l00207"></a>00207 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> -<a name="l00208"></a>00208 <span class="comment">// the MIDI input handling function or thread.</span> -<a name="l00209"></a><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">00209</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> { -<a name="l00210"></a>00210 <a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a> queue; -<a name="l00211"></a>00211 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> message; -<a name="l00212"></a>00212 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; -<a name="l00213"></a>00213 <span class="keywordtype">bool</span> doInput; -<a name="l00214"></a>00214 <span class="keywordtype">bool</span> firstMessage; -<a name="l00215"></a>00215 <span class="keywordtype">void</span> *apiData; -<a name="l00216"></a>00216 <span class="keywordtype">bool</span> usingCallback; -<a name="l00217"></a>00217 <span class="keywordtype">void</span> *userCallback; -<a name="l00218"></a>00218 <span class="keywordtype">void</span> *userData; -<a name="l00219"></a>00219 <span class="keywordtype">bool</span> continueSysex; -<a name="l00220"></a>00220 -<a name="l00221"></a>00221 <span class="comment">// Default constructor.</span> -<a name="l00222"></a>00222 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a>() -<a name="l00223"></a>00223 : ignoreFlags(7), doInput(<span class="keyword">false</span>), firstMessage(<span class="keyword">true</span>), -<a name="l00224"></a>00224 apiData(0), usingCallback(<span class="keyword">false</span>), userCallback(0), userData(0), -<a name="l00225"></a>00225 continueSysex(<span class="keyword">false</span>) {} -<a name="l00226"></a>00226 }; -<a name="l00227"></a>00227 -<a name="l00228"></a>00228 <span class="keyword">private</span>: -<a name="l00229"></a>00229 -<a name="l00230"></a>00230 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); -<a name="l00231"></a>00231 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> inputData_; +<a name="l00208"></a>00208 +<a name="l00215"></a>00215 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex = true, <span class="keywordtype">bool</span> midiTime = true, <span class="keywordtype">bool</span> midiSense = true ); +<a name="l00216"></a>00216 +<a name="l00218"></a>00218 +<a name="l00225"></a>00225 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( std::vector<<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>> *message ); +<a name="l00226"></a>00226 +<a name="l00227"></a>00227 protected: +<a name="l00228"></a>00228 <span class="keywordtype">void</span> openMidiApi( <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>::<a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">Api</a> api, const std::<span class="keywordtype">string</span> clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00229"></a>00229 <a class="code" href="classMidiInApi.html">MidiInApi</a> *rtapi_; +<a name="l00230"></a>00230 +<a name="l00231"></a>00231 }; <a name="l00232"></a>00232 -<a name="l00233"></a>00233 }; -<a name="l00234"></a>00234 -<a name="l00235"></a>00235 <span class="comment">/**********************************************************************/</span> +<a name="l00233"></a>00233 <span class="comment">/**********************************************************************/</span> <a name="l00247"></a>00247 <span class="comment">/**********************************************************************/</span> <a name="l00248"></a>00248 -<a name="l00249"></a><a class="code" href="classRtMidiOut.html">00249</a> <span class="keyword">class </span><a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> +<a name="l00249"></a><a class="code" href="classRtMidiOut.html">00249</a> class <a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> : public <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> <a name="l00250"></a>00250 { <a name="l00251"></a>00251 <span class="keyword">public</span>: <a name="l00252"></a>00252 <a name="l00254"></a>00254 -<a name="l00257"></a>00257 <a class="code" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3" title="Default constructor that allows an optional client name.">RtMidiOut</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Output Client"</span> ) ); -<a name="l00258"></a>00258 -<a name="l00260"></a>00260 <a class="code" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792" title="The destructor closes any open MIDI connections.">~RtMidiOut</a>(); -<a name="l00261"></a>00261 +<a name="l00261"></a>00261 <a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>( <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> api=<a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a>, +<a name="l00262"></a>00262 <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Output Client"</span>) ); <a name="l00263"></a>00263 -<a name="l00269"></a>00269 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); -<a name="l00270"></a>00270 -<a name="l00272"></a>00272 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041" title="Close an open MIDI connection (if one exists).">closePort</a>(); -<a name="l00273"></a>00273 -<a name="l00275"></a>00275 -<a name="l00283"></a>00283 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); -<a name="l00284"></a>00284 -<a name="l00286"></a>00286 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" title="Return the number of available MIDI output ports.">getPortCount</a>(); -<a name="l00287"></a>00287 -<a name="l00289"></a>00289 -<a name="l00292"></a>00292 std::string <a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -<a name="l00293"></a>00293 +<a name="l00265"></a>00265 ~<a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>( <span class="keywordtype">void</span> ) <span class="keywordflow">throw</span>(); +<a name="l00266"></a>00266 +<a name="l00268"></a>00268 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> <a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164" title="Returns the MIDI API specifier for the current instance of RtMidiIn.">getCurrentApi</a>( <span class="keywordtype">void</span> ) <span class="keywordflow">throw</span>(); +<a name="l00269"></a>00269 +<a name="l00271"></a>00271 +<a name="l00277"></a>00277 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); +<a name="l00278"></a>00278 +<a name="l00280"></a>00280 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ); +<a name="l00281"></a>00281 +<a name="l00283"></a>00283 +<a name="l00291"></a>00291 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); +<a name="l00292"></a>00292 +<a name="l00294"></a>00294 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>( <span class="keywordtype">void</span> ); <a name="l00295"></a>00295 -<a name="l00299"></a>00299 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( std::vector<unsigned char> *message ); -<a name="l00300"></a>00300 -<a name="l00301"></a>00301 <span class="keyword">private</span>: -<a name="l00302"></a>00302 -<a name="l00303"></a>00303 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); -<a name="l00304"></a>00304 }; -<a name="l00305"></a>00305 -<a name="l00306"></a>00306 <span class="preprocessor">#endif</span> +<a name="l00297"></a>00297 +<a name="l00300"></a>00300 std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); +<a name="l00301"></a>00301 +<a name="l00303"></a>00303 +<a name="l00307"></a>00307 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00308"></a>00308 +<a name="l00309"></a>00309 <span class="keyword">protected</span>: +<a name="l00310"></a>00310 <span class="keywordtype">void</span> openMidiApi( <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> api, <span class="keyword">const</span> std::string clientName ); +<a name="l00311"></a>00311 <a class="code" href="classMidiOutApi.html">MidiOutApi</a> *rtapi_; +<a name="l00312"></a>00312 }; +<a name="l00313"></a>00313 +<a name="l00314"></a>00314 +<a name="l00315"></a>00315 <span class="comment">// **************************************************************** //</span> +<a name="l00316"></a>00316 <span class="comment">//</span> +<a name="l00317"></a>00317 <span class="comment">// MidiInApi / MidiOutApi class declarations.</span> +<a name="l00318"></a>00318 <span class="comment">//</span> +<a name="l00319"></a>00319 <span class="comment">// Subclasses of MidiInApi and MidiOutApi contain all API- and</span> +<a name="l00320"></a>00320 <span class="comment">// OS-specific code necessary to fully implement the RtMidi API.</span> +<a name="l00321"></a>00321 <span class="comment">//</span> +<a name="l00322"></a>00322 <span class="comment">// Note that MidiInApi and MidiOutApi are abstract base classes and</span> +<a name="l00323"></a>00323 <span class="comment">// cannot be explicitly instantiated. RtMidiIn and RtMidiOut will</span> +<a name="l00324"></a>00324 <span class="comment">// create instances of a MidiInApi or MidiOutApi subclass.</span> +<a name="l00325"></a>00325 <span class="comment">//</span> +<a name="l00326"></a>00326 <span class="comment">// **************************************************************** //</span> +<a name="l00327"></a>00327 +<a name="l00328"></a><a class="code" href="classMidiInApi.html">00328</a> <span class="keyword">class </span><a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00329"></a>00329 { +<a name="l00330"></a>00330 <span class="keyword">public</span>: +<a name="l00331"></a>00331 +<a name="l00332"></a>00332 <a class="code" href="classMidiInApi.html">MidiInApi</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00333"></a>00333 <span class="keyword">virtual</span> ~<a class="code" href="classMidiInApi.html">MidiInApi</a>( <span class="keywordtype">void</span> ); +<a name="l00334"></a>00334 <span class="keyword">virtual</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> <a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164" title="Returns the MIDI API specifier for the current instance of RtMidiIn.">getCurrentApi</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00335"></a>00335 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) = 0; +<a name="l00336"></a>00336 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName ) = 0; +<a name="l00337"></a>00337 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00338"></a>00338 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( <a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiIn::RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData ); +<a name="l00339"></a>00339 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">cancelCallback</a>( <span class="keywordtype">void</span> ); +<a name="l00340"></a>00340 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00341"></a>00341 <span class="keyword">virtual</span> std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) = 0; +<a name="l00342"></a>00342 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex, <span class="keywordtype">bool</span> midiTime, <span class="keywordtype">bool</span> midiSense ); +<a name="l00343"></a>00343 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( std::vector<unsigned char> *message ); +<a name="l00344"></a>00344 +<a name="l00345"></a>00345 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> +<a name="l00346"></a>00346 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> +<a name="l00347"></a><a class="code" href="structMidiInApi_1_1MidiMessage.html">00347</a> <span class="keyword">struct </span><a class="code" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a> { +<a name="l00348"></a>00348 std::vector<unsigned char> bytes; +<a name="l00349"></a>00349 <span class="keywordtype">double</span> timeStamp; +<a name="l00350"></a>00350 +<a name="l00351"></a>00351 <span class="comment">// Default constructor.</span> +<a name="l00352"></a>00352 <a class="code" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a>() +<a name="l00353"></a>00353 :bytes(0), timeStamp(0.0) {} +<a name="l00354"></a>00354 }; +<a name="l00355"></a>00355 +<a name="l00356"></a><a class="code" href="structMidiInApi_1_1MidiQueue.html">00356</a> <span class="keyword">struct </span><a class="code" href="structMidiInApi_1_1MidiQueue.html">MidiQueue</a> { +<a name="l00357"></a>00357 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> front; +<a name="l00358"></a>00358 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> back; +<a name="l00359"></a>00359 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size; +<a name="l00360"></a>00360 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ringSize; +<a name="l00361"></a>00361 <a class="code" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a> *ring; +<a name="l00362"></a>00362 +<a name="l00363"></a>00363 <span class="comment">// Default constructor.</span> +<a name="l00364"></a>00364 <a class="code" href="structMidiInApi_1_1MidiQueue.html">MidiQueue</a>() +<a name="l00365"></a>00365 :front(0), back(0), size(0), ringSize(0) {} +<a name="l00366"></a>00366 }; +<a name="l00367"></a>00367 +<a name="l00368"></a>00368 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> +<a name="l00369"></a>00369 <span class="comment">// the MIDI input handling function or thread.</span> +<a name="l00370"></a><a class="code" href="structMidiInApi_1_1RtMidiInData.html">00370</a> <span class="keyword">struct </span><a class="code" href="structMidiInApi_1_1RtMidiInData.html">RtMidiInData</a> { +<a name="l00371"></a>00371 <a class="code" href="structMidiInApi_1_1MidiQueue.html">MidiQueue</a> queue; +<a name="l00372"></a>00372 <a class="code" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a> message; +<a name="l00373"></a>00373 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; +<a name="l00374"></a>00374 <span class="keywordtype">bool</span> doInput; +<a name="l00375"></a>00375 <span class="keywordtype">bool</span> firstMessage; +<a name="l00376"></a>00376 <span class="keywordtype">void</span> *apiData; +<a name="l00377"></a>00377 <span class="keywordtype">bool</span> usingCallback; +<a name="l00378"></a>00378 <span class="keywordtype">void</span> *userCallback; +<a name="l00379"></a>00379 <span class="keywordtype">void</span> *userData; +<a name="l00380"></a>00380 <span class="keywordtype">bool</span> continueSysex; +<a name="l00381"></a>00381 +<a name="l00382"></a>00382 <span class="comment">// Default constructor.</span> +<a name="l00383"></a>00383 <a class="code" href="structMidiInApi_1_1RtMidiInData.html">RtMidiInData</a>() +<a name="l00384"></a>00384 : ignoreFlags(7), doInput(<span class="keyword">false</span>), firstMessage(<span class="keyword">true</span>), +<a name="l00385"></a>00385 apiData(0), usingCallback(<span class="keyword">false</span>), userCallback(0), userData(0), +<a name="l00386"></a>00386 continueSysex(<span class="keyword">false</span>) {} +<a name="l00387"></a>00387 }; +<a name="l00388"></a>00388 +<a name="l00389"></a>00389 <span class="keyword">protected</span>: +<a name="l00390"></a>00390 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ) = 0; +<a name="l00391"></a>00391 <a class="code" href="structMidiInApi_1_1RtMidiInData.html">RtMidiInData</a> inputData_; +<a name="l00392"></a>00392 +<a name="l00393"></a>00393 <span class="keywordtype">void</span> *apiData_; +<a name="l00394"></a>00394 <span class="keywordtype">bool</span> connected_; +<a name="l00395"></a>00395 std::string errorString_; +<a name="l00396"></a>00396 }; +<a name="l00397"></a>00397 +<a name="l00398"></a><a class="code" href="classMidiOutApi.html">00398</a> <span class="keyword">class </span><a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00399"></a>00399 { +<a name="l00400"></a>00400 <span class="keyword">public</span>: +<a name="l00401"></a>00401 +<a name="l00402"></a>00402 <a class="code" href="classMidiOutApi.html">MidiOutApi</a>( <span class="keywordtype">void</span> ); +<a name="l00403"></a>00403 <span class="keyword">virtual</span> ~<a class="code" href="classMidiOutApi.html">MidiOutApi</a>( <span class="keywordtype">void</span> ); +<a name="l00404"></a>00404 <span class="keyword">virtual</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> <a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164" title="Returns the MIDI API specifier for the current instance of RtMidiIn.">getCurrentApi</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00405"></a>00405 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) = 0; +<a name="l00406"></a>00406 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName ) = 0; +<a name="l00407"></a>00407 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00408"></a>00408 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>( <span class="keywordtype">void</span> ) = 0; +<a name="l00409"></a>00409 <span class="keyword">virtual</span> std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) = 0; +<a name="l00410"></a>00410 <span class="keyword">virtual</span> <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ) = 0; +<a name="l00411"></a>00411 +<a name="l00412"></a>00412 <span class="keyword">protected</span>: +<a name="l00413"></a>00413 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ) = 0; +<a name="l00414"></a>00414 +<a name="l00415"></a>00415 <span class="keywordtype">void</span> *apiData_; +<a name="l00416"></a>00416 <span class="keywordtype">bool</span> connected_; +<a name="l00417"></a>00417 std::string errorString_; +<a name="l00418"></a>00418 }; +<a name="l00419"></a>00419 +<a name="l00420"></a>00420 <span class="comment">// **************************************************************** //</span> +<a name="l00421"></a>00421 <span class="comment">//</span> +<a name="l00422"></a>00422 <span class="comment">// Inline RtMidiIn and RtMidiOut definitions.</span> +<a name="l00423"></a>00423 <span class="comment">//</span> +<a name="l00424"></a>00424 <span class="comment">// **************************************************************** //</span> +<a name="l00425"></a>00425 +<a name="l00426"></a><a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164">00426</a> <span class="keyword">inline</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> <a class="code" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164" title="Returns the MIDI API specifier for the current instance of RtMidiIn.">RtMidiIn :: getCurrentApi</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_->getCurrentApi(); } +<a name="l00427"></a><a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c">00427</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">RtMidiIn :: openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) { <span class="keywordflow">return</span> rtapi_->openPort( portNumber, portName ); } +<a name="l00428"></a><a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">00428</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">RtMidiIn :: openVirtualPort</a>( <span class="keyword">const</span> std::string portName ) { <span class="keywordflow">return</span> rtapi_->openVirtualPort( portName ); } +<a name="l00429"></a><a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">00429</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">RtMidiIn :: closePort</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_->closePort(); } +<a name="l00430"></a><a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">00430</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">RtMidiIn :: setCallback</a>( RtMidiCallback callback, <span class="keywordtype">void</span> *userData ) { <span class="keywordflow">return</span> rtapi_->setCallback( callback, userData ); } +<a name="l00431"></a><a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">00431</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">RtMidiIn :: cancelCallback</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_->cancelCallback(); } +<a name="l00432"></a><a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">00432</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">RtMidiIn :: getPortCount</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_->getPortCount(); } +<a name="l00433"></a><a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">00433</a> <span class="keyword">inline</span> std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">RtMidiIn :: getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) { <span class="keywordflow">return</span> rtapi_->getPortName( portNumber ); } +<a name="l00434"></a><a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">00434</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">RtMidiIn :: ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex, <span class="keywordtype">bool</span> midiTime, <span class="keywordtype">bool</span> midiSense ) { <span class="keywordflow">return</span> rtapi_->ignoreTypes( midiSysex, midiTime, midiSense ); } +<a name="l00435"></a><a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">00435</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn :: getMessage</a>( std::vector<unsigned char> *message ) { <span class="keywordflow">return</span> rtapi_->getMessage( message ); } +<a name="l00436"></a>00436 +<a name="l00437"></a><a class="code" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f">00437</a> <span class="keyword">inline</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> <a class="code" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f" title="Returns the MIDI API specifier for the current instance of RtMidiOut.">RtMidiOut :: getCurrentApi</a>( <span class="keywordtype">void</span> ) throw() { <span class="keywordflow">return</span> rtapi_->getCurrentApi(); } +<a name="l00438"></a><a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">00438</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">RtMidiOut :: openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) { <span class="keywordflow">return</span> rtapi_->openPort( portNumber, portName ); } +<a name="l00439"></a><a class="code" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">00439</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">RtMidiOut :: openVirtualPort</a>( <span class="keyword">const</span> std::string portName ) { <span class="keywordflow">return</span> rtapi_->openVirtualPort( portName ); } +<a name="l00440"></a><a class="code" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8">00440</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8" title="Close an open MIDI connection (if one exists).">RtMidiOut :: closePort</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_->closePort(); } +<a name="l00441"></a><a class="code" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976">00441</a> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976" title="Return the number of available MIDI output ports.">RtMidiOut :: getPortCount</a>( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> rtapi_->getPortCount(); } +<a name="l00442"></a><a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">00442</a> <span class="keyword">inline</span> std::string <a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">RtMidiOut :: getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) { <span class="keywordflow">return</span> rtapi_->getPortName( portNumber ); } +<a name="l00443"></a><a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">00443</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">RtMidiOut :: sendMessage</a>( std::vector<unsigned char> *message ) { <span class="keywordflow">return</span> rtapi_->sendMessage( message ); } +<a name="l00444"></a>00444 +<a name="l00445"></a>00445 <span class="comment">// **************************************************************** //</span> +<a name="l00446"></a>00446 <span class="comment">//</span> +<a name="l00447"></a>00447 <span class="comment">// MidiInApi and MidiOutApi subclass prototypes.</span> +<a name="l00448"></a>00448 <span class="comment">//</span> +<a name="l00449"></a>00449 <span class="comment">// **************************************************************** //</span> +<a name="l00450"></a>00450 +<a name="l00451"></a>00451 <span class="preprocessor">#if !defined(__LINUX_ALSA__) && !defined(__UNIX_JACK__) && !defined(__MACOSX_CORE__) && !defined(__WINDOWS_MM__) && !defined(__WINDOWS_KS__)</span> +<a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor"> #define __RTMIDI_DUMMY__</span> +<a name="l00453"></a>00453 <span class="preprocessor"></span><span class="preprocessor">#endif</span> +<a name="l00454"></a>00454 <span class="preprocessor"></span> +<a name="l00455"></a>00455 <span class="preprocessor">#if defined(__MACOSX_CORE__)</span> +<a name="l00456"></a>00456 <span class="preprocessor"></span> +<a name="l00457"></a><a class="code" href="classMidiInCore.html">00457</a> <span class="keyword">class </span><a class="code" href="classMidiInCore.html">MidiInCore</a>: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00458"></a>00458 { +<a name="l00459"></a>00459 <span class="keyword">public</span>: +<a name="l00460"></a>00460 <a class="code" href="classMidiInCore.html">MidiInCore</a>( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00461"></a>00461 ~<a class="code" href="classMidiInCore.html">MidiInCore</a>( <span class="keywordtype">void</span> ); +<a name="l00462"></a>00462 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">RtMidi::MACOSX_CORE</a>; }; +<a name="l00463"></a>00463 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00464"></a>00464 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00465"></a>00465 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00466"></a>00466 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00467"></a>00467 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00468"></a>00468 +<a name="l00469"></a>00469 <span class="keyword">protected</span>: +<a name="l00470"></a>00470 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00471"></a>00471 }; +<a name="l00472"></a>00472 +<a name="l00473"></a><a class="code" href="classMidiOutCore.html">00473</a> <span class="keyword">class </span><a class="code" href="classMidiOutCore.html">MidiOutCore</a>: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00474"></a>00474 { +<a name="l00475"></a>00475 <span class="keyword">public</span>: +<a name="l00476"></a>00476 <a class="code" href="classMidiOutCore.html">MidiOutCore</a>( <span class="keyword">const</span> std::string clientName ); +<a name="l00477"></a>00477 ~<a class="code" href="classMidiOutCore.html">MidiOutCore</a>( <span class="keywordtype">void</span> ); +<a name="l00478"></a>00478 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">RtMidi::MACOSX_CORE</a>; }; +<a name="l00479"></a>00479 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00480"></a>00480 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00481"></a>00481 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00482"></a>00482 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00483"></a>00483 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00484"></a>00484 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00485"></a>00485 +<a name="l00486"></a>00486 <span class="keyword">protected</span>: +<a name="l00487"></a>00487 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00488"></a>00488 }; +<a name="l00489"></a>00489 +<a name="l00490"></a>00490 <span class="preprocessor">#endif</span> +<a name="l00491"></a>00491 <span class="preprocessor"></span> +<a name="l00492"></a>00492 <span class="preprocessor">#if defined(__UNIX_JACK__)</span> +<a name="l00493"></a>00493 <span class="preprocessor"></span> +<a name="l00494"></a><a class="code" href="classMidiInJack.html">00494</a> <span class="keyword">class </span><a class="code" href="classMidiInJack.html">MidiInJack</a>: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00495"></a>00495 { +<a name="l00496"></a>00496 <span class="keyword">public</span>: +<a name="l00497"></a>00497 <a class="code" href="classMidiInJack.html">MidiInJack</a>( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00498"></a>00498 ~<a class="code" href="classMidiInJack.html">MidiInJack</a>( <span class="keywordtype">void</span> ); +<a name="l00499"></a>00499 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">RtMidi::UNIX_JACK</a>; }; +<a name="l00500"></a>00500 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00501"></a>00501 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00502"></a>00502 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00503"></a>00503 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00504"></a>00504 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00505"></a>00505 +<a name="l00506"></a>00506 <span class="keyword">protected</span>: +<a name="l00507"></a>00507 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00508"></a>00508 }; +<a name="l00509"></a>00509 +<a name="l00510"></a><a class="code" href="classMidiOutJack.html">00510</a> <span class="keyword">class </span><a class="code" href="classMidiOutJack.html">MidiOutJack</a>: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00511"></a>00511 { +<a name="l00512"></a>00512 <span class="keyword">public</span>: +<a name="l00513"></a>00513 <a class="code" href="classMidiOutJack.html">MidiOutJack</a>( <span class="keyword">const</span> std::string clientName ); +<a name="l00514"></a>00514 ~<a class="code" href="classMidiOutJack.html">MidiOutJack</a>( <span class="keywordtype">void</span> ); +<a name="l00515"></a>00515 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">RtMidi::UNIX_JACK</a>; }; +<a name="l00516"></a>00516 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00517"></a>00517 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00518"></a>00518 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00519"></a>00519 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00520"></a>00520 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00521"></a>00521 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00522"></a>00522 +<a name="l00523"></a>00523 <span class="keyword">protected</span>: +<a name="l00524"></a>00524 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00525"></a>00525 }; +<a name="l00526"></a>00526 +<a name="l00527"></a>00527 <span class="preprocessor">#endif</span> +<a name="l00528"></a>00528 <span class="preprocessor"></span> +<a name="l00529"></a>00529 <span class="preprocessor">#if defined(__LINUX_ALSA__)</span> +<a name="l00530"></a>00530 <span class="preprocessor"></span> +<a name="l00531"></a><a class="code" href="classMidiInAlsa.html">00531</a> <span class="keyword">class </span><a class="code" href="classMidiInAlsa.html">MidiInAlsa</a>: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00532"></a>00532 { +<a name="l00533"></a>00533 <span class="keyword">public</span>: +<a name="l00534"></a>00534 <a class="code" href="classMidiInAlsa.html">MidiInAlsa</a>( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00535"></a>00535 ~<a class="code" href="classMidiInAlsa.html">MidiInAlsa</a>( <span class="keywordtype">void</span> ); +<a name="l00536"></a>00536 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">RtMidi::LINUX_ALSA</a>; }; +<a name="l00537"></a>00537 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00538"></a>00538 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00539"></a>00539 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00540"></a>00540 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00541"></a>00541 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00542"></a>00542 +<a name="l00543"></a>00543 <span class="keyword">protected</span>: +<a name="l00544"></a>00544 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00545"></a>00545 }; +<a name="l00546"></a>00546 +<a name="l00547"></a><a class="code" href="classMidiOutAlsa.html">00547</a> <span class="keyword">class </span><a class="code" href="classMidiOutAlsa.html">MidiOutAlsa</a>: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00548"></a>00548 { +<a name="l00549"></a>00549 <span class="keyword">public</span>: +<a name="l00550"></a>00550 <a class="code" href="classMidiOutAlsa.html">MidiOutAlsa</a>( <span class="keyword">const</span> std::string clientName ); +<a name="l00551"></a>00551 ~<a class="code" href="classMidiOutAlsa.html">MidiOutAlsa</a>( <span class="keywordtype">void</span> ); +<a name="l00552"></a>00552 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">RtMidi::LINUX_ALSA</a>; }; +<a name="l00553"></a>00553 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00554"></a>00554 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00555"></a>00555 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00556"></a>00556 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00557"></a>00557 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00558"></a>00558 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00559"></a>00559 +<a name="l00560"></a>00560 <span class="keyword">protected</span>: +<a name="l00561"></a>00561 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00562"></a>00562 }; +<a name="l00563"></a>00563 +<a name="l00564"></a>00564 <span class="preprocessor">#endif</span> +<a name="l00565"></a>00565 <span class="preprocessor"></span> +<a name="l00566"></a>00566 <span class="preprocessor">#if defined(__WINDOWS_MM__)</span> +<a name="l00567"></a>00567 <span class="preprocessor"></span> +<a name="l00568"></a><a class="code" href="classMidiInWinMM.html">00568</a> <span class="keyword">class </span><a class="code" href="classMidiInWinMM.html">MidiInWinMM</a>: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00569"></a>00569 { +<a name="l00570"></a>00570 <span class="keyword">public</span>: +<a name="l00571"></a>00571 <a class="code" href="classMidiInWinMM.html">MidiInWinMM</a>( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00572"></a>00572 ~<a class="code" href="classMidiInWinMM.html">MidiInWinMM</a>( <span class="keywordtype">void</span> ); +<a name="l00573"></a>00573 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">RtMidi::WINDOWS_MM</a>; }; +<a name="l00574"></a>00574 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00575"></a>00575 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00576"></a>00576 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00577"></a>00577 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00578"></a>00578 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00579"></a>00579 +<a name="l00580"></a>00580 <span class="keyword">protected</span>: +<a name="l00581"></a>00581 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00582"></a>00582 }; +<a name="l00583"></a>00583 +<a name="l00584"></a><a class="code" href="classMidiOutWinMM.html">00584</a> <span class="keyword">class </span><a class="code" href="classMidiOutWinMM.html">MidiOutWinMM</a>: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00585"></a>00585 { +<a name="l00586"></a>00586 <span class="keyword">public</span>: +<a name="l00587"></a>00587 <a class="code" href="classMidiOutWinMM.html">MidiOutWinMM</a>( <span class="keyword">const</span> std::string clientName ); +<a name="l00588"></a>00588 ~<a class="code" href="classMidiOutWinMM.html">MidiOutWinMM</a>( <span class="keywordtype">void</span> ); +<a name="l00589"></a>00589 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">RtMidi::WINDOWS_MM</a>; }; +<a name="l00590"></a>00590 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00591"></a>00591 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00592"></a>00592 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00593"></a>00593 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00594"></a>00594 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00595"></a>00595 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00596"></a>00596 +<a name="l00597"></a>00597 <span class="keyword">protected</span>: +<a name="l00598"></a>00598 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00599"></a>00599 }; +<a name="l00600"></a>00600 +<a name="l00601"></a>00601 <span class="preprocessor">#endif</span> +<a name="l00602"></a>00602 <span class="preprocessor"></span> +<a name="l00603"></a>00603 <span class="preprocessor">#if defined(__WINDOWS_KS__)</span> +<a name="l00604"></a>00604 <span class="preprocessor"></span> +<a name="l00605"></a><a class="code" href="classMidiInWinKS.html">00605</a> <span class="keyword">class </span><a class="code" href="classMidiInWinKS.html">MidiInWinKS</a>: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00606"></a>00606 { +<a name="l00607"></a>00607 <span class="keyword">public</span>: +<a name="l00608"></a>00608 <a class="code" href="classMidiInWinKS.html">MidiInWinKS</a>( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ); +<a name="l00609"></a>00609 ~<a class="code" href="classMidiInWinKS.html">MidiInWinKS</a>( <span class="keywordtype">void</span> ); +<a name="l00610"></a>00610 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">RtMidi::WINDOWS_KS</a>; }; +<a name="l00611"></a>00611 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00612"></a>00612 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00613"></a>00613 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00614"></a>00614 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00615"></a>00615 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00616"></a>00616 +<a name="l00617"></a>00617 <span class="keyword">protected</span>: +<a name="l00618"></a>00618 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00619"></a>00619 }; +<a name="l00620"></a>00620 +<a name="l00621"></a><a class="code" href="classMidiOutWinKS.html">00621</a> <span class="keyword">class </span><a class="code" href="classMidiOutWinKS.html">MidiOutWinKS</a>: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00622"></a>00622 { +<a name="l00623"></a>00623 <span class="keyword">public</span>: +<a name="l00624"></a>00624 <a class="code" href="classMidiOutWinKS.html">MidiOutWinKS</a>( <span class="keyword">const</span> std::string clientName ); +<a name="l00625"></a>00625 ~<a class="code" href="classMidiOutWinKS.html">MidiOutWinKS</a>( <span class="keywordtype">void</span> ); +<a name="l00626"></a>00626 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">RtMidi::WINDOWS_KS</a>; }; +<a name="l00627"></a>00627 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ); +<a name="l00628"></a>00628 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ); +<a name="l00629"></a>00629 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ); +<a name="l00630"></a>00630 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ); +<a name="l00631"></a>00631 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00632"></a>00632 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ); +<a name="l00633"></a>00633 +<a name="l00634"></a>00634 <span class="keyword">protected</span>: +<a name="l00635"></a>00635 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00636"></a>00636 }; +<a name="l00637"></a>00637 +<a name="l00638"></a>00638 <span class="preprocessor">#endif</span> +<a name="l00639"></a>00639 <span class="preprocessor"></span> +<a name="l00640"></a>00640 <span class="preprocessor">#if defined(__RTMIDI_DUMMY__)</span> +<a name="l00641"></a>00641 <span class="preprocessor"></span> +<a name="l00642"></a>00642 <span class="keyword">class </span>MidiInDummy: <span class="keyword">public</span> <a class="code" href="classMidiInApi.html">MidiInApi</a> +<a name="l00643"></a>00643 { +<a name="l00644"></a>00644 <span class="keyword">public</span>: +<a name="l00645"></a>00645 MidiInDummy( <span class="keyword">const</span> std::string clientName, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit ) : <a class="code" href="classMidiInApi.html">MidiInApi</a>( queueSizeLimit ) { errorString_ = <span class="stringliteral">"MidiInDummy: This class provides no functionality."</span>; <a class="code" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c" title="A basic error reporting function for RtMidi classes.">RtMidi::error</a>( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError::WARNING</a>, errorString_ ); }; +<a name="l00646"></a>00646 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RtMidi::RTMIDI_DUMMY</a>; }; +<a name="l00647"></a>00647 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) {}; +<a name="l00648"></a>00648 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ) {}; +<a name="l00649"></a>00649 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ) {}; +<a name="l00650"></a>00650 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> 0; }; +<a name="l00651"></a>00651 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) { <span class="keywordflow">return</span> <span class="stringliteral">""</span>; }; +<a name="l00652"></a>00652 +<a name="l00653"></a>00653 <span class="keyword">protected</span>: +<a name="l00654"></a>00654 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ) {}; +<a name="l00655"></a>00655 }; +<a name="l00656"></a>00656 +<a name="l00657"></a>00657 <span class="keyword">class </span>MidiOutDummy: <span class="keyword">public</span> <a class="code" href="classMidiOutApi.html">MidiOutApi</a> +<a name="l00658"></a>00658 { +<a name="l00659"></a>00659 <span class="keyword">public</span>: +<a name="l00660"></a>00660 MidiOutDummy( <span class="keyword">const</span> std::string clientName ) { errorString_ = <span class="stringliteral">"MidiOutDummy: This class provides no functionality."</span>; <a class="code" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c" title="A basic error reporting function for RtMidi classes.">RtMidi::error</a>( <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError::WARNING</a>, errorString_ ); }; +<a name="l00661"></a>00661 <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406" title="MIDI API specifier arguments.">RtMidi::Api</a> getCurrentApi( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> <a class="code" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RtMidi::RTMIDI_DUMMY</a>; }; +<a name="l00662"></a>00662 <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber, <span class="keyword">const</span> std::string portName ) {}; +<a name="l00663"></a>00663 <span class="keywordtype">void</span> openVirtualPort( <span class="keyword">const</span> std::string portName ) {}; +<a name="l00664"></a>00664 <span class="keywordtype">void</span> closePort( <span class="keywordtype">void</span> ) {}; +<a name="l00665"></a>00665 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPortCount( <span class="keywordtype">void</span> ) { <span class="keywordflow">return</span> 0; }; +<a name="l00666"></a>00666 std::string getPortName( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ) { <span class="keywordflow">return</span> <span class="stringliteral">""</span>; }; +<a name="l00667"></a>00667 <span class="keywordtype">void</span> sendMessage( std::vector<unsigned char> *message ) {}; +<a name="l00668"></a>00668 +<a name="l00669"></a>00669 <span class="keyword">protected</span>: +<a name="l00670"></a>00670 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ) {}; +<a name="l00671"></a>00671 }; +<a name="l00672"></a>00672 +<a name="l00673"></a>00673 <span class="preprocessor">#endif</span> +<a name="l00674"></a>00674 <span class="preprocessor"></span> +<a name="l00675"></a>00675 <span class="preprocessor">#endif</span> </pre></div></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/annotated.html b/doc/html/annotated.html index 9ce3d99..894c735 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -10,19 +10,31 @@ <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table> - <tr><td class="indexkey"><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a></td><td class="indexvalue"></td></tr> - <tr><td class="indexkey"><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInAlsa.html">MidiInAlsa</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInApi.html">MidiInApi</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInCore.html">MidiInCore</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInJack.html">MidiInJack</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInWinKS.html">MidiInWinKS</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiInWinMM.html">MidiInWinMM</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiInApi::MidiMessage</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutAlsa.html">MidiOutAlsa</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutApi.html">MidiOutApi</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutCore.html">MidiOutCore</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutJack.html">MidiOutJack</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutWinKS.html">MidiOutWinKS</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="classMidiOutWinMM.html">MidiOutWinMM</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiInApi::MidiQueue</a></td><td class="indexvalue"></td></tr> <tr><td class="indexkey"><a class="el" href="classRtError.html">RtError</a></td><td class="indexvalue">Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> </td></tr> <tr><td class="indexkey"><a class="el" href="classRtMidi.html">RtMidi</a></td><td class="indexvalue">An abstract base class for realtime MIDI input/output </td></tr> <tr><td class="indexkey"><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td class="indexvalue">A realtime MIDI input class </td></tr> - <tr><td class="indexkey"><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structMidiInApi_1_1RtMidiInData.html">MidiInApi::RtMidiInData</a></td><td class="indexvalue"></td></tr> <tr><td class="indexkey"><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td class="indexvalue">A realtime MIDI output class </td></tr> </table> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classMidiInAlsa-members.html b/doc/html/classMidiInAlsa-members.html new file mode 100644 index 0000000..f4e228e --- /dev/null +++ b/doc/html/classMidiInAlsa-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInAlsa Member List</h1>This is the complete list of members for <a class="el" href="classMidiInAlsa.html">MidiInAlsa</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInAlsa.html b/doc/html/classMidiInAlsa.html new file mode 100644 index 0000000..ceb57ea --- /dev/null +++ b/doc/html/classMidiInAlsa.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInAlsa Class Reference</h1><!-- doxytag: class="MidiInAlsa" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInAlsa:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInAlsa.png" usemap="#MidiInAlsa_map" alt=""/> + <map id="MidiInAlsa_map" name="MidiInAlsa_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,71,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInAlsa-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInAlsa.png b/doc/html/classMidiInAlsa.png Binary files differnew file mode 100644 index 0000000..b84f1d1 --- /dev/null +++ b/doc/html/classMidiInAlsa.png diff --git a/doc/html/classMidiInApi-members.html b/doc/html/classMidiInApi-members.html new file mode 100644 index 0000000..2b30917 --- /dev/null +++ b/doc/html/classMidiInApi-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInApi Member List</h1>This is the complete list of members for <a class="el" href="classMidiInApi.html">MidiInApi</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInApi.html b/doc/html/classMidiInApi.html new file mode 100644 index 0000000..177233b --- /dev/null +++ b/doc/html/classMidiInApi.html @@ -0,0 +1,46 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInApi Class Reference</h1><!-- doxytag: class="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInApi:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInApi.png" usemap="#MidiInApi_map" alt=""/> + <map id="MidiInApi_map" name="MidiInApi_map"> +<area href="classMidiInAlsa.html" alt="MidiInAlsa" shape="rect" coords="0,56,89,80"/> +<area href="classMidiInCore.html" alt="MidiInCore" shape="rect" coords="99,56,188,80"/> +<area href="classMidiInJack.html" alt="MidiInJack" shape="rect" coords="198,56,287,80"/> +<area href="classMidiInWinKS.html" alt="MidiInWinKS" shape="rect" coords="297,56,386,80"/> +<area href="classMidiInWinMM.html" alt="MidiInWinMM" shape="rect" coords="396,56,485,80"/> +</map> + </div> +</div> + +<p><a href="classMidiInApi-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +<tr><td colspan="2"><h2>Classes</h2></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiQueue</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structMidiInApi_1_1RtMidiInData.html">RtMidiInData</a></td></tr> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInApi.png b/doc/html/classMidiInApi.png Binary files differnew file mode 100644 index 0000000..573ae37 --- /dev/null +++ b/doc/html/classMidiInApi.png diff --git a/doc/html/classMidiInCore-members.html b/doc/html/classMidiInCore-members.html new file mode 100644 index 0000000..9969f57 --- /dev/null +++ b/doc/html/classMidiInCore-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInCore Member List</h1>This is the complete list of members for <a class="el" href="classMidiInCore.html">MidiInCore</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInCore.html b/doc/html/classMidiInCore.html new file mode 100644 index 0000000..cc31145 --- /dev/null +++ b/doc/html/classMidiInCore.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInCore Class Reference</h1><!-- doxytag: class="MidiInCore" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInCore:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInCore.png" usemap="#MidiInCore_map" alt=""/> + <map id="MidiInCore_map" name="MidiInCore_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,74,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInCore-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInCore.png b/doc/html/classMidiInCore.png Binary files differnew file mode 100644 index 0000000..65f2174 --- /dev/null +++ b/doc/html/classMidiInCore.png diff --git a/doc/html/classMidiInDummy-members.html b/doc/html/classMidiInDummy-members.html new file mode 100644 index 0000000..3c8d88e --- /dev/null +++ b/doc/html/classMidiInDummy-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInDummy Member List</h1>This is the complete list of members for <a class="el" href="classMidiInDummy.html">MidiInDummy</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInDummy.html b/doc/html/classMidiInDummy.html new file mode 100644 index 0000000..cb22287 --- /dev/null +++ b/doc/html/classMidiInDummy.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInDummy Class Reference</h1><!-- doxytag: class="MidiInDummy" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInDummy:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInDummy.png" usemap="#MidiInDummy_map" alt=""/> + <map id="MidiInDummy_map" name="MidiInDummy_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,87,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInDummy-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInDummy.png b/doc/html/classMidiInDummy.png Binary files differnew file mode 100644 index 0000000..b0bb7b5 --- /dev/null +++ b/doc/html/classMidiInDummy.png diff --git a/doc/html/classMidiInJack-members.html b/doc/html/classMidiInJack-members.html new file mode 100644 index 0000000..26f5eb3 --- /dev/null +++ b/doc/html/classMidiInJack-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInJack Member List</h1>This is the complete list of members for <a class="el" href="classMidiInJack.html">MidiInJack</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInJack.html b/doc/html/classMidiInJack.html new file mode 100644 index 0000000..04b90bb --- /dev/null +++ b/doc/html/classMidiInJack.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInJack Class Reference</h1><!-- doxytag: class="MidiInJack" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInJack:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInJack.png" usemap="#MidiInJack_map" alt=""/> + <map id="MidiInJack_map" name="MidiInJack_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,73,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInJack-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInJack.png b/doc/html/classMidiInJack.png Binary files differnew file mode 100644 index 0000000..fa5a008 --- /dev/null +++ b/doc/html/classMidiInJack.png diff --git a/doc/html/classMidiInWinKS-members.html b/doc/html/classMidiInWinKS-members.html new file mode 100644 index 0000000..4d0fdfb --- /dev/null +++ b/doc/html/classMidiInWinKS-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInWinKS Member List</h1>This is the complete list of members for <a class="el" href="classMidiInWinKS.html">MidiInWinKS</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInWinKS.html b/doc/html/classMidiInWinKS.html new file mode 100644 index 0000000..a10fac2 --- /dev/null +++ b/doc/html/classMidiInWinKS.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInWinKS Class Reference</h1><!-- doxytag: class="MidiInWinKS" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInWinKS:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInWinKS.png" usemap="#MidiInWinKS_map" alt=""/> + <map id="MidiInWinKS_map" name="MidiInWinKS_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,83,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInWinKS-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInWinKS.png b/doc/html/classMidiInWinKS.png Binary files differnew file mode 100644 index 0000000..b79159b --- /dev/null +++ b/doc/html/classMidiInWinKS.png diff --git a/doc/html/classMidiInWinMM-members.html b/doc/html/classMidiInWinMM-members.html new file mode 100644 index 0000000..1e98845 --- /dev/null +++ b/doc/html/classMidiInWinMM-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInWinMM Member List</h1>This is the complete list of members for <a class="el" href="classMidiInWinMM.html">MidiInWinMM</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInWinMM.html b/doc/html/classMidiInWinMM.html new file mode 100644 index 0000000..775cb1d --- /dev/null +++ b/doc/html/classMidiInWinMM.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInWinMM Class Reference</h1><!-- doxytag: class="MidiInWinMM" --><!-- doxytag: inherits="MidiInApi" --><div class="dynheader"> +Inheritance diagram for MidiInWinMM:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiInWinMM.png" usemap="#MidiInWinMM_map" alt=""/> + <map id="MidiInWinMM_map" name="MidiInWinMM_map"> +<area href="classMidiInApi.html" alt="MidiInApi" shape="rect" coords="0,0,89,24"/> +</map> + </div> +</div> + +<p><a href="classMidiInWinMM-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiInWinMM.png b/doc/html/classMidiInWinMM.png Binary files differnew file mode 100644 index 0000000..6321dda --- /dev/null +++ b/doc/html/classMidiInWinMM.png diff --git a/doc/html/classMidiOutAlsa-members.html b/doc/html/classMidiOutAlsa-members.html new file mode 100644 index 0000000..239ad31 --- /dev/null +++ b/doc/html/classMidiOutAlsa-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutAlsa Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutAlsa.html">MidiOutAlsa</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutAlsa.html b/doc/html/classMidiOutAlsa.html new file mode 100644 index 0000000..0095a98 --- /dev/null +++ b/doc/html/classMidiOutAlsa.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutAlsa Class Reference</h1><!-- doxytag: class="MidiOutAlsa" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutAlsa:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutAlsa.png" usemap="#MidiOutAlsa_map" alt=""/> + <map id="MidiOutAlsa_map" name="MidiOutAlsa_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,81,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutAlsa-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutAlsa.png b/doc/html/classMidiOutAlsa.png Binary files differnew file mode 100644 index 0000000..39453e2 --- /dev/null +++ b/doc/html/classMidiOutAlsa.png diff --git a/doc/html/classMidiOutApi-members.html b/doc/html/classMidiOutApi-members.html new file mode 100644 index 0000000..8525987 --- /dev/null +++ b/doc/html/classMidiOutApi-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutApi Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutApi.html">MidiOutApi</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutApi.html b/doc/html/classMidiOutApi.html new file mode 100644 index 0000000..85a3766 --- /dev/null +++ b/doc/html/classMidiOutApi.html @@ -0,0 +1,42 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutApi Class Reference</h1><!-- doxytag: class="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutApi:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutApi.png" usemap="#MidiOutApi_map" alt=""/> + <map id="MidiOutApi_map" name="MidiOutApi_map"> +<area href="classMidiOutAlsa.html" alt="MidiOutAlsa" shape="rect" coords="0,56,99,80"/> +<area href="classMidiOutCore.html" alt="MidiOutCore" shape="rect" coords="109,56,208,80"/> +<area href="classMidiOutJack.html" alt="MidiOutJack" shape="rect" coords="218,56,317,80"/> +<area href="classMidiOutWinKS.html" alt="MidiOutWinKS" shape="rect" coords="327,56,426,80"/> +<area href="classMidiOutWinMM.html" alt="MidiOutWinMM" shape="rect" coords="436,56,535,80"/> +</map> + </div> +</div> + +<p><a href="classMidiOutApi-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutApi.png b/doc/html/classMidiOutApi.png Binary files differnew file mode 100644 index 0000000..814fc29 --- /dev/null +++ b/doc/html/classMidiOutApi.png diff --git a/doc/html/classMidiOutCore-members.html b/doc/html/classMidiOutCore-members.html new file mode 100644 index 0000000..7e1b4f9 --- /dev/null +++ b/doc/html/classMidiOutCore-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutCore Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutCore.html">MidiOutCore</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutCore.html b/doc/html/classMidiOutCore.html new file mode 100644 index 0000000..4bc3967 --- /dev/null +++ b/doc/html/classMidiOutCore.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutCore Class Reference</h1><!-- doxytag: class="MidiOutCore" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutCore:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutCore.png" usemap="#MidiOutCore_map" alt=""/> + <map id="MidiOutCore_map" name="MidiOutCore_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,84,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutCore-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutCore.png b/doc/html/classMidiOutCore.png Binary files differnew file mode 100644 index 0000000..a96f3e3 --- /dev/null +++ b/doc/html/classMidiOutCore.png diff --git a/doc/html/classMidiOutDummy-members.html b/doc/html/classMidiOutDummy-members.html new file mode 100644 index 0000000..bb78664 --- /dev/null +++ b/doc/html/classMidiOutDummy-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutDummy Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutDummy.html">MidiOutDummy</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutDummy.html b/doc/html/classMidiOutDummy.html new file mode 100644 index 0000000..7219f9c --- /dev/null +++ b/doc/html/classMidiOutDummy.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutDummy Class Reference</h1><!-- doxytag: class="MidiOutDummy" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutDummy:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutDummy.png" usemap="#MidiOutDummy_map" alt=""/> + <map id="MidiOutDummy_map" name="MidiOutDummy_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,97,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutDummy-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutDummy.png b/doc/html/classMidiOutDummy.png Binary files differnew file mode 100644 index 0000000..c49611f --- /dev/null +++ b/doc/html/classMidiOutDummy.png diff --git a/doc/html/classMidiOutJack-members.html b/doc/html/classMidiOutJack-members.html new file mode 100644 index 0000000..0015061 --- /dev/null +++ b/doc/html/classMidiOutJack-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutJack Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutJack.html">MidiOutJack</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutJack.html b/doc/html/classMidiOutJack.html new file mode 100644 index 0000000..c333501 --- /dev/null +++ b/doc/html/classMidiOutJack.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutJack Class Reference</h1><!-- doxytag: class="MidiOutJack" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutJack:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutJack.png" usemap="#MidiOutJack_map" alt=""/> + <map id="MidiOutJack_map" name="MidiOutJack_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,83,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutJack-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutJack.png b/doc/html/classMidiOutJack.png Binary files differnew file mode 100644 index 0000000..c2f0acf --- /dev/null +++ b/doc/html/classMidiOutJack.png diff --git a/doc/html/classMidiOutWinKS-members.html b/doc/html/classMidiOutWinKS-members.html new file mode 100644 index 0000000..0ce4b0e --- /dev/null +++ b/doc/html/classMidiOutWinKS-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutWinKS Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutWinKS.html">MidiOutWinKS</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutWinKS.html b/doc/html/classMidiOutWinKS.html new file mode 100644 index 0000000..7d84752 --- /dev/null +++ b/doc/html/classMidiOutWinKS.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutWinKS Class Reference</h1><!-- doxytag: class="MidiOutWinKS" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutWinKS:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutWinKS.png" usemap="#MidiOutWinKS_map" alt=""/> + <map id="MidiOutWinKS_map" name="MidiOutWinKS_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,93,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutWinKS-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutWinKS.png b/doc/html/classMidiOutWinKS.png Binary files differnew file mode 100644 index 0000000..b29a183 --- /dev/null +++ b/doc/html/classMidiOutWinKS.png diff --git a/doc/html/classMidiOutWinMM-members.html b/doc/html/classMidiOutWinMM-members.html new file mode 100644 index 0000000..ddd3880 --- /dev/null +++ b/doc/html/classMidiOutWinMM-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutWinMM Member List</h1>This is the complete list of members for <a class="el" href="classMidiOutWinMM.html">MidiOutWinMM</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutWinMM.html b/doc/html/classMidiOutWinMM.html new file mode 100644 index 0000000..d72b8d7 --- /dev/null +++ b/doc/html/classMidiOutWinMM.html @@ -0,0 +1,38 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiOutWinMM Class Reference</h1><!-- doxytag: class="MidiOutWinMM" --><!-- doxytag: inherits="MidiOutApi" --><div class="dynheader"> +Inheritance diagram for MidiOutWinMM:</div> +<div class="dynsection"> + <div class="center"> + <img src="classMidiOutWinMM.png" usemap="#MidiOutWinMM_map" alt=""/> + <map id="MidiOutWinMM_map" name="MidiOutWinMM_map"> +<area href="classMidiOutApi.html" alt="MidiOutApi" shape="rect" coords="0,0,99,24"/> +</map> + </div> +</div> + +<p><a href="classMidiOutWinMM-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/classMidiOutWinMM.png b/doc/html/classMidiOutWinMM.png Binary files differnew file mode 100644 index 0000000..b66c0e0 --- /dev/null +++ b/doc/html/classMidiOutWinMM.png diff --git a/doc/html/classRtError-members.html b/doc/html/classRtError-members.html index a2ee4a5..e7656c7 100644 --- a/doc/html/classRtError-members.html +++ b/doc/html/classRtError-members.html @@ -32,7 +32,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtError.html b/doc/html/classRtError.html index 4aec2d8..f124723 100644 --- a/doc/html/classRtError.html +++ b/doc/html/classRtError.html @@ -119,7 +119,7 @@ virtual const char * </td><td class="memItemRight" valign="bottom"><a class <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidi-members.html b/doc/html/classRtMidi-members.html index 17a5d6c..9ff6b2e 100644 --- a/doc/html/classRtMidi-members.html +++ b/doc/html/classRtMidi-members.html @@ -10,16 +10,26 @@ <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> <h1>RtMidi Member List</h1>This is the complete list of members for <a class="el" href="classRtMidi.html">RtMidi</a>, including all inherited members.<table> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">Api</a> enum name</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a">closePort</a>(void)=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">error</a>(RtError::Type type, std::string errorString)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">getCompiledApi</a>(std::vector< RtMidi::Api > &apis)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">getPortCount</a>()=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">getPortName</a>(unsigned int portNumber=0)=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">LINUX_ALSA</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">MACOSX_CORE</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">openPort</a>(unsigned int portNumber=0, const std::string portName=std::string("RtMidi"))=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">openVirtualPort</a>(const std::string portName=std::string("RtMidi"))=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RTMIDI_DUMMY</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">UNIX_JACK</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">WINDOWS_KS</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">WINDOWS_MM</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidi.html b/doc/html/classRtMidi.html index 43e3f9d..0f8b485 100644 --- a/doc/html/classRtMidi.html +++ b/doc/html/classRtMidi.html @@ -28,6 +28,20 @@ Inheritance diagram for RtMidi:</div> <p><a href="classRtMidi-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> +<tr><td colspan="2"><h2>Public Types</h2></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">Api</a> { <br/> + <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a>, +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">MACOSX_CORE</a>, +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">LINUX_ALSA</a>, +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">UNIX_JACK</a>, +<br/> + <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">WINDOWS_MM</a>, +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">WINDOWS_KS</a>, +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RTMIDI_DUMMY</a> +<br/> + }</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>MIDI API specifier arguments. </p> + <a href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9e30a89638f93193cb40edebaa536f5"></a><!-- doxytag: member="RtMidi::openPort" ref="ad9e30a89638f93193cb40edebaa536f5" args="(unsigned int portNumber=0, const std::string portName=std::string("RtMidi"))=0" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">openPort</a> (unsigned int portNumber=0, const std::string portName=std::string("RtMidi"))=0</td></tr> @@ -44,16 +58,85 @@ virtual std::string </td><td class="memItemRight" valign="bottom"><a class= <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36125c4fa16550345b57f4a4927f5b4a"></a><!-- doxytag: member="RtMidi::closePort" ref="a36125c4fa16550345b57f4a4927f5b4a" args="(void)=0" --> virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a">closePort</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a" title="Pure virtual closePort() function.">closePort()</a> function. <br/></td></tr> +<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">getCompiledApi</a> (std::vector< <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> > &apis) throw ()</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">A static function to determine the available compiled MIDI APIs. <a href="#a025fa339486c9a34b26ec707aa2944ce"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1a810e84c57b2eb4989056cb384a04c"></a><!-- doxytag: member="RtMidi::error" ref="ae1a810e84c57b2eb4989056cb384a04c" args="(RtError::Type type, std::string errorString)" --> +static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">error</a> (<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError::Type</a> type, std::string errorString)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">A basic error reporting function for <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> classes. <br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>An abstract base class for realtime MIDI input/output. </p> <p>This class implements some common functionality for the realtime MIDI input/output subclasses <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>.</p> <p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> WWW site: <a href="http://music.mcgill.ca/~gary/rtmidi/">http://music.mcgill.ca/~gary/rtmidi/</a></p> -<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>: realtime MIDI i/o C++ classes Copyright (c) 2003-2011 Gary P. Scavone</p> +<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>: realtime MIDI i/o C++ classes Copyright (c) 2003-2012 Gary P. Scavone</p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> -<p>Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version.</p> +<p>Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </p> +<hr/><h2>Member Enumeration Documentation</h2> +<a class="anchor" id="aac66af04a85fe5c5f07c360574a19406"></a><!-- doxytag: member="RtMidi::Api" ref="aac66af04a85fe5c5f07c360574a19406" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">enum <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>MIDI API specifier arguments. </p> +<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9"></a><!-- doxytag: member="UNSPECIFIED" ref="aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9" args="" -->UNSPECIFIED</em> </td><td> +<p>Search for a working compiled API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908"></a><!-- doxytag: member="MACOSX_CORE" ref="aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908" args="" -->MACOSX_CORE</em> </td><td> +<p>Macintosh OS-X Core Midi API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2"></a><!-- doxytag: member="LINUX_ALSA" ref="aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2" args="" -->LINUX_ALSA</em> </td><td> +<p>The Advanced Linux Sound Architecture API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa"></a><!-- doxytag: member="UNIX_JACK" ref="aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa" args="" -->UNIX_JACK</em> </td><td> +<p>The Jack Low-Latency MIDI Server API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f"></a><!-- doxytag: member="WINDOWS_MM" ref="aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f" args="" -->WINDOWS_MM</em> </td><td> +<p>The Microsoft Multimedia MIDI API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756"></a><!-- doxytag: member="WINDOWS_KS" ref="aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756" args="" -->WINDOWS_KS</em> </td><td> +<p>The Microsoft Kernel Streaming MIDI API. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959"></a><!-- doxytag: member="RTMIDI_DUMMY" ref="aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959" args="" -->RTMIDI_DUMMY</em> </td><td> +<p>A compilable but non-functional API. </p> +</td></tr> +</table> +</dd> +</dl> + +</div> +</div> +<hr/><h2>Member Function Documentation</h2> +<a class="anchor" id="a025fa339486c9a34b26ec707aa2944ce"></a><!-- doxytag: member="RtMidi::getCompiledApi" ref="a025fa339486c9a34b26ec707aa2944ce" args="(std::vector< RtMidi::Api > &apis)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static void RtMidi::getCompiledApi </td> + <td>(</td> + <td class="paramtype">std::vector< <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> > & </td> + <td class="paramname"> <em>apis</em></td> + <td> ) </td> + <td> throw ()<code> [static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>A static function to determine the available compiled MIDI APIs. </p> +<p>The values returned in the std::vector can be compared against the enumerated list values. Note that there can be more than one API compiled for certain operating systems. </p> + +</div> +</div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> </ul> @@ -61,7 +144,7 @@ virtual void </td><td class="memItemRight" valign="bottom"><a class="el" hr <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiIn-members.html b/doc/html/classRtMidiIn-members.html index 4cb8ef3..c632f31 100644 --- a/doc/html/classRtMidiIn-members.html +++ b/doc/html/classRtMidiIn-members.html @@ -10,23 +10,34 @@ <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> <h1>RtMidiIn Member List</h1>This is the complete list of members for <a class="el" href="classRtMidiIn.html">RtMidiIn</a>, including all inherited members.<table> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">cancelCallback</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">closePort</a>(void)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">getMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">getPortCount</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">getPortName</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">ignoreTypes</a>(bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">openPort</a>(unsigned int portNumber=0, const std::string Portname=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">openVirtualPort</a>(const std::string portName=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">Api</a> enum name</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">cancelCallback</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">closePort</a>(void)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">error</a>(RtError::Type type, std::string errorString)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">getCompiledApi</a>(std::vector< RtMidi::Api > &apis)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164">getCurrentApi</a>(void)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">getMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">getPortCount</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">getPortName</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">ignoreTypes</a>(bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">LINUX_ALSA</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">MACOSX_CORE</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c">openPort</a>(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">openVirtualPort</a>(const std::string portName=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RTMIDI_DUMMY</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> typedef</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a>(const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">setCallback</a>(RtMidiCallback callback, void *userData=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#aeeaeed8dae387dffc70e73e6e88b4d1a">RtMidiIn</a>(RtMidi::Api api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">setCallback</a>(RtMidiCallback callback, void *userData=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">UNIX_JACK</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">WINDOWS_KS</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">WINDOWS_MM</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#ae79f4da8a1b2e7efecdd1047670b27dc">~RtMidiIn</a>(void)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiIn.html b/doc/html/classRtMidiIn.html index 241fd88..9eaabcd 100644 --- a/doc/html/classRtMidiIn.html +++ b/doc/html/classRtMidiIn.html @@ -27,22 +27,21 @@ Inheritance diagram for RtMidiIn:</div> <p><a href="classRtMidiIn-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> -<tr><td colspan="2"><h2>Classes</h2></td></tr> -<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a></td></tr> -<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a></td></tr> -<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a></td></tr> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a297d2eb3c3420b437970a6fc59d89cbf"></a><!-- doxytag: member="RtMidiIn::RtMidiCallback" ref="a297d2eb3c3420b437970a6fc59d89cbf" args=")(double timeStamp, std::vector< unsigned char > *message, void *userData)" --> typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> )(double timeStamp, std::vector< unsigned char > *message, void *userData)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">User callback function type definition. <br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> (const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name and queue size. <a href="#a1d70da3ef18d24c5b3f0cc01888e093d"></a><br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af865d88c154b6fdadc640da5dc278d40"></a><!-- doxytag: member="RtMidiIn::~RtMidiIn" ref="af865d88c154b6fdadc640da5dc278d40" args="()" --> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a> ()</td></tr> +<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#aeeaeed8dae387dffc70e73e6e88b4d1a">RtMidiIn</a> (<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional api, client name and queue size. <a href="#aeeaeed8dae387dffc70e73e6e88b4d1a"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae79f4da8a1b2e7efecdd1047670b27dc"></a><!-- doxytag: member="RtMidiIn::~RtMidiIn" ref="ae79f4da8a1b2e7efecdd1047670b27dc" args="(void)" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#ae79f4da8a1b2e7efecdd1047670b27dc">~RtMidiIn</a> (void) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If a MIDI connection is still open, it will be closed by the destructor. <br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">openPort</a> (unsigned int portNumber=0, const std::string Portname=std::string("RtMidi Input"))</td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a MIDI input connection. <a href="#a7e853661b1056083e07318d67c51f6fd"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6475a11eeb0c8bf22157c3887b100164"></a><!-- doxytag: member="RtMidiIn::getCurrentApi" ref="a6475a11eeb0c8bf22157c3887b100164" args="(void)" --> +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164">getCurrentApi</a> (void) throw ()</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the MIDI API specifier for the current instance of <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a>. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c">openPort</a> (unsigned int portNumber=0, const std::string portName=std::string("RtMidi Input"))</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a MIDI input connection. <a href="#a39df8f81a22f729a9904707dde487d2c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">openVirtualPort</a> (const std::string portName=std::string("RtMidi Input"))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a virtual input port, with optional name, to allow software connections (OS X and ALSA only). <a href="#a245261b3f12ce727faed18fcfeef18c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">setCallback</a> (<a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> callback, void *userData=0)</td></tr> @@ -65,15 +64,21 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A realtime MIDI input class. </p> <p>This class provides a common, platform-independent API for realtime MIDI input. It allows access to a single MIDI input port. Incoming MIDI messages are either saved to a queue for retrieval using the <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage()</a> function or immediately passed to a user-specified callback function. Create multiple instances of this class to connect to more than one MIDI device at the same time. With the OS-X and Linux ALSA MIDI APIs, it is also possible to open a virtual input port to which other MIDI software clients can connect.</p> -<p>by Gary P. Scavone, 2003-2008. </p> +<p>by Gary P. Scavone, 2003-2012. </p> <hr/><h2>Constructor & Destructor Documentation</h2> -<a class="anchor" id="a1d70da3ef18d24c5b3f0cc01888e093d"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="a1d70da3ef18d24c5b3f0cc01888e093d" args="(const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)" --> +<a class="anchor" id="aeeaeed8dae387dffc70e73e6e88b4d1a"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="aeeaeed8dae387dffc70e73e6e88b4d1a" args="(RtMidi::Api api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">RtMidiIn::RtMidiIn </td> <td>(</td> + <td class="paramtype"><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> </td> + <td class="paramname"> <em>api</em> = <code>UNSPECIFIED</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> <td class="paramtype">const std::string </td> <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Input Client")</code>, </td> </tr> @@ -92,13 +97,14 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr </div> <div class="memdoc"> -<p>Default constructor that allows an optional client name and queue size. </p> -<p>An exception will be thrown if a MIDI system initialization error occurs. The queue size defines the maximum number of messages that can be held in the MIDI queue (when not using a callback function). If the queue size limit is reached, incoming messages will be ignored. </p> +<p>Default constructor that allows an optional api, client name and queue size. </p> +<p>An exception will be thrown if a MIDI system initialization error occurs. The queue size defines the maximum number of messages that can be held in the MIDI queue (when not using a callback function). If the queue size limit is reached, incoming messages will be ignored.</p> +<p>If no API argument is specified and multiple API support has been compiled, the default order of use is JACK, ALSA (Linux) and CORE, Jack (OS-X). </p> </div> </div> <hr/><h2>Member Function Documentation</h2> -<a class="anchor" id="a7e853661b1056083e07318d67c51f6fd"></a><!-- doxytag: member="RtMidiIn::openPort" ref="a7e853661b1056083e07318d67c51f6fd" args="(unsigned int portNumber=0, const std::string Portname=std::string("RtMidi Input"))" --> +<a class="anchor" id="a39df8f81a22f729a9904707dde487d2c"></a><!-- doxytag: member="RtMidiIn::openPort" ref="a39df8f81a22f729a9904707dde487d2c" args="(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Input"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> @@ -112,12 +118,12 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>Portname</em> = <code>std::string("RtMidi Input")</code></td><td> </td> + <td class="paramname"> <em>portName</em> = <code>std::string( "RtMidi Input" )</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> - <td></td><td></td><td><code> [virtual]</code></td> + <td></td><td></td><td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -138,9 +144,9 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="memname">void RtMidiIn::openVirtualPort </td> <td>(</td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>portName</em> = <code>std::string("RtMidi Input")</code></td> + <td class="paramname"> <em>portName</em> = <code>std::string( "RtMidi Input" )</code></td> <td> ) </td> - <td><code> [virtual]</code></td> + <td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -172,7 +178,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <tr> <td></td> <td>)</td> - <td></td><td></td><td></td> + <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> @@ -190,9 +196,10 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <tr> <td class="memname">void RtMidiIn::cancelCallback </td> <td>(</td> + <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> - <td></td> + <td><code> [inline]</code></td> </tr> </table> </div> @@ -213,7 +220,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramtype">unsigned int </td> <td class="paramname"> <em>portNumber</em> = <code>0</code></td> <td> ) </td> - <td><code> [virtual]</code></td> + <td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -251,7 +258,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <tr> <td></td> <td>)</td> - <td></td><td></td><td></td> + <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> @@ -272,7 +279,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramtype">std::vector< unsigned char > * </td> <td class="paramname"> <em>message</em></td> <td> ) </td> - <td></td> + <td><code> [inline]</code></td> </tr> </table> </div> @@ -290,7 +297,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiOut-members.html b/doc/html/classRtMidiOut-members.html index 74aa3db..d5240a0 100644 --- a/doc/html/classRtMidiOut-members.html +++ b/doc/html/classRtMidiOut-members.html @@ -10,19 +10,30 @@ <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> <h1>RtMidiOut Member List</h1>This is the complete list of members for <a class="el" href="classRtMidiOut.html">RtMidiOut</a>, including all inherited members.<table> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">closePort</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">getPortCount</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">getPortName</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">openPort</a>(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Output"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">openVirtualPort</a>(const std::string portName=std::string("RtMidi Output"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a>(const std::string clientName=std::string("RtMidi Output Client"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">sendMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">~RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">Api</a> enum name</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8">closePort</a>(void)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">error</a>(RtError::Type type, std::string errorString)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">getCompiledApi</a>(std::vector< RtMidi::Api > &apis)</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [static]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f">getCurrentApi</a>(void)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976">getPortCount</a>(void)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">getPortName</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">LINUX_ALSA</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">MACOSX_CORE</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">openPort</a>(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Output"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">openVirtualPort</a>(const std::string portName=std::string("RtMidi Output"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RTMIDI_DUMMY</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a2940966e36b5479fbbf82c07424318cc">RtMidiOut</a>(RtMidi::Api api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Output Client"))</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">sendMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">UNIX_JACK</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">WINDOWS_KS</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">WINDOWS_MM</a> enum value</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#afdc37ccd60d7a31b3970da7a1d423881">~RtMidiOut</a>(void)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiOut.html b/doc/html/classRtMidiOut.html index 02b1dff..7087b66 100644 --- a/doc/html/classRtMidiOut.html +++ b/doc/html/classRtMidiOut.html @@ -28,20 +28,23 @@ Inheritance diagram for RtMidiOut:</div> <p><a href="classRtMidiOut-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> (const std::string clientName=std::string("RtMidi Output Client"))</td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name. <a href="#a8ed1b492900f3410bf91ad53203b9db3"></a><br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab776c431bd84193febb2f78fb8c7e792"></a><!-- doxytag: member="RtMidiOut::~RtMidiOut" ref="ab776c431bd84193febb2f78fb8c7e792" args="()" --> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">~RtMidiOut</a> ()</td></tr> +<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a2940966e36b5479fbbf82c07424318cc">RtMidiOut</a> (<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Output Client"))</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name. <a href="#a2940966e36b5479fbbf82c07424318cc"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afdc37ccd60d7a31b3970da7a1d423881"></a><!-- doxytag: member="RtMidiOut::~RtMidiOut" ref="afdc37ccd60d7a31b3970da7a1d423881" args="(void)" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#afdc37ccd60d7a31b3970da7a1d423881">~RtMidiOut</a> (void) throw ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor closes any open MIDI connections. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a532b5712e305bd8afb65a3ad14138e0f"></a><!-- doxytag: member="RtMidiOut::getCurrentApi" ref="a532b5712e305bd8afb65a3ad14138e0f" args="(void)" --> +<a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f">getCurrentApi</a> (void) throw ()</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the MIDI API specifier for the current instance of <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">openPort</a> (unsigned int portNumber=0, const std::string portName=std::string("RtMidi Output"))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Open a MIDI output connection. <a href="#a1b280d67317cd473a8816aeb2fe6c186"></a><br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3092e53a8aed2d3b163fcaa05fafd041"></a><!-- doxytag: member="RtMidiOut::closePort" ref="a3092e53a8aed2d3b163fcaa05fafd041" args="()" --> -void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">closePort</a> ()</td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a28d1ba9e002fd07a317d3a257d87e8"></a><!-- doxytag: member="RtMidiOut::closePort" ref="a5a28d1ba9e002fd07a317d3a257d87e8" args="(void)" --> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8">closePort</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close an open MIDI connection (if one exists). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">openVirtualPort</a> (const std::string portName=std::string("RtMidi Output"))</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a virtual output port, with optional name, to allow software connections (OS X and ALSA only). <a href="#a47068e1c076d91fd89587c0ccdeddc7a"></a><br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6cddbcc7faa20a7be229f765ade0877"></a><!-- doxytag: member="RtMidiOut::getPortCount" ref="ad6cddbcc7faa20a7be229f765ade0877" args="()" --> -unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">getPortCount</a> ()</td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c4d662e1c398ddf35a2dbaf66f50976"></a><!-- doxytag: member="RtMidiOut::getPortCount" ref="a0c4d662e1c398ddf35a2dbaf66f50976" args="(void)" --> +unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976">getPortCount</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of available MIDI output ports. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">getPortName</a> (unsigned int portNumber=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string identifier for the specified MIDI port type and number. <a href="#acc4ae0ab71a49ae7629075d5a9cd837c"></a><br/></td></tr> @@ -50,27 +53,37 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A realtime MIDI output class. </p> -<p>This class provides a common, platform-independent API for MIDI output. It allows one to probe available MIDI output ports, to connect to one such port, and to send MIDI bytes immediately over the connection. Create multiple instances of this class to connect to more than one MIDI device at the same time.</p> -<p>by Gary P. Scavone, 2003-2008. </p> +<p>This class provides a common, platform-independent API for MIDI output. It allows one to probe available MIDI output ports, to connect to one such port, and to send MIDI bytes immediately over the connection. Create multiple instances of this class to connect to more than one MIDI device at the same time. With the OS-X and Linux ALSA MIDI APIs, it is also possible to open a virtual port to which other MIDI software clients can connect.</p> +<p>by Gary P. Scavone, 2003-2012. </p> <hr/><h2>Constructor & Destructor Documentation</h2> -<a class="anchor" id="a8ed1b492900f3410bf91ad53203b9db3"></a><!-- doxytag: member="RtMidiOut::RtMidiOut" ref="a8ed1b492900f3410bf91ad53203b9db3" args="(const std::string clientName=std::string("RtMidi Output Client"))" --> +<a class="anchor" id="a2940966e36b5479fbbf82c07424318cc"></a><!-- doxytag: member="RtMidiOut::RtMidiOut" ref="a2940966e36b5479fbbf82c07424318cc" args="(RtMidi::Api api=UNSPECIFIED, const std::string clientName=std::string("RtMidi Output Client"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">RtMidiOut::RtMidiOut </td> <td>(</td> + <td class="paramtype"><a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi::Api</a> </td> + <td class="paramname"> <em>api</em> = <code>UNSPECIFIED</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Output Client")</code></td> - <td> ) </td> + <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Output Client")</code></td><td> </td> + </tr> + <tr> <td></td> + <td>)</td> + <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor that allows an optional client name. </p> -<p>An exception will be thrown if a MIDI system initialization error occurs. </p> +<p>An exception will be thrown if a MIDI system initialization error occurs.</p> +<p>If no API argument is specified and multiple API support has been compiled, the default order of use is JACK, ALSA (Linux) and CORE, Jack (OS-X). </p> </div> </div> @@ -89,12 +102,12 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>portName</em> = <code>std::string("RtMidi Output")</code></td><td> </td> + <td class="paramname"> <em>portName</em> = <code>std::string( "RtMidi Output" )</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> - <td></td><td></td><td><code> [virtual]</code></td> + <td></td><td></td><td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -115,9 +128,9 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="memname">void RtMidiOut::openVirtualPort </td> <td>(</td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>portName</em> = <code>std::string("RtMidi Output")</code></td> + <td class="paramname"> <em>portName</em> = <code>std::string( "RtMidi Output" )</code></td> <td> ) </td> - <td><code> [virtual]</code></td> + <td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -140,7 +153,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramtype">unsigned int </td> <td class="paramname"> <em>portNumber</em> = <code>0</code></td> <td> ) </td> - <td><code> [virtual]</code></td> + <td><code> [inline, virtual]</code></td> </tr> </table> </div> @@ -163,7 +176,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="paramtype">std::vector< unsigned char > * </td> <td class="paramname"> <em>message</em></td> <td> ) </td> - <td></td> + <td><code> [inline]</code></td> </tr> </table> </div> @@ -181,7 +194,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classes.html b/doc/html/classes.html index 0804176..2b7a01a 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -12,13 +12,13 @@ <h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0"> <tr><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> M </div></td></tr></table> -</td><td><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a> </td><td><a class="el" href="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a> </td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </td></tr><tr><td><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a> </td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> R </div></td></tr></table> -</td><td><a class="el" href="classRtMidi.html">RtMidi</a> </td><td><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> +</td><td><a class="el" href="classMidiInWinKS.html">MidiInWinKS</a> </td><td><a class="el" href="classMidiOutApi.html">MidiOutApi</a> </td><td><a class="el" href="classMidiOutWinMM.html">MidiOutWinMM</a> </td><td><a class="el" href="classRtMidi.html">RtMidi</a> </td></tr><tr><td><a class="el" href="classMidiInAlsa.html">MidiInAlsa</a> </td><td><a class="el" href="classMidiInWinMM.html">MidiInWinMM</a> </td><td><a class="el" href="classMidiOutCore.html">MidiOutCore</a> </td><td><a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiInApi::MidiQueue</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a> </td></tr><tr><td><a class="el" href="classMidiInApi.html">MidiInApi</a> </td><td><a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiInApi::MidiMessage</a> </td><td><a class="el" href="classMidiOutJack.html">MidiOutJack</a> </td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> R </div></td></tr></table> +</td><td><a class="el" href="structMidiInApi_1_1RtMidiInData.html">MidiInApi::RtMidiInData</a> </td></tr><tr><td><a class="el" href="classMidiInCore.html">MidiInCore</a> </td><td><a class="el" href="classMidiOutAlsa.html">MidiOutAlsa</a> </td><td><a class="el" href="classMidiOutWinKS.html">MidiOutWinKS</a> </td><td><a class="el" href="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </td></tr><tr><td><a class="el" href="classMidiInJack.html">MidiInJack</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/files.html b/doc/html/files.html index 01eda9f..f3dc73d 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -11,13 +11,13 @@ <div class="contents"> <h1>File List</h1>Here is a list of all documented files with brief descriptions:<table> <tr><td class="indexkey"><b>RtError.h</b> <a href="RtError_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr> - <tr><td class="indexkey"><b>RtMidi.h</b> <a href="RtMidi_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="RtMidi_8h.html">RtMidi.h</a> <a href="RtMidi_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr> </table> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/functions.html b/doc/html/functions.html index ada21ba..f9157e3 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -19,10 +19,13 @@ </div> <div class="tabs"> <ul> + <li><a href="#index_a"><span>a</span></a></li> <li><a href="#index_c"><span>c</span></a></li> <li><a href="#index_d"><span>d</span></a></li> + <li><a href="#index_e"><span>e</span></a></li> <li><a href="#index_g"><span>g</span></a></li> <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_l"><span>l</span></a></li> <li><a href="#index_m"><span>m</span></a></li> <li><a href="#index_n"><span>n</span></a></li> <li><a href="#index_o"><span>o</span></a></li> @@ -38,12 +41,19 @@ <div class="contents"> Here is a list of all documented class members with links to the class documentation for each member: +<h3><a class="anchor" id="index_a">- a -</a></h3><ul> +<li>Api +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi</a> +</li> +</ul> + + <h3><a class="anchor" id="index_c">- c -</a></h3><ul> <li>cancelCallback() : <a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">RtMidiIn</a> </li> <li>closePort() -: <a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8">RtMidiOut</a> , <a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">RtMidiIn</a> , <a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a">RtMidi</a> </li> @@ -60,20 +70,34 @@ Here is a list of all documented class members with links to the class documenta </ul> +<h3><a class="anchor" id="index_e">- e -</a></h3><ul> +<li>error() +: <a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">RtMidi</a> +</li> +</ul> + + <h3><a class="anchor" id="index_g">- g -</a></h3><ul> +<li>getCompiledApi() +: <a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">RtMidi</a> +</li> +<li>getCurrentApi() +: <a class="el" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f">RtMidiOut</a> +</li> <li>getMessage() : <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> , <a class="el" href="classRtError.html#afd067ba6b46edd37f989cad02cd70b50">RtError</a> </li> <li>getPortCount() -: <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976">RtMidiOut</a> +, <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> , <a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">RtMidi</a> </li> <li>getPortName() : <a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> , <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a> +, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> </li> <li>getType() : <a class="el" href="classRtError.html#a3e316dc9b9b41fe2f64cabf34beb4fe7">RtError</a> @@ -97,7 +121,17 @@ Here is a list of all documented class members with links to the class documenta </ul> +<h3><a class="anchor" id="index_l">- l -</a></h3><ul> +<li>LINUX_ALSA +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">RtMidi</a> +</li> +</ul> + + <h3><a class="anchor" id="index_m">- m -</a></h3><ul> +<li>MACOSX_CORE +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">RtMidi</a> +</li> <li>MEMORY_ERROR : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a> </li> @@ -114,7 +148,7 @@ Here is a list of all documented class members with links to the class documenta <h3><a class="anchor" id="index_o">- o -</a></h3><ul> <li>openPort() : <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> +, <a class="el" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c">RtMidiIn</a> , <a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> </li> <li>openVirtualPort() @@ -136,14 +170,17 @@ Here is a list of all documented class members with links to the class documenta <li>RtError() : <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> </li> +<li>RTMIDI_DUMMY +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RtMidi</a> +</li> <li>RtMidiCallback : <a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> </li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#aeeaeed8dae387dffc70e73e6e88b4d1a">RtMidiIn</a> </li> <li>RtMidiOut() -: <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a2940966e36b5479fbbf82c07424318cc">RtMidiOut</a> </li> </ul> @@ -172,8 +209,12 @@ Here is a list of all documented class members with links to the class documenta <h3><a class="anchor" id="index_u">- u -</a></h3><ul> +<li>UNIX_JACK +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">RtMidi</a> +</li> <li>UNSPECIFIED : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +, <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">RtMidi</a> </li> </ul> @@ -185,6 +226,12 @@ Here is a list of all documented class members with links to the class documenta <li>what() : <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">RtError</a> </li> +<li>WINDOWS_KS +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">RtMidi</a> +</li> +<li>WINDOWS_MM +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">RtMidi</a> +</li> </ul> @@ -193,17 +240,17 @@ Here is a list of all documented class members with links to the class documenta : <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a> </li> <li>~RtMidiIn() -: <a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#ae79f4da8a1b2e7efecdd1047670b27dc">RtMidiIn</a> </li> <li>~RtMidiOut() -: <a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#afdc37ccd60d7a31b3970da7a1d423881">RtMidiOut</a> </li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/functions_enum.html b/doc/html/functions_enum.html index bd8fdf2..270d906 100644 --- a/doc/html/functions_enum.html +++ b/doc/html/functions_enum.html @@ -19,6 +19,9 @@ </div> <div class="contents"> <ul> +<li>Api +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406">RtMidi</a> +</li> <li>Type : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError</a> </li> @@ -27,7 +30,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/functions_eval.html b/doc/html/functions_eval.html index 75d363e..40a5661 100644 --- a/doc/html/functions_eval.html +++ b/doc/html/functions_eval.html @@ -34,30 +34,49 @@ <li>INVALID_USE : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8e65f51a3fbdc1a4a1552b3260df36bc">RtError</a> </li> +<li>LINUX_ALSA +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a20c691b24844d3ab5dbf882123235df2">RtMidi</a> +</li> +<li>MACOSX_CORE +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">RtMidi</a> +</li> <li>MEMORY_ERROR : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a> </li> <li>NO_DEVICES_FOUND : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">RtError</a> </li> +<li>RTMIDI_DUMMY +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a54dba406ab358492005ce2b966a2d959">RtMidi</a> +</li> <li>SYSTEM_ERROR : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a> </li> <li>THREAD_ERROR : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">RtError</a> </li> +<li>UNIX_JACK +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">RtMidi</a> +</li> <li>UNSPECIFIED : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +, <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a4a4d9f7a38a082d6b0d5dd2b5de94ab9">RtMidi</a> </li> <li>WARNING : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a> </li> +<li>WINDOWS_KS +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a246ae76adf088dd4d359bbac3d605756">RtMidi</a> +</li> +<li>WINDOWS_MM +: <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a647868cb4ed37f517bf185a7f41cb70f">RtMidi</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index 91e777e..8d0c48e 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -17,39 +17,81 @@ <li><a href="functions_eval.html"><span>Enumerator</span></a></li> </ul> </div> + <div class="tabs"> + <ul> + <li><a href="#index_c"><span>c</span></a></li> + <li><a href="#index_e"><span>e</span></a></li> + <li><a href="#index_g"><span>g</span></a></li> + <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_o"><span>o</span></a></li> + <li><a href="#index_p"><span>p</span></a></li> + <li><a href="#index_r"><span>r</span></a></li> + <li><a href="#index_s"><span>s</span></a></li> + <li><a href="#index_w"><span>w</span></a></li> + <li><a href="#index_~"><span>~</span></a></li> + </ul> + </div> <div class="contents"> - <ul> + + +<h3><a class="anchor" id="index_c">- c -</a></h3><ul> <li>cancelCallback() : <a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">RtMidiIn</a> </li> <li>closePort() -: <a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a5a28d1ba9e002fd07a317d3a257d87e8">RtMidiOut</a> , <a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">RtMidiIn</a> , <a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a">RtMidi</a> </li> +</ul> + + +<h3><a class="anchor" id="index_e">- e -</a></h3><ul> +<li>error() +: <a class="el" href="classRtMidi.html#ae1a810e84c57b2eb4989056cb384a04c">RtMidi</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_g">- g -</a></h3><ul> +<li>getCompiledApi() +: <a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce">RtMidi</a> +</li> +<li>getCurrentApi() +: <a class="el" href="classRtMidiIn.html#a6475a11eeb0c8bf22157c3887b100164">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a532b5712e305bd8afb65a3ad14138e0f">RtMidiOut</a> +</li> <li>getMessage() : <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> , <a class="el" href="classRtError.html#afd067ba6b46edd37f989cad02cd70b50">RtError</a> </li> <li>getPortCount() -: <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976">RtMidiOut</a> +, <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> , <a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">RtMidi</a> </li> <li>getPortName() : <a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> , <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a> +, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> </li> <li>getType() : <a class="el" href="classRtError.html#a3e316dc9b9b41fe2f64cabf34beb4fe7">RtError</a> </li> +</ul> + + +<h3><a class="anchor" id="index_i">- i -</a></h3><ul> <li>ignoreTypes() : <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">RtMidiIn</a> </li> +</ul> + + +<h3><a class="anchor" id="index_o">- o -</a></h3><ul> <li>openPort() : <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> +, <a class="el" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c">RtMidiIn</a> , <a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> </li> <li>openVirtualPort() @@ -57,42 +99,62 @@ , <a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> , <a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> </li> +</ul> + + +<h3><a class="anchor" id="index_p">- p -</a></h3><ul> <li>printMessage() : <a class="el" href="classRtError.html#a251dcdac396c998c91706dd2dd3b8bfc">RtError</a> </li> +</ul> + + +<h3><a class="anchor" id="index_r">- r -</a></h3><ul> <li>RtError() : <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> </li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#aeeaeed8dae387dffc70e73e6e88b4d1a">RtMidiIn</a> </li> <li>RtMidiOut() -: <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a2940966e36b5479fbbf82c07424318cc">RtMidiOut</a> </li> +</ul> + + +<h3><a class="anchor" id="index_s">- s -</a></h3><ul> <li>sendMessage() : <a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> </li> <li>setCallback() : <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">RtMidiIn</a> </li> +</ul> + + +<h3><a class="anchor" id="index_w">- w -</a></h3><ul> <li>what() : <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">RtError</a> </li> +</ul> + + +<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul> <li>~RtError() : <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a> </li> <li>~RtMidiIn() -: <a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#ae79f4da8a1b2e7efecdd1047670b27dc">RtMidiIn</a> </li> <li>~RtMidiOut() -: <a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#afdc37ccd60d7a31b3970da7a1d423881">RtMidiOut</a> </li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/functions_type.html b/doc/html/functions_type.html index c2fe1ee..589be8f 100644 --- a/doc/html/functions_type.html +++ b/doc/html/functions_type.html @@ -27,7 +27,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html index 6aaad3c..31f32e4 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -10,21 +10,37 @@ <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> <h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul> -<li><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a></li> -<li><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a></li> +<li><a class="el" href="classMidiInApi.html">MidiInApi</a><ul> +<li><a class="el" href="classMidiInAlsa.html">MidiInAlsa</a></li> +<li><a class="el" href="classMidiInCore.html">MidiInCore</a></li> +<li><a class="el" href="classMidiInJack.html">MidiInJack</a></li> +<li><a class="el" href="classMidiInWinKS.html">MidiInWinKS</a></li> +<li><a class="el" href="classMidiInWinMM.html">MidiInWinMM</a></li> +</ul> +</li> +<li><a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiInApi::MidiMessage</a></li> +<li><a class="el" href="classMidiOutApi.html">MidiOutApi</a><ul> +<li><a class="el" href="classMidiOutAlsa.html">MidiOutAlsa</a></li> +<li><a class="el" href="classMidiOutCore.html">MidiOutCore</a></li> +<li><a class="el" href="classMidiOutJack.html">MidiOutJack</a></li> +<li><a class="el" href="classMidiOutWinKS.html">MidiOutWinKS</a></li> +<li><a class="el" href="classMidiOutWinMM.html">MidiOutWinMM</a></li> +</ul> +</li> +<li><a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiInApi::MidiQueue</a></li> <li><a class="el" href="classRtError.html">RtError</a></li> <li><a class="el" href="classRtMidi.html">RtMidi</a><ul> <li><a class="el" href="classRtMidiIn.html">RtMidiIn</a></li> <li><a class="el" href="classRtMidiOut.html">RtMidiOut</a></li> </ul> </li> -<li><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a></li> +<li><a class="el" href="structMidiInApi_1_1RtMidiInData.html">MidiInApi::RtMidiInData</a></li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/index.html b/doc/html/index.html index 7e433c1..4728ef1 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -9,9 +9,9 @@ <HR> <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Tutorial </h1><h3 class="version">1.0.15 </h3><center><a class="el" href="index.html#intro">Introduction</a> <a class="el" href="index.html#download">Download</a> <a class="el" href="index.html#start">Getting Started</a> <a class="el" href="index.html#error">Error Handling</a> <a class="el" href="index.html#probing">Probing Ports</a> <a class="el" href="index.html#output">MIDI Output</a> <a class="el" href="index.html#input">MIDI Input</a> <a class="el" href="index.html#virtual">Virtual Ports</a> <a class="el" href="index.html#compiling">Compiling</a> <a class="el" href="index.html#debug">Debugging</a> <a class="el" href="index.html#apinotes">API Notes</a> <a class="el" href="index.html#acknowledge">Acknowledgements</a> <a class="el" href="index.html#license">License</a></center><h2><a class="anchor" id="intro"> +<h1>The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Tutorial </h1><h3 class="version">2.0.0 </h3><center><a class="el" href="index.html#intro">Introduction</a> <a class="el" href="index.html#download">Download</a> <a class="el" href="index.html#start">Getting Started</a> <a class="el" href="index.html#error">Error Handling</a> <a class="el" href="index.html#probing">Probing Ports</a> <a class="el" href="index.html#output">MIDI Output</a> <a class="el" href="index.html#input">MIDI Input</a> <a class="el" href="index.html#virtual">Virtual Ports</a> <a class="el" href="index.html#compiling">Compiling</a> <a class="el" href="index.html#debug">Debugging</a> <a class="el" href="index.html#multi">Using Simultaneous Multiple APIs</a> <a class="el" href="index.html#apinotes">API Notes</a> <a class="el" href="index.html#acknowledge">Acknowledgements</a> <a class="el" href="index.html#license">License</a></center><h2><a class="anchor" id="intro"> Introduction</a></h2> -<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is a set of C++ classes (<a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & Jack), Macintosh OS X, Windows (Multimedia Library), and SGI operating systems. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals:</p> +<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is a set of C++ classes (<a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a>, <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> and API-specific classes) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & Jack), Macintosh OS X (CoreMidi & Jack), and Windows (Multimedia Library & Kernel Streaming) operating systems. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals:</p> <ul> <li> object oriented C++ design </li> @@ -22,14 +22,18 @@ only two header files and one source file for easy inclusion in programming proj <li> MIDI device enumeration </li> </ul> +<p>Where applicable, multiple API support can be compiled and a particular API specified when creating an RtAudio instance.</p> <p>MIDI input and output functionality are separated into two classes, <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>. Each class instance supports only a single MIDI connection. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> does not provide timing functionality (i.e., output messages are sent immediately). Input messages are timestamped with delta times in seconds (via a <code>double</code> floating point type). MIDI data is passed to the user as raw bytes using an std::vector<unsigned char>.</p> +<h2><a class="anchor" id="whatsnew"> +What's New (Version 2.0)</a></h2> +<p>No incompatable API changes were made in version 2.0, however, support for multiple compiled APIs (where available) was added (see <a class="el" href="index.html#multi">Using Simultaneous Multiple APIs</a>). Other changes include: 1. Added Windows Kernel Streaming support (thanks to Sebastien Alaiwan), though not tested in Visual Studio (and timestamping is not implemented); and 2. Support for the IRIX (SGI) operating system was discontinued.</p> <h2><a class="anchor" id="download"> Download</a></h2> -<p>Latest Release (11 August 2011): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.15.tar.gz">Version 1.0.15</a></p> +<p>Latest Release (18 June 2012): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-2.0.0.tar.gz">Version 2.0.0</a></p> <h2><a class="anchor" id="start"> Getting Started</a></h2> <p>The first thing that must be done when using <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is to create an instance of the <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> or <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> subclasses. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is an abstract base class, which itself cannot be instantiated. Each default constructor attempts to establish any necessary "connections" with the underlying MIDI system. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses C++ exceptions to report errors, necessitating try/catch blocks around many member functions. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> can be thrown during instantiation in some circumstances. A warning message may also be reported if no MIDI devices are found during instantiation. The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> classes have been designed to work with "hot pluggable" or virtual (software) MIDI devices, making it possible to connect to MIDI devices that may not have been present when the classes were instantiated. The following code example demonstrates default object construction and destruction:</p> -<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "RtMidi.h"</span> +<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "<a class="code" href="RtMidi_8h.html">RtMidi.h</a>"</span> <span class="keywordtype">int</span> main() { @@ -58,7 +62,7 @@ Probing Ports</a></h2> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "<a class="code" href="RtMidi_8h.html">RtMidi.h</a>"</span> <span class="keywordtype">int</span> main() { @@ -99,7 +103,7 @@ Probing Ports</a></h2> } <span class="comment">// Check outputs.</span> - nPorts = midiout-><a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" title="Return the number of available MIDI output ports.">getPortCount</a>(); + nPorts = midiout-><a class="code" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976" title="Return the number of available MIDI output ports.">getPortCount</a>(); std::cout << <span class="stringliteral">"\nThere are "</span> << nPorts << <span class="stringliteral">" MIDI output ports available.\n"</span>; <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i<nPorts; i++ ) { <span class="keywordflow">try</span> { @@ -128,7 +132,7 @@ MIDI Output</a></h2> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "<a class="code" href="RtMidi_8h.html">RtMidi.h</a>"</span> <span class="keywordtype">int</span> main() { @@ -136,7 +140,7 @@ MIDI Output</a></h2> std::vector<unsigned char> message; <span class="comment">// Check available ports.</span> - <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiout-><a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" title="Return the number of available MIDI output ports.">getPortCount</a>(); + <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiout-><a class="code" href="classRtMidiOut.html#a0c4d662e1c398ddf35a2dbaf66f50976" title="Return the number of available MIDI output ports.">getPortCount</a>(); <span class="keywordflow">if</span> ( nPorts == 0 ) { std::cout << <span class="stringliteral">"No ports available!\n"</span>; <span class="keywordflow">goto</span> cleanup; @@ -191,7 +195,7 @@ Queued MIDI Input</a></h3> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> <span class="preprocessor">#include <signal.h></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "<a class="code" href="RtMidi_8h.html">RtMidi.h</a>"</span> <span class="keywordtype">bool</span> done; <span class="keyword">static</span> <span class="keywordtype">void</span> finish(<span class="keywordtype">int</span> ignore){ done = <span class="keyword">true</span>; } @@ -209,7 +213,7 @@ Queued MIDI Input</a></h3> std::cout << <span class="stringliteral">"No ports available!\n"</span>; <span class="keywordflow">goto</span> cleanup; } - midiin-><a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( 0 ); + midiin-><a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( 0 ); <span class="comment">// Don't ignore sysex, timing, or active sensing messages.</span> midiin-><a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keyword">false</span>, <span class="keyword">false</span>, <span class="keyword">false</span> ); @@ -246,7 +250,7 @@ MIDI Input with User Callback</a></h3> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "<a class="code" href="RtMidi_8h.html">RtMidi.h</a>"</span> <span class="keywordtype">void</span> mycallback( <span class="keywordtype">double</span> deltatime, std::vector< unsigned char > *message, <span class="keywordtype">void</span> *userData ) { @@ -268,7 +272,7 @@ MIDI Input with User Callback</a></h3> <span class="keywordflow">goto</span> cleanup; } - midiin-><a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( 0 ); + midiin-><a class="code" href="classRtMidiIn.html#a39df8f81a22f729a9904707dde487d2c" title="Open a MIDI input connection.">openPort</a>( 0 ); <span class="comment">// Set our callback function. This should be done immediately after</span> <span class="comment">// opening the port to avoid having incoming messages written to the</span> @@ -300,30 +304,32 @@ Compiling</a></h2> <tr> <td>Linux </td><td>ALSA Sequencer </td><td>__LINUX_ALSASEQ__ </td><td><code>asound, pthread</code> </td><td><code>g++ -Wall -D__LINUX_ALSASEQ__ -o midiprobe midiprobe.cpp RtMidi.cpp -lasound -lpthread</code> </td></tr> <tr> -<td>Linux </td><td>Jack MIDI </td><td>__LINUX_JACK__ </td><td><code>jack</code> </td><td><code>g++ -Wall -D__LINUX_JACK__ -o midiprobe midiprobe.cpp RtMidi.cpp -ljack</code> </td></tr> +<td>Linux or Mac </td><td>Jack MIDI </td><td>__UNIX_JACK__ </td><td><code>jack</code> </td><td><code>g++ -Wall -D__UNIX_JACK__ -o midiprobe midiprobe.cpp RtMidi.cpp -ljack</code> </td></tr> <tr> <td>Macintosh OS X </td><td>CoreMidi </td><td>__MACOSX_CORE__ </td><td><code>CoreMidi, CoreAudio, CoreFoundation</code> </td><td><code>g++ -Wall -D__MACOSX_CORE__ -o midiprobe midiprobe.cpp RtMidi.cpp -framework CoreMidi -framework CoreAudio -framework CoreFoundation</code> </td></tr> <tr> -<td>Irix </td><td>MD </td><td>__IRIX_MD__ </td><td><code>md, pthread</code> </td><td><code>CC -Wall -D__IRIX_MD__ -o midiprobe midiprobe.cpp RtMidi.cpp -laudio -lpthread</code> </td></tr> -<tr> <td>Windows </td><td>Multimedia Library </td><td>__WINDOWS_MM__ </td><td><code>winmm.lib, multithreaded</code> </td><td><em>compiler specific</em> </td></tr> +<tr> +<td>Windows </td><td>Kernel Streaming </td><td>__WINDOWS_KS__ </td><td><code>ks.h, ksmedia.h, setupapi.lib, ksuser.lib, multithreaded</code> </td><td><em>compiler specific</em> </td></tr> </table> -<p>The example compiler statements above could be used to compile the <code>midiprobe.cpp</code> example file, assuming that <code>midiprobe.cpp</code>, <code><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></code>, <code><a class="el" href="RtError_8h_source.html">RtError.h</a></code>, and <code>RtMidi.cpp</code> all exist in the same directory.</p> +<p>The example compiler statements above could be used to compile the <code>midiprobe.cpp</code> example file, assuming that <code>midiprobe.cpp</code>, <code><a class="el" href="RtMidi_8h.html">RtMidi.h</a></code>, <code><a class="el" href="RtError_8h_source.html">RtError.h</a></code>, and <code>RtMidi.cpp</code> all exist in the same directory.</p> <h2><a class="anchor" id="debug"> Debugging</a></h2> -<p>If you are having problems getting <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> to run on your system, try passing the preprocessor definition <code>__RTMIDI_DEBUG__</code> to the compiler (or define it in <a class="el" href="RtMidi_8h_source.html">RtMidi.h</a>). A variety of warning messages will be displayed that may help in determining the problem. Also try using the programs included in the <code>test</code> directory. The program <code>midiprobe</code> displays the queried capabilities of all MIDI ports found.</p> +<p>If you are having problems getting <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> to run on your system, try passing the preprocessor definition <code>__RTMIDI_DEBUG__</code> to the compiler (or define it in <a class="el" href="RtMidi_8h.html">RtMidi.h</a>). A variety of warning messages will be displayed that may help in determining the problem. Also try using the programs included in the <code>test</code> directory. The program <code>midiprobe</code> displays the queried capabilities of all MIDI ports found.</p> +<h2><a class="anchor" id="multi"> +Using Simultaneous Multiple APIs</a></h2> +<p>Support for each MIDI API is encapsulated in specific <a class="el" href="classMidiInApi.html">MidiInApi</a> or <a class="el" href="classMidiOutApi.html">MidiOutApi</a> subclasses, making it possible to compile and instantiate multiple API-specific subclasses on a given operating system. For example, one can compile both the CoreMIDI and Jack support on the OS-X operating system by providing the appropriate preprocessor definitions for each. In a run-time situation, one might first attempt to determine whether any Jack ports are available. This can be done by specifying the api argument <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a1f59daf3120f47c0ae3891773112ddfa">RtMidi::UNIX_JACK</a> when attempting to create an instance of <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> or <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>. If no available ports are found, then an instance of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> with the api argument <a class="el" href="classRtMidi.html#aac66af04a85fe5c5f07c360574a19406a3f41293f89467641484fbd54c4530908">RtMidi::MACOSX_CORE</a> can be created. Alternately, if no api argument is specified, <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> will first look for CoreMIDI ports and if none are found, then Jack ports (in linux, the search order is ALSA and then Jack; in windows, the search order is WinMM and then WinKS). In theory, it should also be possible to have separate instances of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> open at the same time with different underlying API support, though this has not been tested.</p> +<p>The static function <a class="el" href="classRtMidi.html#a025fa339486c9a34b26ec707aa2944ce" title="A static function to determine the available compiled MIDI APIs.">RtMidi::getCompiledApi()</a> is provided to determine the available compiled API support. The function RtMidi::getCurrentApi() indicates the API selected for a given <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> instance.</p> <h2><a class="anchor" id="apinotes"> API Notes</a></h2> <p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is designed to provide a common API across the various supported operating systems and audio libraries. Despite that, some issues should be mentioned with regard to each.</p> <h3><a class="anchor" id="linux"> Linux:</a></h3> -<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> for Linux was developed using the Fedora distribution. A decision was made to not include support for the OSS API because the OSS API provides such limited functionality and because <a href="http://www.alsa-project.org/">ALSA</a> support is now incorporated in the Linux kernel. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses the ALSA sequencer API, which allows for virtual software input and output ports.</p> +<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> for Linux was developed using the Fedora distribution. Two different MIDI APIs are supported on Linux platforms: <a href="http://www.alsa-project.org/">ALSA</a> and <a href="http://jackit.sourceforge.net/">Jack</a>. A decision was made to not include support for the OSS API because the OSS API provides such limited functionality and because <a href="http://www.alsa-project.org/">ALSA</a> support is now incorporated in the Linux kernel. The ALSA sequencer and Jack APIs allows for virtual software input and output ports.</p> <h3><a class="anchor" id="macosx"> Macintosh OS X (CoreAudio):</a></h3> <p>The Apple CoreMidi API allows for the establishment of virtual input and output ports to which other software applications can connect.</p> -<h3><a class="anchor" id="irix"> -Irix (SGI):</a></h3> -<p>The Irix version of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> was written and tested on an SGI Indy running Irix version 6.5.4 and the MD audio library.</p> +<p>The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Jack support can be compiled on Macintosh OS-X systems, as well as in Linux.</p> <h3><a class="anchor" id="windowsds"> Windows (Multimedia Library):</a></h3> <p>The <code>configure</code> script provides support for the MinGW compiler.</p> @@ -335,6 +341,8 @@ Acknowledgements</a></h2> <p>Many thanks to the following people for providing bug fixes and improvements: </p> <ul> <li> +Sebastien Alaiwan (Jack memory leaks, Windows kernel streaming) </li> +<li> Jean-Baptiste Berruchon (Windows sysex code) </li> <li> Pedro Lopez-Cabanillas (ALSA sequencer API, client naming) </li> @@ -345,10 +353,14 @@ Eduardo Coutinho (Windows device names) </li> <li> Paul Dean (increment optimization) </li> <li> +Luc Deschenaux (sysex issues) </li> +<li> John Dey (OS-X timestamps) </li> <li> Christoph Eckert (ALSA sysex fixes) </li> <li> +Martin Koegler (various fixes) </li> +<li> Immanuel Litzroth (OS-X sysex fix) </li> <li> Jon McCormack (Snow Leopard updates) </li> @@ -360,20 +372,22 @@ Alexander Svetalkin (Jack MIDI) </li> Casey Tucker (OS-X driver information, sysex sending) </li> <li> Bastiaan Verreijt (Windows sysex multi-buffer code) </li> +<li> +Dan Wilcox </li> </ul> <h2><a class="anchor" id="license"> License</a></h2> <p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>: realtime MIDI i/o C++ classes<br/> - Copyright (c) 2003-2011 Gary P. Scavone</p> + Copyright (c) 2003-2012 Gary P. Scavone</p> <p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p> <p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p> -<p>Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version.</p> +<p>Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.</p> <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. </p> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/structMidiInApi_1_1MidiMessage-members.html b/doc/html/structMidiInApi_1_1MidiMessage-members.html new file mode 100644 index 0000000..d1dc4fa --- /dev/null +++ b/doc/html/structMidiInApi_1_1MidiMessage-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInApi::MidiMessage Member List</h1>This is the complete list of members for <a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiInApi::MidiMessage</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structMidiInApi_1_1MidiMessage.html b/doc/html/structMidiInApi_1_1MidiMessage.html new file mode 100644 index 0000000..58e952c --- /dev/null +++ b/doc/html/structMidiInApi_1_1MidiMessage.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> + <div class="navpath"><a class="el" href="classMidiInApi.html">MidiInApi</a>::<a class="el" href="structMidiInApi_1_1MidiMessage.html">MidiMessage</a> + </div> +<div class="contents"> +<h1>MidiInApi::MidiMessage Struct Reference</h1><!-- doxytag: class="MidiInApi::MidiMessage" --> +<p><a href="structMidiInApi_1_1MidiMessage-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structMidiInApi_1_1MidiQueue-members.html b/doc/html/structMidiInApi_1_1MidiQueue-members.html new file mode 100644 index 0000000..9dee502 --- /dev/null +++ b/doc/html/structMidiInApi_1_1MidiQueue-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInApi::MidiQueue Member List</h1>This is the complete list of members for <a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiInApi::MidiQueue</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structMidiInApi_1_1MidiQueue.html b/doc/html/structMidiInApi_1_1MidiQueue.html new file mode 100644 index 0000000..5910ac1 --- /dev/null +++ b/doc/html/structMidiInApi_1_1MidiQueue.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> + <div class="navpath"><a class="el" href="classMidiInApi.html">MidiInApi</a>::<a class="el" href="structMidiInApi_1_1MidiQueue.html">MidiQueue</a> + </div> +<div class="contents"> +<h1>MidiInApi::MidiQueue Struct Reference</h1><!-- doxytag: class="MidiInApi::MidiQueue" --> +<p><a href="structMidiInApi_1_1MidiQueue-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structMidiInApi_1_1RtMidiInData-members.html b/doc/html/structMidiInApi_1_1RtMidiInData-members.html new file mode 100644 index 0000000..1615462 --- /dev/null +++ b/doc/html/structMidiInApi_1_1RtMidiInData-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>MidiInApi::RtMidiInData Member List</h1>This is the complete list of members for <a class="el" href="structMidiInApi_1_1RtMidiInData.html">MidiInApi::RtMidiInData</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structMidiInApi_1_1RtMidiInData.html b/doc/html/structMidiInApi_1_1RtMidiInData.html new file mode 100644 index 0000000..67db75b --- /dev/null +++ b/doc/html/structMidiInApi_1_1RtMidiInData.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> + <div class="navpath"><a class="el" href="classMidiInApi.html">MidiInApi</a>::<a class="el" href="structMidiInApi_1_1RtMidiInData.html">RtMidiInData</a> + </div> +<div class="contents"> +<h1>MidiInApi::RtMidiInData Struct Reference</h1><!-- doxytag: class="MidiInApi::RtMidiInData" --> +<p><a href="structMidiInApi_1_1RtMidiInData-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2012 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> |
