diff options
Diffstat (limited to 'doc/html')
33 files changed, 1196 insertions, 672 deletions
diff --git a/doc/html/RtError_8h_source.html b/doc/html/RtError_8h_source.html new file mode 100644 index 0000000..726697f --- /dev/null +++ b/doc/html/RtError_8h_source.html @@ -0,0 +1,65 @@ +<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 --> +<h1>RtError.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/************************************************************************/</span> +<a name="l00010"></a>00010 <span class="comment">/************************************************************************/</span> +<a name="l00011"></a>00011 +<a name="l00012"></a>00012 <span class="preprocessor">#ifndef RTERROR_H</span> +<a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define RTERROR_H</span> +<a name="l00014"></a>00014 <span class="preprocessor"></span> +<a name="l00015"></a>00015 <span class="preprocessor">#include <iostream></span> +<a name="l00016"></a>00016 <span class="preprocessor">#include <string></span> +<a name="l00017"></a>00017 +<a name="l00018"></a><a class="code" href="classRtError.html">00018</a> <span class="keyword">class </span><a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> +<a name="l00019"></a>00019 { +<a name="l00020"></a>00020 <span class="keyword">public</span>: +<a name="l00022"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">00022</a> <span class="keyword">enum</span> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> { +<a name="l00023"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">00023</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>, +<a name="l00024"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">00024</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>, +<a name="l00025"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">00025</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>, +<a name="l00026"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">00026</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>, +<a name="l00027"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">00027</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>, +<a name="l00028"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">00028</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">INVALID_STREAM</a>, +<a name="l00029"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">00029</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>, +<a name="l00030"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">00030</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, +<a name="l00031"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">00031</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>, +<a name="l00032"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">00032</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>, +<a name="l00033"></a><a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">00033</a> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> +<a name="l00034"></a>00034 }; +<a name="l00035"></a>00035 +<a name="l00036"></a>00036 <span class="keyword">protected</span>: +<a name="l00037"></a>00037 std::string message_; +<a name="l00038"></a>00038 <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> type_; +<a name="l00039"></a>00039 +<a name="l00040"></a>00040 <span class="keyword">public</span>: +<a name="l00042"></a><a class="code" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">00042</a> <a class="code" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37" title="The constructor.">RtError</a>(<span class="keyword">const</span> std::string& message, <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a> type = <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError::UNSPECIFIED</a>) : message_(message), type_(type) {} +<a name="l00043"></a>00043 +<a name="l00045"></a><a class="code" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">00045</a> <span class="keyword">virtual</span> <a class="code" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c" title="The destructor.">~RtError</a>(<span class="keywordtype">void</span>) {}; +<a name="l00046"></a>00046 +<a name="l00048"></a><a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">00048</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(<span class="keywordtype">void</span>) { std::cerr << <span class="charliteral">'\n'</span> << message_ << <span class="stringliteral">"\n\n"</span>; } +<a name="l00049"></a>00049 +<a name="l00051"></a><a class="code" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">00051</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">Type</a>& <a class="code" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c" title="Returns the thrown error message type.">getType</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> type_; } +<a name="l00052"></a>00052 +<a name="l00054"></a><a class="code" href="classRtError.html#ac7f467788e29d246333d7af050801164">00054</a> <span class="keyword">virtual</span> <span class="keyword">const</span> std::string& <a class="code" href="classRtError.html#ac7f467788e29d246333d7af050801164" title="Returns the thrown error message string.">getMessage</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> message_; } +<a name="l00055"></a>00055 +<a name="l00057"></a><a class="code" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5">00057</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5" title="Returns the thrown error message as a C string.">getMessageString</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> message_.c_str(); } +<a name="l00058"></a>00058 }; +<a name="l00059"></a>00059 +<a name="l00060"></a>00060 <span class="preprocessor">#endif</span> +</pre></div></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2010 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 d94ab87..b970ec7 100644 --- a/doc/html/RtMidi_8h-source.html +++ b/doc/html/RtMidi_8h-source.html @@ -11,7 +11,7 @@ <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.10</span> +<a name="l00038"></a>00038 <span class="comment">// RtMidi: Version 1.0.11</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> diff --git a/doc/html/RtMidi_8h_source.html b/doc/html/RtMidi_8h_source.html new file mode 100644 index 0000000..7e9234f --- /dev/null +++ b/doc/html/RtMidi_8h_source.html @@ -0,0 +1,179 @@ +<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 --> +<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.11</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>: +<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="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 <span class="preprocessor">#include <queue></span> +<a name="l00100"></a>00100 +<a name="l00101"></a><a class="code" href="classRtMidiIn.html">00101</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="l00102"></a>00102 { +<a name="l00103"></a>00103 <span class="keyword">public</span>: +<a name="l00104"></a>00104 +<a name="l00106"></a><a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">00106</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="l00107"></a>00107 +<a name="l00109"></a>00109 +<a name="l00112"></a>00112 <a class="code" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5" title="Default constructor that allows an optional client name.">RtMidiIn</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Input Client"</span>) ); +<a name="l00113"></a>00113 +<a name="l00115"></a>00115 <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="l00116"></a>00116 +<a name="l00118"></a>00118 +<a name="l00122"></a>00122 <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="l00123"></a>00123 +<a name="l00125"></a>00125 +<a name="l00131"></a>00131 <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="l00132"></a>00132 +<a name="l00134"></a>00134 +<a name="l00140"></a>00140 <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="l00141"></a>00141 +<a name="l00143"></a>00143 +<a name="l00147"></a>00147 <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="l00148"></a>00148 +<a name="l00150"></a>00150 <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="l00151"></a>00151 +<a name="l00153"></a>00153 <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="l00154"></a>00154 +<a name="l00156"></a>00156 +<a name="l00159"></a>00159 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="l00160"></a>00160 +<a name="l00162"></a>00162 +<a name="l00166"></a>00166 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188" title="Set the maximum number of MIDI messages to be saved in the queue.">setQueueSizeLimit</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSize ); +<a name="l00167"></a>00167 +<a name="l00169"></a>00169 +<a name="l00176"></a>00176 <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="l00177"></a>00177 +<a name="l00179"></a>00179 +<a name="l00186"></a>00186 <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="l00187"></a>00187 +<a name="l00188"></a>00188 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> +<a name="l00189"></a>00189 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> +<a name="l00190"></a><a class="code" href="structRtMidiIn_1_1MidiMessage.html">00190</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> { +<a name="l00191"></a>00191 std::vector<unsigned char> bytes; +<a name="l00192"></a>00192 <span class="keywordtype">double</span> timeStamp; +<a name="l00193"></a>00193 +<a name="l00194"></a>00194 <span class="comment">// Default constructor.</span> +<a name="l00195"></a>00195 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a>() +<a name="l00196"></a>00196 :bytes(3), timeStamp(0.0) {} +<a name="l00197"></a>00197 }; +<a name="l00198"></a>00198 +<a name="l00199"></a>00199 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> +<a name="l00200"></a>00200 <span class="comment">// the MIDI input handling function or thread.</span> +<a name="l00201"></a><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">00201</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> { +<a name="l00202"></a>00202 std::queue<MidiMessage> queue; +<a name="l00203"></a>00203 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> message; +<a name="l00204"></a>00204 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit; +<a name="l00205"></a>00205 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; +<a name="l00206"></a>00206 <span class="keywordtype">bool</span> doInput; +<a name="l00207"></a>00207 <span class="keywordtype">bool</span> firstMessage; +<a name="l00208"></a>00208 <span class="keywordtype">void</span> *apiData; +<a name="l00209"></a>00209 <span class="keywordtype">bool</span> usingCallback; +<a name="l00210"></a>00210 <span class="keywordtype">void</span> *userCallback; +<a name="l00211"></a>00211 <span class="keywordtype">void</span> *userData; +<a name="l00212"></a>00212 <span class="keywordtype">bool</span> continueSysex; +<a name="l00213"></a>00213 +<a name="l00214"></a>00214 <span class="comment">// Default constructor.</span> +<a name="l00215"></a>00215 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a>() +<a name="l00216"></a>00216 : queueLimit(1024), ignoreFlags(7), doInput(<span class="keyword">false</span>), firstMessage(<span class="keyword">true</span>), +<a name="l00217"></a>00217 apiData(0), usingCallback(<span class="keyword">false</span>), userCallback(0), userData(0), +<a name="l00218"></a>00218 continueSysex(<span class="keyword">false</span>) {} +<a name="l00219"></a>00219 }; +<a name="l00220"></a>00220 +<a name="l00221"></a>00221 <span class="keyword">private</span>: +<a name="l00222"></a>00222 +<a name="l00223"></a>00223 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00224"></a>00224 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> inputData_; +<a name="l00225"></a>00225 +<a name="l00226"></a>00226 }; +<a name="l00227"></a>00227 +<a name="l00228"></a>00228 <span class="comment">/**********************************************************************/</span> +<a name="l00240"></a>00240 <span class="comment">/**********************************************************************/</span> +<a name="l00241"></a>00241 +<a name="l00242"></a><a class="code" href="classRtMidiOut.html">00242</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="l00243"></a>00243 { +<a name="l00244"></a>00244 <span class="keyword">public</span>: +<a name="l00245"></a>00245 +<a name="l00247"></a>00247 +<a name="l00250"></a>00250 <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="l00251"></a>00251 +<a name="l00253"></a>00253 <a class="code" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792" title="The destructor closes any open MIDI connections.">~RtMidiOut</a>(); +<a name="l00254"></a>00254 +<a name="l00256"></a>00256 +<a name="l00262"></a>00262 <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="l00263"></a>00263 +<a name="l00265"></a>00265 <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="l00266"></a>00266 +<a name="l00268"></a>00268 +<a name="l00276"></a>00276 <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="l00277"></a>00277 +<a name="l00279"></a>00279 <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="l00280"></a>00280 +<a name="l00282"></a>00282 +<a name="l00285"></a>00285 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="l00286"></a>00286 +<a name="l00288"></a>00288 +<a name="l00292"></a>00292 <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="l00293"></a>00293 +<a name="l00294"></a>00294 <span class="keyword">private</span>: +<a name="l00295"></a>00295 +<a name="l00296"></a>00296 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00297"></a>00297 }; +<a name="l00298"></a>00298 +<a name="l00299"></a>00299 <span class="preprocessor">#endif</span> +</pre></div></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2010 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/annotated.html b/doc/html/annotated.html index 6511830..a054251 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -7,19 +7,21 @@ <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.5.8 --> +<!-- 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="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="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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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-members.html b/doc/html/classRtError-members.html index f8b272d..6e58a11 100644 --- a/doc/html/classRtError-members.html +++ b/doc/html/classRtError-members.html @@ -7,32 +7,32 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>RtError Member List</h1>This is the complete list of members for <a class="el" href="classRtError.html">RtError</a>, including all inherited members.<p><table> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">getMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#45783a02453ae08821d0fb531d6b86b5">getMessageString</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">getType</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85">INVALID_STREAM</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">printMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a>(const std::string &message, Type type=RtError::UNSPECIFIED)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline]</code></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> enum name</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> +<h1>RtError Member List</h1>This is the complete list of members for <a class="el" href="classRtError.html">RtError</a>, including all inherited members.<table> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">getMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5">getMessageString</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">getType</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">INVALID_STREAM</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">printMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a>(const std::string &message, Type type=RtError::UNSPECIFIED)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline]</code></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> enum name</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a> enum value</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 ba79c73..68e9d78 100644 --- a/doc/html/classRtError.html +++ b/doc/html/classRtError.html @@ -7,116 +7,119 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>RtError Class Reference</h1><!-- doxytag: class="RtError" -->Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. -<a href="#_details">More...</a> -<p> -<code>#include <<a class="el" href="RtError_8h-source.html">RtError.h</a>></code> -<p> +<h1>RtError Class Reference</h1><!-- doxytag: class="RtError" --> +<p>Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. +<a href="#_details">More...</a></p> -<p> -<a href="classRtError-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> -<tr><td></td></tr> -<tr><td colspan="2"><br><h2>Public Types</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> { <br> - <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>, -<br> - <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85">INVALID_STREAM</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, -<br> - <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>, -<a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> -<br> - }</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> types. <a href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">More...</a><br></td></tr> -<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a479a305ccbe56be0fd9137b9b405a37"></a><!-- doxytag: member="RtError::RtError" ref="a479a305ccbe56be0fd9137b9b405a37" args="(const std::string &message, Type type=RtError::UNSPECIFIED)" --> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a> (const std::string &message, <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> type=RtError::UNSPECIFIED)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">The constructor. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6793e03386e7e69ffafb65a296dfa48c"></a><!-- doxytag: member="RtError::~RtError" ref="6793e03386e7e69ffafb65a296dfa48c" args="(void)" --> -virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">~RtError</a> (void)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="da41f7472122f45bc5b4677f066e0943"></a><!-- doxytag: member="RtError::printMessage" ref="da41f7472122f45bc5b4677f066e0943" args="(void)" --> -virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">printMessage</a> (void)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Prints thrown error message to stderr. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4ee7df9728d73f533afbaddcd9ca4d9c"></a><!-- doxytag: member="RtError::getType" ref="4ee7df9728d73f533afbaddcd9ca4d9c" args="(void)" --> -virtual const <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">Type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">getType</a> (void)</td></tr> +<p><code>#include <<a class="el" href="RtError_8h_source.html">RtError.h</a>></code></p> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message type. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7f467788e29d246333d7af050801164"></a><!-- doxytag: member="RtError::getMessage" ref="c7f467788e29d246333d7af050801164" args="(void)" --> -virtual const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">getMessage</a> (void)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message string. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="45783a02453ae08821d0fb531d6b86b5"></a><!-- doxytag: member="RtError::getMessageString" ref="45783a02453ae08821d0fb531d6b86b5" args="(void)" --> -virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#45783a02453ae08821d0fb531d6b86b5">getMessageString</a> (void)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message as a C string. <br></td></tr> +<p><a href="classRtError-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="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> { <br/> + <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">WARNING</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">DEBUG_WARNING</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">UNSPECIFIED</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">NO_DEVICES_FOUND</a>, +<br/> + <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">INVALID_DEVICE</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">INVALID_STREAM</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">MEMORY_ERROR</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">INVALID_PARAMETER</a>, +<br/> + <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">DRIVER_ERROR</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">SYSTEM_ERROR</a>, +<a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">THREAD_ERROR</a> +<br/> + }</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> types. </p> + <a href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">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="aa479a305ccbe56be0fd9137b9b405a37"></a><!-- doxytag: member="RtError::RtError" ref="aa479a305ccbe56be0fd9137b9b405a37" args="(const std::string &message, Type type=RtError::UNSPECIFIED)" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> (const std::string &message, <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> type=RtError::UNSPECIFIED)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">The constructor. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6793e03386e7e69ffafb65a296dfa48c"></a><!-- doxytag: member="RtError::~RtError" ref="a6793e03386e7e69ffafb65a296dfa48c" args="(void)" --> +virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">~RtError</a> (void)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada41f7472122f45bc5b4677f066e0943"></a><!-- doxytag: member="RtError::printMessage" ref="ada41f7472122f45bc5b4677f066e0943" args="(void)" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">printMessage</a> (void)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Prints thrown error message to stderr. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ee7df9728d73f533afbaddcd9ca4d9c"></a><!-- doxytag: member="RtError::getType" ref="a4ee7df9728d73f533afbaddcd9ca4d9c" args="(void)" --> +virtual const <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">Type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">getType</a> (void)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message type. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7f467788e29d246333d7af050801164"></a><!-- doxytag: member="RtError::getMessage" ref="ac7f467788e29d246333d7af050801164" args="(void)" --> +virtual const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">getMessage</a> (void)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message string. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45783a02453ae08821d0fb531d6b86b5"></a><!-- doxytag: member="RtError::getMessageString" ref="a45783a02453ae08821d0fb531d6b86b5" args="(void)" --> +virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5">getMessageString</a> (void)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the thrown error message as a C string. <br/></td></tr> </table> -<hr><a name="_details"></a><h2>Detailed Description</h2> -Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. -<p> -The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. See the RtAudio and <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> documentation to know which methods can throw an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>. <hr><h2>Member Enumeration Documentation</h2> -<a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac"></a><!-- doxytag: member="RtError::Type" ref="b04667aae01bffc354a9ac6bda6903ac" args="" --> +<hr/><a name="_details"></a><h2>Detailed Description</h2> +<p>Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. </p> +<p>The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. See the RtAudio and <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> documentation to know which methods can throw an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>. </p> +<hr/><h2>Member Enumeration Documentation</h2> +<a class="anchor" id="ab04667aae01bffc354a9ac6bda6903ac"></a><!-- doxytag: member="RtError::Type" ref="ab04667aae01bffc354a9ac6bda6903ac" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">enum <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError::Type</a> </td> + <td class="memname">enum <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError::Type</a></td> </tr> </table> </div> <div class="memdoc"> -<p> -Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> types. -<p> -<dl compact><dt><b>Enumerator: </b></dt><dd> -<table border="0" cellspacing="2" cellpadding="0"> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398"></a><!-- doxytag: member="WARNING" ref="b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398" args="" -->WARNING</em> </td><td> -A non-critical error. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba"></a><!-- doxytag: member="DEBUG_WARNING" ref="b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba" args="" -->DEBUG_WARNING</em> </td><td> -A non-critical error which might be useful for debugging. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6"></a><!-- doxytag: member="UNSPECIFIED" ref="b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6" args="" -->UNSPECIFIED</em> </td><td> -The default, unspecified error type. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82"></a><!-- doxytag: member="NO_DEVICES_FOUND" ref="b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82" args="" -->NO_DEVICES_FOUND</em> </td><td> -No devices found on system. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1"></a><!-- doxytag: member="INVALID_DEVICE" ref="b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1" args="" -->INVALID_DEVICE</em> </td><td> -An invalid device ID was specified. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85"></a><!-- doxytag: member="INVALID_STREAM" ref="b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85" args="" -->INVALID_STREAM</em> </td><td> -An invalid stream ID was specified. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e"></a><!-- doxytag: member="MEMORY_ERROR" ref="b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e" args="" -->MEMORY_ERROR</em> </td><td> -An error occured during memory allocation. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6"></a><!-- doxytag: member="INVALID_PARAMETER" ref="b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6" args="" -->INVALID_PARAMETER</em> </td><td> -An invalid parameter was specified to a function. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b"></a><!-- doxytag: member="DRIVER_ERROR" ref="b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b" args="" -->DRIVER_ERROR</em> </td><td> -A system driver error occured. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b"></a><!-- doxytag: member="SYSTEM_ERROR" ref="b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b" args="" -->SYSTEM_ERROR</em> </td><td> -A system error occured. </td></tr> -<tr><td valign="top"><em><a class="anchor" name="b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6"></a><!-- doxytag: member="THREAD_ERROR" ref="b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6" args="" -->THREAD_ERROR</em> </td><td> -A thread error occured. </td></tr> +<p>Defined <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> types. </p> +<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398"></a><!-- doxytag: member="WARNING" ref="ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398" args="" -->WARNING</em> </td><td> +<p>A non-critical error. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba"></a><!-- doxytag: member="DEBUG_WARNING" ref="ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba" args="" -->DEBUG_WARNING</em> </td><td> +<p>A non-critical error which might be useful for debugging. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6"></a><!-- doxytag: member="UNSPECIFIED" ref="ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6" args="" -->UNSPECIFIED</em> </td><td> +<p>The default, unspecified error type. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82"></a><!-- doxytag: member="NO_DEVICES_FOUND" ref="ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82" args="" -->NO_DEVICES_FOUND</em> </td><td> +<p>No devices found on system. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1"></a><!-- doxytag: member="INVALID_DEVICE" ref="ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1" args="" -->INVALID_DEVICE</em> </td><td> +<p>An invalid device ID was specified. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85"></a><!-- doxytag: member="INVALID_STREAM" ref="ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85" args="" -->INVALID_STREAM</em> </td><td> +<p>An invalid stream ID was specified. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e"></a><!-- doxytag: member="MEMORY_ERROR" ref="ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e" args="" -->MEMORY_ERROR</em> </td><td> +<p>An error occured during memory allocation. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6"></a><!-- doxytag: member="INVALID_PARAMETER" ref="ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6" args="" -->INVALID_PARAMETER</em> </td><td> +<p>An invalid parameter was specified to a function. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b"></a><!-- doxytag: member="DRIVER_ERROR" ref="ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b" args="" -->DRIVER_ERROR</em> </td><td> +<p>A system driver error occured. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b"></a><!-- doxytag: member="SYSTEM_ERROR" ref="ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b" args="" -->SYSTEM_ERROR</em> </td><td> +<p>A system error occured. </p> +</td></tr> +<tr><td valign="top"><em><a class="anchor" id="ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6"></a><!-- doxytag: member="THREAD_ERROR" ref="ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6" args="" -->THREAD_ERROR</em> </td><td> +<p>A thread error occured. </p> +</td></tr> </table> +</dd> </dl> </div> -</div><p> -<hr>The documentation for this class was generated from the following file:<ul> -<li><a class="el" href="RtError_8h-source.html">RtError.h</a></ul> +</div> +<hr/>The documentation for this class was generated from the following file:<ul> +<li><a class="el" href="RtError_8h_source.html">RtError.h</a></li> +</ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 5736312..d52cd7f 100644 --- a/doc/html/classRtMidi-members.html +++ b/doc/html/classRtMidi-members.html @@ -7,19 +7,19 @@ <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.5.8 --> +<!-- 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.<p><table> - <tr class="memlist"><td><a class="el" href="classRtMidi.html#36125c4fa16550345b57f4a4927f5b4a">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#9a49ef73a1e6007444019a7ae095e195">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#799e2b9f4df39b298518f2b394db3391">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#d9e30a89638f93193cb40edebaa536f5">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#9200cde4f5337c0bc421d20bd4fcf654">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> +<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#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#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#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> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.gif b/doc/html/classRtMidi.gif Binary files differnew file mode 100644 index 0000000..7caa12b --- /dev/null +++ b/doc/html/classRtMidi.gif diff --git a/doc/html/classRtMidi.html b/doc/html/classRtMidi.html index d8fb41f..b7f2247 100644 --- a/doc/html/classRtMidi.html +++ b/doc/html/classRtMidi.html @@ -7,65 +7,61 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>RtMidi Class Reference</h1><!-- doxytag: class="RtMidi" -->An abstract base class for realtime MIDI input/output. -<a href="#_details">More...</a> -<p> -<code>#include <<a class="el" href="RtMidi_8h-source.html">RtMidi.h</a>></code> -<p> +<h1>RtMidi Class Reference</h1><!-- doxytag: class="RtMidi" --> +<p>An abstract base class for realtime MIDI input/output. +<a href="#_details">More...</a></p> + +<p><code>#include <<a class="el" href="RtMidi_8h_source.html">RtMidi.h</a>></code></p> <div class="dynheader"> Inheritance diagram for RtMidi:</div> <div class="dynsection"> - -<p><center><img src="classRtMidi.png" usemap="#RtMidi_map" border="0" alt=""></center> -<map name="RtMidi_map"> -<area href="classRtMidiIn.html" alt="RtMidiIn" shape="rect" coords="0,56,67,80"> -<area href="classRtMidiOut.html" alt="RtMidiOut" shape="rect" coords="77,56,144,80"> + <div class="center"> + <img src="classRtMidi.png" usemap="#RtMidi_map" alt=""/> + <map id="RtMidi_map" name="RtMidi_map"> +<area href="classRtMidiIn.html" alt="RtMidiIn" shape="rect" coords="0,56,67,80"/> +<area href="classRtMidiOut.html" alt="RtMidiOut" shape="rect" coords="77,56,144,80"/> </map> + </div> </div> -<p> -<a href="classRtMidi-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> -<tr><td></td></tr> -<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d9e30a89638f93193cb40edebaa536f5"></a><!-- doxytag: member="RtMidi::openPort" ref="d9e30a89638f93193cb40edebaa536f5" 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#d9e30a89638f93193cb40edebaa536f5">openPort</a> (unsigned int portNumber=0, const std::string portName=std::string("RtMidi"))=0</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#d9e30a89638f93193cb40edebaa536f5" title="Pure virtual openPort() function.">openPort()</a> function. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9200cde4f5337c0bc421d20bd4fcf654"></a><!-- doxytag: member="RtMidi::openVirtualPort" ref="9200cde4f5337c0bc421d20bd4fcf654" args="(const std::string portName=std::string("RtMidi"))=0" --> -virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654">openVirtualPort</a> (const std::string portName=std::string("RtMidi"))=0</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654" title="Pure virtual openVirtualPort() function.">openVirtualPort()</a> function. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a49ef73a1e6007444019a7ae095e195"></a><!-- doxytag: member="RtMidi::getPortCount" ref="9a49ef73a1e6007444019a7ae095e195" args="()=0" --> -virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#9a49ef73a1e6007444019a7ae095e195">getPortCount</a> ()=0</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#9a49ef73a1e6007444019a7ae095e195" title="Pure virtual getPortCount() function.">getPortCount()</a> function. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="799e2b9f4df39b298518f2b394db3391"></a><!-- doxytag: member="RtMidi::getPortName" ref="799e2b9f4df39b298518f2b394db3391" args="(unsigned int portNumber=0)=0" --> -virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391">getPortName</a> (unsigned int portNumber=0)=0</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391" title="Pure virtual getPortName() function.">getPortName()</a> function. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="36125c4fa16550345b57f4a4927f5b4a"></a><!-- doxytag: member="RtMidi::closePort" ref="36125c4fa16550345b57f4a4927f5b4a" args="(void)=0" --> -virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#36125c4fa16550345b57f4a4927f5b4a">closePort</a> (void)=0</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#36125c4fa16550345b57f4a4927f5b4a" title="Pure virtual closePort() function.">closePort()</a> function. <br></td></tr> +<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 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> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5" title="Pure virtual openPort() function.">openPort()</a> function. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9200cde4f5337c0bc421d20bd4fcf654"></a><!-- doxytag: member="RtMidi::openVirtualPort" ref="a9200cde4f5337c0bc421d20bd4fcf654" args="(const std::string portName=std::string("RtMidi"))=0" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">openVirtualPort</a> (const std::string portName=std::string("RtMidi"))=0</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654" title="Pure virtual openVirtualPort() function.">openVirtualPort()</a> function. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a49ef73a1e6007444019a7ae095e195"></a><!-- doxytag: member="RtMidi::getPortCount" ref="a9a49ef73a1e6007444019a7ae095e195" args="()=0" --> +virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">getPortCount</a> ()=0</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195" title="Pure virtual getPortCount() function.">getPortCount()</a> function. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a799e2b9f4df39b298518f2b394db3391"></a><!-- doxytag: member="RtMidi::getPortName" ref="a799e2b9f4df39b298518f2b394db3391" args="(unsigned int portNumber=0)=0" --> +virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">getPortName</a> (unsigned int portNumber=0)=0</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391" title="Pure virtual getPortName() function.">getPortName()</a> function. <br/></td></tr> +<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> </table> -<hr><a name="_details"></a><h2>Detailed Description</h2> -An abstract base class for realtime MIDI input/output. -<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> -<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> -<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-2009 Gary P. Scavone<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> -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<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> -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. <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></ul> +<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-2010 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>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/>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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.png b/doc/html/classRtMidi.png Binary files differindex 8b42720..0922029 100644 --- a/doc/html/classRtMidi.png +++ b/doc/html/classRtMidi.png diff --git a/doc/html/classRtMidiIn-members.html b/doc/html/classRtMidiIn-members.html index fc73e7d..f83f120 100644 --- a/doc/html/classRtMidiIn-members.html +++ b/doc/html/classRtMidiIn-members.html @@ -7,27 +7,27 @@ <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.5.8 --> +<!-- 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.<p><table> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#de23832a66c1ed56965c26325602543e">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#55bacf0d228fd8e3be6a79d12fd1dc39">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#1ba10ecd276b30a8579c7d60a9c890eb">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#62b1b38aa8e5f11cd66f03d59228f4e4">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#f2961fff09fa01a3d5bc0f0c5a042aaf">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#f9507125aaa42276ccc01df576fc3533">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#7e853661b1056083e07318d67c51f6fd">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#245261b3f12ce727faed18fcfeef18c2">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="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">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#31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a>(const std::string clientName=std::string("RtMidi Input Client"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d">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#2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a>(unsigned int queueSize)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#f865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> +<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="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#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a>(const std::string clientName=std::string("RtMidi Input Client"))</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#a2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a>(unsigned int queueSize)</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> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.gif b/doc/html/classRtMidiIn.gif Binary files differnew file mode 100644 index 0000000..f4c5298 --- /dev/null +++ b/doc/html/classRtMidiIn.gif diff --git a/doc/html/classRtMidiIn.html b/doc/html/classRtMidiIn.html index f533ac7..a02046d 100644 --- a/doc/html/classRtMidiIn.html +++ b/doc/html/classRtMidiIn.html @@ -7,91 +7,76 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>RtMidiIn Class Reference</h1><!-- doxytag: class="RtMidiIn" --><!-- doxytag: inherits="RtMidi" -->A realtime MIDI input class. -<a href="#_details">More...</a> -<p> -<code>#include <<a class="el" href="RtMidi_8h-source.html">RtMidi.h</a>></code> -<p> +<h1>RtMidiIn Class Reference</h1><!-- doxytag: class="RtMidiIn" --><!-- doxytag: inherits="RtMidi" --> +<p>A realtime MIDI input class. +<a href="#_details">More...</a></p> + +<p><code>#include <<a class="el" href="RtMidi_8h_source.html">RtMidi.h</a>></code></p> <div class="dynheader"> Inheritance diagram for RtMidiIn:</div> <div class="dynsection"> - -<p><center><img src="classRtMidiIn.png" usemap="#RtMidiIn_map" border="0" alt=""></center> -<map name="RtMidiIn_map"> -<area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,57,24"> + <div class="center"> + <img src="classRtMidiIn.png" usemap="#RtMidiIn_map" alt=""/> + <map id="RtMidiIn_map" name="RtMidiIn_map"> +<area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,57,24"/> </map> + </div> </div> -<p> -<a href="classRtMidiIn-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> -<tr><td></td></tr> -<tr><td colspan="2"><br><h2>Classes</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><b>MidiMessage</b></td></tr> - -<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><b>RtMidiInData</b></td></tr> - -<tr><td colspan="2"><br><h2>Public Types</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="297d2eb3c3420b437970a6fc59d89cbf"></a><!-- doxytag: member="RtMidiIn::RtMidiCallback" ref="297d2eb3c3420b437970a6fc59d89cbf" args=")(double timeStamp, std::vector< unsigned char > *message, void *userData)" --> -typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">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"><br><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> (const std::string clientName=std::string("RtMidi Input Client"))</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name. <a href="#31abb996e5fdc4a8f9dc5a50848e2ee5"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f865d88c154b6fdadc640da5dc278d40"></a><!-- doxytag: member="RtMidiIn::~RtMidiIn" ref="f865d88c154b6fdadc640da5dc278d40" args="()" --> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#f865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a> ()</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" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#7e853661b1056083e07318d67c51f6fd">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="#7e853661b1056083e07318d67c51f6fd"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#245261b3f12ce727faed18fcfeef18c2">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="#245261b3f12ce727faed18fcfeef18c2"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d">setCallback</a> (<a class="el" href="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> callback, void *userData=0)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a callback function to be invoked for incoming MIDI messages. <a href="#7590563461c7467608a4b3806406b32d"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#de23832a66c1ed56965c26325602543e">cancelCallback</a> ()</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Cancel use of the current callback function (if one exists). <a href="#de23832a66c1ed56965c26325602543e"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="55bacf0d228fd8e3be6a79d12fd1dc39"></a><!-- doxytag: member="RtMidiIn::closePort" ref="55bacf0d228fd8e3be6a79d12fd1dc39" args="(void)" --> -void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#55bacf0d228fd8e3be6a79d12fd1dc39">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" nowrap align="right" valign="top"><a class="anchor" name="62b1b38aa8e5f11cd66f03d59228f4e4"></a><!-- doxytag: member="RtMidiIn::getPortCount" ref="62b1b38aa8e5f11cd66f03d59228f4e4" args="()" --> -unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4">getPortCount</a> ()</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of available MIDI input ports. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#f2961fff09fa01a3d5bc0f0c5a042aaf">getPortName</a> (unsigned int portNumber=0)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string identifier for the specified MIDI input port number. <a href="#f2961fff09fa01a3d5bc0f0c5a042aaf"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a> (unsigned int queueSize)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the maximum number of MIDI messages to be saved in the queue. <a href="#2e15868916737039e0a34d47bffdf188"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#f9507125aaa42276ccc01df576fc3533">ignoreTypes</a> (bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Specify whether certain MIDI message types should be queued or ignored during input. <a href="#f9507125aaa42276ccc01df576fc3533"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb">getMessage</a> (std::vector< unsigned char > *message)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill the user-provided vector with the data bytes for the next available MIDI message in the input queue and return the event delta-time in seconds. <a href="#1ba10ecd276b30a8579c7d60a9c890eb"></a><br></td></tr> +<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_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#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> (const std::string clientName=std::string("RtMidi Input Client"))</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name. <a href="#a31abb996e5fdc4a8f9dc5a50848e2ee5"></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="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">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> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a callback function to be invoked for incoming MIDI messages. <a href="#a7590563461c7467608a4b3806406b32d"></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#ade23832a66c1ed56965c26325602543e">cancelCallback</a> ()</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Cancel use of the current callback function (if one exists). <a href="#ade23832a66c1ed56965c26325602543e"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55bacf0d228fd8e3be6a79d12fd1dc39"></a><!-- doxytag: member="RtMidiIn::closePort" ref="a55bacf0d228fd8e3be6a79d12fd1dc39" args="(void)" --> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">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"><a class="anchor" id="a62b1b38aa8e5f11cd66f03d59228f4e4"></a><!-- doxytag: member="RtMidiIn::getPortCount" ref="a62b1b38aa8e5f11cd66f03d59228f4e4" args="()" --> +unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">getPortCount</a> ()</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of available MIDI input ports. <br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">getPortName</a> (unsigned int portNumber=0)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string identifier for the specified MIDI input port number. <a href="#af2961fff09fa01a3d5bc0f0c5a042aaf"></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#a2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a> (unsigned int queueSize)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the maximum number of MIDI messages to be saved in the queue. <a href="#a2e15868916737039e0a34d47bffdf188"></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#af9507125aaa42276ccc01df576fc3533">ignoreTypes</a> (bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Specify whether certain MIDI message types should be queued or ignored during input. <a href="#af9507125aaa42276ccc01df576fc3533"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">getMessage</a> (std::vector< unsigned char > *message)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill the user-provided vector with the data bytes for the next available MIDI message in the input queue and return the event delta-time in seconds. <a href="#a1ba10ecd276b30a8579c7d60a9c890eb"></a><br/></td></tr> </table> -<hr><a name="_details"></a><h2>Detailed Description</h2> -A realtime MIDI input class. -<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#1ba10ecd276b30a8579c7d60a9c890eb" 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> -by Gary P. Scavone, 2003-2008. <hr><h2>Constructor & Destructor Documentation</h2> -<a class="anchor" name="31abb996e5fdc4a8f9dc5a50848e2ee5"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="31abb996e5fdc4a8f9dc5a50848e2ee5" args="(const std::string clientName=std::string("RtMidi Input Client"))" --> +<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> +<hr/><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" id="a31abb996e5fdc4a8f9dc5a50848e2ee5"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="a31abb996e5fdc4a8f9dc5a50848e2ee5" args="(const std::string clientName=std::string("RtMidi Input Client"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">RtMidiIn::RtMidiIn </td> + <td class="memname">RtMidiIn::RtMidiIn </td> <td>(</td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Input Client")</code> </td> + <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Input Client")</code></td> <td> ) </td> <td></td> </tr> @@ -99,19 +84,18 @@ by Gary P. Scavone, 2003-2008. <hr><h2>Constructor & Destructor Documentatio </div> <div class="memdoc"> -<p> -Default constructor that allows an optional client name. -<p> -An exception will be thrown if a MIDI system initialization error occurs. +<p>Default constructor that allows an optional client name. </p> +<p>An exception will be thrown if a MIDI system initialization error occurs. </p> + </div> -</div><p> -<hr><h2>Member Function Documentation</h2> -<a class="anchor" name="7e853661b1056083e07318d67c51f6fd"></a><!-- doxytag: member="RtMidiIn::openPort" ref="7e853661b1056083e07318d67c51f6fd" args="(unsigned int portNumber=0, const std::string Portname=std::string("RtMidi Input"))" --> +</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"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::openPort </td> + <td class="memname">void RtMidiIn::openPort </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>portNumber</em> = <code>0</code>, </td> @@ -131,23 +115,22 @@ An exception will be thrown if a MIDI system initialization error occurs. </div> <div class="memdoc"> -<p> -Open a MIDI input connection. -<p> -An optional port number greater than 0 can be specified. Otherwise, the default or first port found is opened. -<p>Implements <a class="el" href="classRtMidi.html#d9e30a89638f93193cb40edebaa536f5">RtMidi</a>.</p> +<p>Open a MIDI input connection. </p> +<p>An optional port number greater than 0 can be specified. Otherwise, the default or first port found is opened. </p> + +<p>Implements <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a>.</p> </div> -</div><p> -<a class="anchor" name="245261b3f12ce727faed18fcfeef18c2"></a><!-- doxytag: member="RtMidiIn::openVirtualPort" ref="245261b3f12ce727faed18fcfeef18c2" args="(const std::string portName=std::string("RtMidi Input"))" --> +</div> +<a class="anchor" id="a245261b3f12ce727faed18fcfeef18c2"></a><!-- doxytag: member="RtMidiIn::openVirtualPort" ref="a245261b3f12ce727faed18fcfeef18c2" args="(const std::string portName=std::string("RtMidi Input"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::openVirtualPort </td> + <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> </tr> @@ -155,22 +138,21 @@ An optional port number greater than 0 can be specified. Otherwise, the default </div> <div class="memdoc"> -<p> -Create a virtual input port, with optional name, to allow software connections (OS X and ALSA only). -<p> -This function creates a virtual MIDI input port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing for the other APIs). -<p>Implements <a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a>.</p> +<p>Create a virtual input port, with optional name, to allow software connections (OS X and ALSA only). </p> +<p>This function creates a virtual MIDI input port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing for the other APIs). </p> +<p>Implements <a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a>.</p> + +</div> </div> -</div><p> -<a class="anchor" name="7590563461c7467608a4b3806406b32d"></a><!-- doxytag: member="RtMidiIn::setCallback" ref="7590563461c7467608a4b3806406b32d" args="(RtMidiCallback callback, void *userData=0)" --> +<a class="anchor" id="a7590563461c7467608a4b3806406b32d"></a><!-- doxytag: member="RtMidiIn::setCallback" ref="a7590563461c7467608a4b3806406b32d" args="(RtMidiCallback callback, void *userData=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::setCallback </td> + <td class="memname">void RtMidiIn::setCallback </td> <td>(</td> - <td class="paramtype"><a class="el" href="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> </td> + <td class="paramtype"><a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> </td> <td class="paramname"> <em>callback</em>, </td> </tr> <tr> @@ -188,20 +170,19 @@ This function creates a virtual MIDI input port to which other software applicat </div> <div class="memdoc"> -<p> -Set a callback function to be invoked for incoming MIDI messages. -<p> -The callback function will be called whenever an incoming MIDI message is received. While not absolutely necessary, it is best to set the callback function before opening a MIDI port to avoid leaving some messages in the queue. +<p>Set a callback function to be invoked for incoming MIDI messages. </p> +<p>The callback function will be called whenever an incoming MIDI message is received. While not absolutely necessary, it is best to set the callback function before opening a MIDI port to avoid leaving some messages in the queue. </p> + +</div> </div> -</div><p> -<a class="anchor" name="de23832a66c1ed56965c26325602543e"></a><!-- doxytag: member="RtMidiIn::cancelCallback" ref="de23832a66c1ed56965c26325602543e" args="()" --> +<a class="anchor" id="ade23832a66c1ed56965c26325602543e"></a><!-- doxytag: member="RtMidiIn::cancelCallback" ref="ade23832a66c1ed56965c26325602543e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::cancelCallback </td> + <td class="memname">void RtMidiIn::cancelCallback </td> <td>(</td> - <td class="paramname"> </td> + <td class="paramname"></td> <td> ) </td> <td></td> </tr> @@ -209,21 +190,20 @@ The callback function will be called whenever an incoming MIDI message is receiv </div> <div class="memdoc"> -<p> -Cancel use of the current callback function (if one exists). -<p> -Subsequent incoming MIDI messages will be written to the queue and can be retrieved with the <em>getMessage</em> function. +<p>Cancel use of the current callback function (if one exists). </p> +<p>Subsequent incoming MIDI messages will be written to the queue and can be retrieved with the <em>getMessage</em> function. </p> + +</div> </div> -</div><p> -<a class="anchor" name="f2961fff09fa01a3d5bc0f0c5a042aaf"></a><!-- doxytag: member="RtMidiIn::getPortName" ref="f2961fff09fa01a3d5bc0f0c5a042aaf" args="(unsigned int portNumber=0)" --> +<a class="anchor" id="af2961fff09fa01a3d5bc0f0c5a042aaf"></a><!-- doxytag: member="RtMidiIn::getPortName" ref="af2961fff09fa01a3d5bc0f0c5a042aaf" args="(unsigned int portNumber=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">std::string RtMidiIn::getPortName </td> + <td class="memname">std::string RtMidiIn::getPortName </td> <td>(</td> <td class="paramtype">unsigned int </td> - <td class="paramname"> <em>portNumber</em> = <code>0</code> </td> + <td class="paramname"> <em>portNumber</em> = <code>0</code></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> @@ -231,23 +211,22 @@ Subsequent incoming MIDI messages will be written to the queue and can be retrie </div> <div class="memdoc"> -<p> -Return a string identifier for the specified MIDI input port number. -<p> -An exception is thrown if an invalid port specifier is provided. -<p>Implements <a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391">RtMidi</a>.</p> +<p>Return a string identifier for the specified MIDI input port number. </p> +<p>An exception is thrown if an invalid port specifier is provided. </p> +<p>Implements <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a>.</p> + +</div> </div> -</div><p> -<a class="anchor" name="2e15868916737039e0a34d47bffdf188"></a><!-- doxytag: member="RtMidiIn::setQueueSizeLimit" ref="2e15868916737039e0a34d47bffdf188" args="(unsigned int queueSize)" --> +<a class="anchor" id="a2e15868916737039e0a34d47bffdf188"></a><!-- doxytag: member="RtMidiIn::setQueueSizeLimit" ref="a2e15868916737039e0a34d47bffdf188" args="(unsigned int queueSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::setQueueSizeLimit </td> + <td class="memname">void RtMidiIn::setQueueSizeLimit </td> <td>(</td> <td class="paramtype">unsigned int </td> - <td class="paramname"> <em>queueSize</em> </td> + <td class="paramname"> <em>queueSize</em></td> <td> ) </td> <td></td> </tr> @@ -255,18 +234,17 @@ An exception is thrown if an invalid port specifier is provided. </div> <div class="memdoc"> -<p> -Set the maximum number of MIDI messages to be saved in the queue. -<p> -If the queue size limit is reached, incoming messages will be ignored. The default limit is 1024. +<p>Set the maximum number of MIDI messages to be saved in the queue. </p> +<p>If the queue size limit is reached, incoming messages will be ignored. The default limit is 1024. </p> + +</div> </div> -</div><p> -<a class="anchor" name="f9507125aaa42276ccc01df576fc3533"></a><!-- doxytag: member="RtMidiIn::ignoreTypes" ref="f9507125aaa42276ccc01df576fc3533" args="(bool midiSysex=true, bool midiTime=true, bool midiSense=true)" --> +<a class="anchor" id="af9507125aaa42276ccc01df576fc3533"></a><!-- doxytag: member="RtMidiIn::ignoreTypes" ref="af9507125aaa42276ccc01df576fc3533" args="(bool midiSysex=true, bool midiTime=true, bool midiSense=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiIn::ignoreTypes </td> + <td class="memname">void RtMidiIn::ignoreTypes </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>midiSysex</em> = <code>true</code>, </td> @@ -292,21 +270,20 @@ If the queue size limit is reached, incoming messages will be ignored. The defau </div> <div class="memdoc"> -<p> -Specify whether certain MIDI message types should be queued or ignored during input. -<p> -By default, MIDI timing and active sensing messages are ignored during message input because of their relative high data rates. MIDI sysex messages are ignored by default as well. Variable values of "true" imply that the respective message type will be ignored. +<p>Specify whether certain MIDI message types should be queued or ignored during input. </p> +<p>By default, MIDI timing and active sensing messages are ignored during message input because of their relative high data rates. MIDI sysex messages are ignored by default as well. Variable values of "true" imply that the respective message type will be ignored. </p> + +</div> </div> -</div><p> -<a class="anchor" name="1ba10ecd276b30a8579c7d60a9c890eb"></a><!-- doxytag: member="RtMidiIn::getMessage" ref="1ba10ecd276b30a8579c7d60a9c890eb" args="(std::vector< unsigned char > *message)" --> +<a class="anchor" id="a1ba10ecd276b30a8579c7d60a9c890eb"></a><!-- doxytag: member="RtMidiIn::getMessage" ref="a1ba10ecd276b30a8579c7d60a9c890eb" args="(std::vector< unsigned char > *message)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">double RtMidiIn::getMessage </td> + <td class="memname">double RtMidiIn::getMessage </td> <td>(</td> <td class="paramtype">std::vector< unsigned char > * </td> - <td class="paramname"> <em>message</em> </td> + <td class="paramname"> <em>message</em></td> <td> ) </td> <td></td> </tr> @@ -314,19 +291,19 @@ By default, MIDI timing and active sensing messages are ignored during message i </div> <div class="memdoc"> -<p> -Fill the user-provided vector with the data bytes for the next available MIDI message in the input queue and return the event delta-time in seconds. -<p> -This function returns immediately whether a new message is available or not. A valid message is indicated by a non-zero vector size. An exception is thrown if an error occurs during message retrieval or an input connection was not previously established. +<p>Fill the user-provided vector with the data bytes for the next available MIDI message in the input queue and return the event delta-time in seconds. </p> +<p>This function returns immediately whether a new message is available or not. A valid message is indicated by a non-zero vector size. An exception is thrown if an error occurs during message retrieval or an input connection was not previously established. </p> + +</div> </div> -</div><p> -<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></ul> +<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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.png b/doc/html/classRtMidiIn.png Binary files differindex 6e595ec..11c8316 100644 --- a/doc/html/classRtMidiIn.png +++ b/doc/html/classRtMidiIn.png diff --git a/doc/html/classRtMidiOut-members.html b/doc/html/classRtMidiOut-members.html index 0d78ff4..2f1b5d5 100644 --- a/doc/html/classRtMidiOut-members.html +++ b/doc/html/classRtMidiOut-members.html @@ -7,22 +7,22 @@ <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.5.8 --> +<!-- 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.<p><table> - <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#3092e53a8aed2d3b163fcaa05fafd041">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#d6cddbcc7faa20a7be229f765ade0877">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#cc4ae0ab71a49ae7629075d5a9cd837c">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#1b280d67317cd473a8816aeb2fe6c186">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#47068e1c076d91fd89587c0ccdeddc7a">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#8ed1b492900f3410bf91ad53203b9db3">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#0bd8972ef8ac4e8d37ccc4b5d51c2eb3">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#b776c431bd84193febb2f78fb8c7e792">~RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> +<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> </table></div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.gif b/doc/html/classRtMidiOut.gif Binary files differnew file mode 100644 index 0000000..5041efa --- /dev/null +++ b/doc/html/classRtMidiOut.gif diff --git a/doc/html/classRtMidiOut.html b/doc/html/classRtMidiOut.html index 7470d4f..e4d3579 100644 --- a/doc/html/classRtMidiOut.html +++ b/doc/html/classRtMidiOut.html @@ -7,69 +7,61 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>RtMidiOut Class Reference</h1><!-- doxytag: class="RtMidiOut" --><!-- doxytag: inherits="RtMidi" -->A realtime MIDI output class. -<a href="#_details">More...</a> -<p> -<code>#include <<a class="el" href="RtMidi_8h-source.html">RtMidi.h</a>></code> -<p> +<h1>RtMidiOut Class Reference</h1><!-- doxytag: class="RtMidiOut" --><!-- doxytag: inherits="RtMidi" --> +<p>A realtime MIDI output class. +<a href="#_details">More...</a></p> + +<p><code>#include <<a class="el" href="RtMidi_8h_source.html">RtMidi.h</a>></code></p> <div class="dynheader"> Inheritance diagram for RtMidiOut:</div> <div class="dynsection"> - -<p><center><img src="classRtMidiOut.png" usemap="#RtMidiOut_map" border="0" alt=""></center> -<map name="RtMidiOut_map"> -<area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,67,24"> + <div class="center"> + <img src="classRtMidiOut.png" usemap="#RtMidiOut_map" alt=""/> + <map id="RtMidiOut_map" name="RtMidiOut_map"> +<area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,67,24"/> </map> + </div> </div> -<p> -<a href="classRtMidiOut-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> -<tr><td></td></tr> -<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#8ed1b492900f3410bf91ad53203b9db3">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="#8ed1b492900f3410bf91ad53203b9db3"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b776c431bd84193febb2f78fb8c7e792"></a><!-- doxytag: member="RtMidiOut::~RtMidiOut" ref="b776c431bd84193febb2f78fb8c7e792" args="()" --> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#b776c431bd84193febb2f78fb8c7e792">~RtMidiOut</a> ()</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">The destructor closes any open MIDI connections. <br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#1b280d67317cd473a8816aeb2fe6c186">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="#1b280d67317cd473a8816aeb2fe6c186"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3092e53a8aed2d3b163fcaa05fafd041"></a><!-- doxytag: member="RtMidiOut::closePort" ref="3092e53a8aed2d3b163fcaa05fafd041" args="()" --> -void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#3092e53a8aed2d3b163fcaa05fafd041">closePort</a> ()</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" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#47068e1c076d91fd89587c0ccdeddc7a">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="#47068e1c076d91fd89587c0ccdeddc7a"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d6cddbcc7faa20a7be229f765ade0877"></a><!-- doxytag: member="RtMidiOut::getPortCount" ref="d6cddbcc7faa20a7be229f765ade0877" args="()" --> -unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#d6cddbcc7faa20a7be229f765ade0877">getPortCount</a> ()</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" nowrap align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#cc4ae0ab71a49ae7629075d5a9cd837c">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="#cc4ae0ab71a49ae7629075d5a9cd837c"></a><br></td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3">sendMessage</a> (std::vector< unsigned char > *message)</td></tr> - -<tr><td class="mdescLeft"> </td><td class="mdescRight">Immediately send a single message out an open MIDI output port. <a href="#0bd8972ef8ac4e8d37ccc4b5d51c2eb3"></a><br></td></tr> +<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="mdescLeft"> </td><td class="mdescRight">The destructor closes any open MIDI connections. <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="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="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> +<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">sendMessage</a> (std::vector< unsigned char > *message)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Immediately send a single message out an open MIDI output port. <a href="#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3"></a><br/></td></tr> </table> -<hr><a name="_details"></a><h2>Detailed Description</h2> -A realtime MIDI output class. -<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> -by Gary P. Scavone, 2003-2008. <hr><h2>Constructor & Destructor Documentation</h2> -<a class="anchor" name="8ed1b492900f3410bf91ad53203b9db3"></a><!-- doxytag: member="RtMidiOut::RtMidiOut" ref="8ed1b492900f3410bf91ad53203b9db3" args="(const std::string clientName=std::string("RtMidi Output Client"))" --> +<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> +<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"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">RtMidiOut::RtMidiOut </td> + <td class="memname">RtMidiOut::RtMidiOut </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 class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Output Client")</code></td> <td> ) </td> <td></td> </tr> @@ -77,19 +69,18 @@ by Gary P. Scavone, 2003-2008. <hr><h2>Constructor & Destructor Documentatio </div> <div class="memdoc"> -<p> -Default constructor that allows an optional client name. -<p> -An exception will be thrown if a MIDI system initialization error occurs. +<p>Default constructor that allows an optional client name. </p> +<p>An exception will be thrown if a MIDI system initialization error occurs. </p> + +</div> </div> -</div><p> -<hr><h2>Member Function Documentation</h2> -<a class="anchor" name="1b280d67317cd473a8816aeb2fe6c186"></a><!-- doxytag: member="RtMidiOut::openPort" ref="1b280d67317cd473a8816aeb2fe6c186" args="(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Output"))" --> +<hr/><h2>Member Function Documentation</h2> +<a class="anchor" id="a1b280d67317cd473a8816aeb2fe6c186"></a><!-- doxytag: member="RtMidiOut::openPort" ref="a1b280d67317cd473a8816aeb2fe6c186" args="(unsigned int portNumber=0, const std::string portName=std::string("RtMidi Output"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiOut::openPort </td> + <td class="memname">void RtMidiOut::openPort </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>portNumber</em> = <code>0</code>, </td> @@ -109,23 +100,22 @@ An exception will be thrown if a MIDI system initialization error occurs. </div> <div class="memdoc"> -<p> -Open a MIDI output connection. -<p> -An optional port number greater than 0 can be specified. Otherwise, the default or first port found is opened. An exception is thrown if an error occurs while attempting to make the port connection. -<p>Implements <a class="el" href="classRtMidi.html#d9e30a89638f93193cb40edebaa536f5">RtMidi</a>.</p> +<p>Open a MIDI output connection. </p> +<p>An optional port number greater than 0 can be specified. Otherwise, the default or first port found is opened. An exception is thrown if an error occurs while attempting to make the port connection. </p> + +<p>Implements <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a>.</p> </div> -</div><p> -<a class="anchor" name="47068e1c076d91fd89587c0ccdeddc7a"></a><!-- doxytag: member="RtMidiOut::openVirtualPort" ref="47068e1c076d91fd89587c0ccdeddc7a" args="(const std::string portName=std::string("RtMidi Output"))" --> +</div> +<a class="anchor" id="a47068e1c076d91fd89587c0ccdeddc7a"></a><!-- doxytag: member="RtMidiOut::openVirtualPort" ref="a47068e1c076d91fd89587c0ccdeddc7a" args="(const std::string portName=std::string("RtMidi Output"))" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiOut::openVirtualPort </td> + <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> </tr> @@ -133,23 +123,22 @@ An optional port number greater than 0 can be specified. Otherwise, the default </div> <div class="memdoc"> -<p> -Create a virtual output port, with optional name, to allow software connections (OS X and ALSA only). -<p> -This function creates a virtual MIDI output port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing with the other APIs). An exception is thrown if an error occurs while attempting to create the virtual port. -<p>Implements <a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a>.</p> +<p>Create a virtual output port, with optional name, to allow software connections (OS X and ALSA only). </p> +<p>This function creates a virtual MIDI output port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing with the other APIs). An exception is thrown if an error occurs while attempting to create the virtual port. </p> + +<p>Implements <a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a>.</p> </div> -</div><p> -<a class="anchor" name="cc4ae0ab71a49ae7629075d5a9cd837c"></a><!-- doxytag: member="RtMidiOut::getPortName" ref="cc4ae0ab71a49ae7629075d5a9cd837c" args="(unsigned int portNumber=0)" --> +</div> +<a class="anchor" id="acc4ae0ab71a49ae7629075d5a9cd837c"></a><!-- doxytag: member="RtMidiOut::getPortName" ref="acc4ae0ab71a49ae7629075d5a9cd837c" args="(unsigned int portNumber=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">std::string RtMidiOut::getPortName </td> + <td class="memname">std::string RtMidiOut::getPortName </td> <td>(</td> <td class="paramtype">unsigned int </td> - <td class="paramname"> <em>portNumber</em> = <code>0</code> </td> + <td class="paramname"> <em>portNumber</em> = <code>0</code></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> @@ -157,23 +146,22 @@ This function creates a virtual MIDI output port to which other software applica </div> <div class="memdoc"> -<p> -Return a string identifier for the specified MIDI port type and number. -<p> -An exception is thrown if an invalid port specifier is provided. -<p>Implements <a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391">RtMidi</a>.</p> +<p>Return a string identifier for the specified MIDI port type and number. </p> +<p>An exception is thrown if an invalid port specifier is provided. </p> + +<p>Implements <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a>.</p> </div> -</div><p> -<a class="anchor" name="0bd8972ef8ac4e8d37ccc4b5d51c2eb3"></a><!-- doxytag: member="RtMidiOut::sendMessage" ref="0bd8972ef8ac4e8d37ccc4b5d51c2eb3" args="(std::vector< unsigned char > *message)" --> +</div> +<a class="anchor" id="a0bd8972ef8ac4e8d37ccc4b5d51c2eb3"></a><!-- doxytag: member="RtMidiOut::sendMessage" ref="a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" args="(std::vector< unsigned char > *message)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> - <td class="memname">void RtMidiOut::sendMessage </td> + <td class="memname">void RtMidiOut::sendMessage </td> <td>(</td> <td class="paramtype">std::vector< unsigned char > * </td> - <td class="paramname"> <em>message</em> </td> + <td class="paramname"> <em>message</em></td> <td> ) </td> <td></td> </tr> @@ -181,19 +169,19 @@ An exception is thrown if an invalid port specifier is provided. </div> <div class="memdoc"> -<p> -Immediately send a single message out an open MIDI output port. -<p> -An exception is thrown if an error occurs during output or an output connection was not previously established. +<p>Immediately send a single message out an open MIDI output port. </p> +<p>An exception is thrown if an error occurs during output or an output connection was not previously established. </p> + +</div> </div> -</div><p> -<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></ul> +<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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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.png b/doc/html/classRtMidiOut.png Binary files differindex 9b2dadb..ae613f8 100644 --- a/doc/html/classRtMidiOut.png +++ b/doc/html/classRtMidiOut.png diff --git a/doc/html/classes.html b/doc/html/classes.html index d3a35fb..cd6b05c 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -7,17 +7,18 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_R">R</a></div><p> +<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_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="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidi.html">RtMidi</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a> </td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_R">R</a></div><p> +<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 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><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 class="el" href="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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/doxygen.css b/doc/html/doxygen.css index 3767dc9..b057a92 100644 --- a/doc/html/doxygen.css +++ b/doc/html/doxygen.css @@ -1,3 +1,5 @@ +/* The standard CSS for doxygen */ + body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; @@ -18,12 +20,49 @@ h3 { font-size: 100%; } +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + /* @end */ caption { font-weight: bold; } +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + div.qindex, div.navtab{ background-color: #e8eef2; border: 1px solid #84b0c7; @@ -80,9 +119,11 @@ a.elRef { } a.code { + color: #3030f0; } a.codeRef { + color: #3030f0; } /* @end */ @@ -101,6 +142,10 @@ pre.fragment { background-color: #f5f5f5; padding: 4px 6px; margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; } div.ah { @@ -161,6 +206,22 @@ img.formulaInl { vertical-align: middle; } +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + /* @group Code Colorization */ span.keyword { @@ -267,8 +328,13 @@ hr { border-top: 1px solid #ccc; } +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + .memTemplParams { color: #606060; + white-space: nowrap; } /* @end */ @@ -295,6 +361,7 @@ hr { .memitem { padding: 0; + margin-bottom: 10px; } .memname { @@ -312,8 +379,11 @@ hr { font-weight: bold; -webkit-border-top-left-radius: 8px; -webkit-border-top-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -moz-border-radius-topleft: 8px; -moz-border-radius-topright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + } .memdoc { @@ -322,8 +392,10 @@ hr { border-top-width: 0; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; } .paramkey { @@ -439,3 +511,22 @@ address { font-style: normal; color: #333; } + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #153788; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #254798; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + diff --git a/doc/html/files.html b/doc/html/files.html index 9c96640..2bcaa54 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -7,17 +7,17 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <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"><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> </table> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 931205d..ef6b7fa 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -7,7 +7,7 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="tabs"> <ul> <li class="current"><a href="functions.html"><span>All</span></a></li> @@ -37,117 +37,176 @@ </div> <div class="contents"> Here is a list of all documented class members with links to the class documentation for each member: -<p> -<h3><a class="anchor" name="index_c">- c -</a></h3><ul> + +<h3><a class="anchor" id="index_c">- c -</a></h3><ul> <li>cancelCallback() -: <a class="el" href="classRtMidiIn.html#de23832a66c1ed56965c26325602543e">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">RtMidiIn</a> +</li> <li>closePort() -: <a class="el" href="classRtMidiOut.html#3092e53a8aed2d3b163fcaa05fafd041">RtMidiOut</a> -, <a class="el" href="classRtMidiIn.html#55bacf0d228fd8e3be6a79d12fd1dc39">RtMidiIn</a> -, <a class="el" href="classRtMidi.html#36125c4fa16550345b57f4a4927f5b4a">RtMidi</a> +: <a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">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" name="index_d">- d -</a></h3><ul> + + +<h3><a class="anchor" id="index_d">- d -</a></h3><ul> <li>DEBUG_WARNING -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">RtError</a> +</li> <li>DRIVER_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_g">- g -</a></h3><ul> + + +<h3><a class="anchor" id="index_g">- g -</a></h3><ul> <li>getMessage() -: <a class="el" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> -, <a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">RtError</a> +: <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> +, <a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">RtError</a> +</li> <li>getMessageString() -: <a class="el" href="classRtError.html#45783a02453ae08821d0fb531d6b86b5">RtError</a> +: <a class="el" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5">RtError</a> +</li> <li>getPortCount() -: <a class="el" href="classRtMidi.html#9a49ef73a1e6007444019a7ae095e195">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#d6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +</li> <li>getPortName() -: <a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#f2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#cc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> +</li> <li>getType() -: <a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a> +: <a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_i">- i -</a></h3><ul> + + +<h3><a class="anchor" id="index_i">- i -</a></h3><ul> <li>ignoreTypes() -: <a class="el" href="classRtMidiIn.html#f9507125aaa42276ccc01df576fc3533">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">RtMidiIn</a> +</li> <li>INVALID_DEVICE -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">RtError</a> +</li> <li>INVALID_PARAMETER -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">RtError</a> +</li> <li>INVALID_STREAM -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_m">- m -</a></h3><ul> + + +<h3><a class="anchor" id="index_m">- m -</a></h3><ul> <li>MEMORY_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_n">- n -</a></h3><ul> + + +<h3><a class="anchor" id="index_n">- n -</a></h3><ul> <li>NO_DEVICES_FOUND -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_o">- o -</a></h3><ul> + + +<h3><a class="anchor" id="index_o">- o -</a></h3><ul> <li>openPort() -: <a class="el" href="classRtMidi.html#d9e30a89638f93193cb40edebaa536f5">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> +</li> <li>openVirtualPort() -: <a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> +</li> </ul> -<h3><a class="anchor" name="index_p">- p -</a></h3><ul> + + +<h3><a class="anchor" id="index_p">- p -</a></h3><ul> <li>printMessage() -: <a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">RtError</a> +: <a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_r">- r -</a></h3><ul> + + +<h3><a class="anchor" id="index_r">- r -</a></h3><ul> <li>RtError() -: <a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a> +: <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> +</li> <li>RtMidiCallback -: <a class="el" href="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> +</li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +</li> <li>RtMidiOut() -: <a class="el" href="classRtMidiOut.html#8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +</li> </ul> -<h3><a class="anchor" name="index_s">- s -</a></h3><ul> + + +<h3><a class="anchor" id="index_s">- s -</a></h3><ul> <li>sendMessage() -: <a class="el" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> +</li> <li>setCallback() -: <a class="el" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">RtMidiIn</a> +</li> <li>setQueueSizeLimit() -: <a class="el" href="classRtMidiIn.html#2e15868916737039e0a34d47bffdf188">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">RtMidiIn</a> +</li> <li>SYSTEM_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_t">- t -</a></h3><ul> + + +<h3><a class="anchor" id="index_t">- t -</a></h3><ul> <li>THREAD_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">RtError</a> +</li> <li>Type -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_u">- u -</a></h3><ul> + + +<h3><a class="anchor" id="index_u">- u -</a></h3><ul> <li>UNSPECIFIED -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_w">- w -</a></h3><ul> + + +<h3><a class="anchor" id="index_w">- w -</a></h3><ul> <li>WARNING -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul> + + +<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul> <li>~RtError() -: <a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">RtError</a> +: <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a> +</li> <li>~RtMidiIn() -: <a class="el" href="classRtMidiIn.html#f865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +</li> <li>~RtMidiOut() -: <a class="el" href="classRtMidiOut.html#b776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 13b06d6..8bc8c9c 100644 --- a/doc/html/functions_enum.html +++ b/doc/html/functions_enum.html @@ -7,7 +7,7 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="tabs"> <ul> <li><a href="functions.html"><span>All</span></a></li> @@ -18,17 +18,16 @@ </ul> </div> <div class="contents"> - -<p> -<ul> + <ul> <li>Type -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac">RtError</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 376905b..f07b0d1 100644 --- a/doc/html/functions_eval.html +++ b/doc/html/functions_eval.html @@ -7,7 +7,7 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="tabs"> <ul> <li><a href="functions.html"><span>All</span></a></li> @@ -18,37 +18,46 @@ </ul> </div> <div class="contents"> - -<p> -<ul> + <ul> <li>DEBUG_WARNING -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac20e5a369394d19b704ace17002007eba">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca20e5a369394d19b704ace17002007eba">RtError</a> +</li> <li>DRIVER_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac995e97ecf6beeedaba525022a63aec6b">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca995e97ecf6beeedaba525022a63aec6b">RtError</a> +</li> <li>INVALID_DEVICE -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acd6064062066fffdba258237a7c2159b1">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acad6064062066fffdba258237a7c2159b1">RtError</a> +</li> <li>INVALID_PARAMETER -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aca3eabf0f71120beaba94148a1b78fed6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaa3eabf0f71120beaba94148a1b78fed6">RtError</a> +</li> <li>INVALID_STREAM -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ace49e244b799da3bed7b327dbed4bee85">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acae49e244b799da3bed7b327dbed4bee85">RtError</a> +</li> <li>MEMORY_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acb4f813e5a36905c89d4081a59497432e">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acab4f813e5a36905c89d4081a59497432e">RtError</a> +</li> <li>NO_DEVICES_FOUND -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903acf267eb2d710f33d649ba840eeab6ff82">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaf267eb2d710f33d649ba840eeab6ff82">RtError</a> +</li> <li>SYSTEM_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac8947d0a2e2a84ecf3646271844e06a6b">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a> +</li> <li>THREAD_ERROR -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903aceb6282f991e2d93ab294a4272fc3f6c6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903acaeb6282f991e2d93ab294a4272fc3f6c6">RtError</a> +</li> <li>UNSPECIFIED -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca444efd3ccf774b2ba9f9bde70ec71cd6">RtError</a> +</li> <li>WARNING -: <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a> +: <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca3a1603c24a56cbdaf5f8ae4ddcb86398">RtError</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 0d9c86b..a12db12 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -7,7 +7,7 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="tabs"> <ul> <li><a href="functions.html"><span>All</span></a></li> @@ -31,79 +31,113 @@ </div> <div class="contents"> -<p> -<h3><a class="anchor" name="index_c">- c -</a></h3><ul> + +<h3><a class="anchor" id="index_c">- c -</a></h3><ul> <li>cancelCallback() -: <a class="el" href="classRtMidiIn.html#de23832a66c1ed56965c26325602543e">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">RtMidiIn</a> +</li> <li>closePort() -: <a class="el" href="classRtMidiOut.html#3092e53a8aed2d3b163fcaa05fafd041">RtMidiOut</a> -, <a class="el" href="classRtMidiIn.html#55bacf0d228fd8e3be6a79d12fd1dc39">RtMidiIn</a> -, <a class="el" href="classRtMidi.html#36125c4fa16550345b57f4a4927f5b4a">RtMidi</a> +: <a class="el" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041">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" name="index_g">- g -</a></h3><ul> + + +<h3><a class="anchor" id="index_g">- g -</a></h3><ul> <li>getMessage() -: <a class="el" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> -, <a class="el" href="classRtError.html#c7f467788e29d246333d7af050801164">RtError</a> +: <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> +, <a class="el" href="classRtError.html#ac7f467788e29d246333d7af050801164">RtError</a> +</li> <li>getMessageString() -: <a class="el" href="classRtError.html#45783a02453ae08821d0fb531d6b86b5">RtError</a> +: <a class="el" href="classRtError.html#a45783a02453ae08821d0fb531d6b86b5">RtError</a> +</li> <li>getPortCount() -: <a class="el" href="classRtMidi.html#9a49ef73a1e6007444019a7ae095e195">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#d6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a9a49ef73a1e6007444019a7ae095e195">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877">RtMidiOut</a> +</li> <li>getPortName() -: <a class="el" href="classRtMidi.html#799e2b9f4df39b298518f2b394db3391">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#f2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#cc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a799e2b9f4df39b298518f2b394db3391">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c">RtMidiOut</a> +</li> <li>getType() -: <a class="el" href="classRtError.html#4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a> +: <a class="el" href="classRtError.html#a4ee7df9728d73f533afbaddcd9ca4d9c">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_i">- i -</a></h3><ul> + + +<h3><a class="anchor" id="index_i">- i -</a></h3><ul> <li>ignoreTypes() -: <a class="el" href="classRtMidiIn.html#f9507125aaa42276ccc01df576fc3533">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">RtMidiIn</a> +</li> </ul> -<h3><a class="anchor" name="index_o">- o -</a></h3><ul> + + +<h3><a class="anchor" id="index_o">- o -</a></h3><ul> <li>openPort() -: <a class="el" href="classRtMidi.html#d9e30a89638f93193cb40edebaa536f5">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186">RtMidiOut</a> +</li> <li>openVirtualPort() -: <a class="el" href="classRtMidi.html#9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a> -, <a class="el" href="classRtMidiIn.html#245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> -, <a class="el" href="classRtMidiOut.html#47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> +: <a class="el" href="classRtMidi.html#a9200cde4f5337c0bc421d20bd4fcf654">RtMidi</a> +, <a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> +, <a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> +</li> </ul> -<h3><a class="anchor" name="index_p">- p -</a></h3><ul> + + +<h3><a class="anchor" id="index_p">- p -</a></h3><ul> <li>printMessage() -: <a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943">RtError</a> +: <a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943">RtError</a> +</li> </ul> -<h3><a class="anchor" name="index_r">- r -</a></h3><ul> + + +<h3><a class="anchor" id="index_r">- r -</a></h3><ul> <li>RtError() -: <a class="el" href="classRtError.html#a479a305ccbe56be0fd9137b9b405a37">RtError</a> +: <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> +</li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +</li> <li>RtMidiOut() -: <a class="el" href="classRtMidiOut.html#8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> +</li> </ul> -<h3><a class="anchor" name="index_s">- s -</a></h3><ul> + + +<h3><a class="anchor" id="index_s">- s -</a></h3><ul> <li>sendMessage() -: <a class="el" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> +</li> <li>setCallback() -: <a class="el" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">RtMidiIn</a> +</li> <li>setQueueSizeLimit() -: <a class="el" href="classRtMidiIn.html#2e15868916737039e0a34d47bffdf188">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">RtMidiIn</a> +</li> </ul> -<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul> + + +<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul> <li>~RtError() -: <a class="el" href="classRtError.html#6793e03386e7e69ffafb65a296dfa48c">RtError</a> +: <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a> +</li> <li>~RtMidiIn() -: <a class="el" href="classRtMidiIn.html#f865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">RtMidiIn</a> +</li> <li>~RtMidiOut() -: <a class="el" href="classRtMidiOut.html#b776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +: <a class="el" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792">RtMidiOut</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 51d2e0e..1f9c1c2 100644 --- a/doc/html/functions_type.html +++ b/doc/html/functions_type.html @@ -7,7 +7,7 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="tabs"> <ul> <li><a href="functions.html"><span>All</span></a></li> @@ -18,17 +18,16 @@ </ul> </div> <div class="contents"> - -<p> -<ul> + <ul> <li>RtMidiCallback -: <a class="el" href="classRtMidiIn.html#297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> +</li> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 4dfdebe..dc3b992 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -7,21 +7,23 @@ <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.5.8 --> +<!-- 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="classRtError.html">RtError</a> -<li><a class="el" href="classRtMidi.html">RtMidi</a> -<ul> -<li><a class="el" href="classRtMidiIn.html">RtMidiIn</a> -<li><a class="el" href="classRtMidiOut.html">RtMidiOut</a> +<li><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</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> </ul> </div> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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 930853e..01e41b0 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -7,13 +7,11 @@ <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.5.8 --> +<!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>The RtMidi Tutorial</h1> -<p> -<h3 align="center">1.0.10 </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" name="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">1.0.11 </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"> Introduction</a></h2> -<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), Macintosh OS X, SGI, and Windows (Multimedia Library) 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> 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), Macintosh OS X, SGI, and Windows (Multimedia Library) 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> @@ -24,13 +22,14 @@ only two header files and one source file for easy inclusion in programming proj <li> MIDI device enumeration </li> </ul> -<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>.<h2><a class="anchor" name="download"> +<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="download"> Download</a></h2> -Latest Release (3 June 2009): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.10.tar.gz">Version 1.0.10</a><h2><a class="anchor" name="start"> +<p>Latest Release (29 January 2010): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.11.tar.gz">Version 1.0.11</a></p> +<h2><a class="anchor" id="start"> Getting Started</a></h2> -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> +<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> <span class="keywordtype">int</span> main() { @@ -42,23 +41,24 @@ The first thing that must be done when using <a class="el" href="classRtMidi.htm } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> &error) { <span class="comment">// Handle the exception here</span> - error.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); + error.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); } <span class="comment">// Clean up</span> <span class="keyword">delete</span> midiin; } -</pre></div><p> -Obviously, this example doesn't demonstrate any of the real functionality of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. However, all uses of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> must begin with construction and must end with class destruction. Further, it is necessary that all class methods that can throw a C++ exception be called within a try/catch block.<h2><a class="anchor" name="error"> +</pre></div><p>Obviously, this example doesn't demonstrate any of the real functionality of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a>. However, all uses of <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> must begin with construction and must end with class destruction. Further, it is necessary that all class methods that can throw a C++ exception be called within a try/catch block.</p> +<h2><a class="anchor" id="error"> Error Handling</a></h2> -<a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses a C++ exception handler called <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>, which is declared and defined in <a class="el" href="RtError_8h-source.html">RtError.h</a>. The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#b04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. Many <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> methods can "throw" an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>, most typically if a driver error occurs or an invalid function argument is specified. There are a number of cases within <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> where warning messages may be displayed but an exception is not thrown. There is a protected <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> method, error(), that can be modified to globally control how these messages are handled and reported. By default, error messages are not automatically displayed in <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> unless the preprocessor definition __RTMIDI_DEBUG__ is defined during compilation. Messages associated with caught exceptions can be displayed with, for example, the <a class="el" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">RtError::printMessage()</a> function.<h2><a class="anchor" name="probing"> +<p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses a C++ exception handler called <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>, which is declared and defined in <a class="el" href="RtError_8h_source.html">RtError.h</a>. The <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903ac" title="Defined RtError types.">RtError::Type</a>. Many <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> methods can "throw" an <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a>, most typically if a driver error occurs or an invalid function argument is specified. There are a number of cases within <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> where warning messages may be displayed but an exception is not thrown. There is a protected <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> method, error(), that can be modified to globally control how these messages are handled and reported. By default, error messages are not automatically displayed in <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> unless the preprocessor definition __RTMIDI_DEBUG__ is defined during compilation. Messages associated with caught exceptions can be displayed with, for example, the <a class="el" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">RtError::printMessage()</a> function.</p> +<h2><a class="anchor" id="probing"> Probing Ports</a></h2> -A programmer may wish to query the available MIDI ports before deciding which to use. The following example outlines how this can be done.<p> +<p>A programmer may wish to query the available MIDI ports before deciding which to use. The following example outlines how this can be done.</p> <div class="fragment"><pre class="fragment"><span class="comment">// midiprobe.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "RtMidi.h"</span> <span class="keywordtype">int</span> main() { @@ -70,23 +70,23 @@ A programmer may wish to query the available MIDI ports before deciding which to midiin = <span class="keyword">new</span> <a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a>(); } <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> &error ) { - error.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); + error.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); exit( EXIT_FAILURE ); } <span class="comment">// Check inputs.</span> - <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); - std::cout << <span class="stringliteral">"\nThere are "</span> << nPorts << <span class="stringliteral">" MIDI input sources available.\n"</span>; + <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); + std::cout << <span class="stringliteral">"\nThere are "</span> << nPorts << <span class="stringliteral">" MIDI input sources available.\n"</span>; std::string portName; <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> { - portName = midiin-><a class="code" href="classRtMidiIn.html#f2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>(i); + portName = midiin-><a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>(i); } <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> &error ) { - error.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); + error.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); <span class="keywordflow">goto</span> cleanup; } - std::cout << <span class="stringliteral">" Input Port #"</span> << i+1 << <span class="stringliteral">": "</span> << portName << <span class="charliteral">'\n'</span>; + std::cout << <span class="stringliteral">" Input Port #"</span> << i+1 << <span class="stringliteral">": "</span> << portName << <span class="charliteral">'\n'</span>; } <span class="comment">// RtMidiOut constructor</span> @@ -94,24 +94,24 @@ A programmer may wish to query the available MIDI ports before deciding which to midiout = <span class="keyword">new</span> <a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>(); } <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> &error ) { - error.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); + error.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); exit( EXIT_FAILURE ); } <span class="comment">// Check outputs.</span> - nPorts = midiout-><a class="code" href="classRtMidiOut.html#d6cddbcc7faa20a7be229f765ade0877" 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>; + nPorts = midiout-><a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" 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> { - portName = midiout-><a class="code" href="classRtMidiOut.html#cc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">getPortName</a>(i); + portName = midiout-><a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">getPortName</a>(i); } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html" title="Exception handling class for RtAudio &amp; RtMidi.">RtError</a> &error) { - error.<a class="code" href="classRtError.html#da41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); + error.<a class="code" href="classRtError.html#ada41f7472122f45bc5b4677f066e0943" title="Prints thrown error message to stderr.">printMessage</a>(); <span class="keywordflow">goto</span> cleanup; } - std::cout << <span class="stringliteral">" Output Port #"</span> << i+1 << <span class="stringliteral">": "</span> << portName << <span class="charliteral">'\n'</span>; + std::cout << <span class="stringliteral">" Output Port #"</span> << i+1 << <span class="stringliteral">": "</span> << portName << <span class="charliteral">'\n'</span>; } - std::cout << <span class="charliteral">'\n'</span>; + std::cout << <span class="charliteral">'\n'</span>; <span class="comment">// Clean up</span> cleanup: @@ -120,15 +120,15 @@ A programmer may wish to query the available MIDI ports before deciding which to <span class="keywordflow">return</span> 0; } -</pre></div><h2><a class="anchor" name="output"> +</pre></div><h2><a class="anchor" id="output"> MIDI Output</a></h2> -The <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> class provides simple functionality to immediately send messages over a MIDI connection. No timing functionality is provided.<p> -In the following example, we omit necessary error checking and details regarding OS-dependent sleep functions. For a complete example, see the <code>midiout.cpp</code> program in the <code>tests</code> directory.<p> +<p>The <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> class provides simple functionality to immediately send messages over a MIDI connection. No timing functionality is provided.</p> +<p>In the following example, we omit necessary error checking and details regarding OS-dependent sleep functions. For a complete example, see the <code>midiout.cpp</code> program in the <code>tests</code> directory.</p> <div class="fragment"><pre class="fragment"><span class="comment">// midiout.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "RtMidi.h"</span> <span class="keywordtype">int</span> main() { @@ -136,33 +136,33 @@ In the following example, we omit necessary error checking and details regarding 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#d6cddbcc7faa20a7be229f765ade0877" 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#ad6cddbcc7faa20a7be229f765ade0877" 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>; + std::cout << <span class="stringliteral">"No ports available!\n"</span>; <span class="keywordflow">goto</span> cleanup; } <span class="comment">// Open first available port.</span> - midiout-><a class="code" href="classRtMidiOut.html#1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">openPort</a>( 0 ); + midiout-><a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">openPort</a>( 0 ); <span class="comment">// Send out a series of MIDI messages.</span> <span class="comment">// Program change: 192, 5</span> message.push_back( 192 ); message.push_back( 5 ); - midiout-><a class="code" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); + midiout-><a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); <span class="comment">// Control Change: 176, 7, 100 (volume)</span> message[0] = 176; message[1] = 7; message.push_back( 100 ); - midiout-><a class="code" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); + midiout-><a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); <span class="comment">// Note On: 144, 64, 90</span> message[0] = 144; message[1] = 64; message[2] = 90; - midiout-><a class="code" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); + midiout-><a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); SLEEP( 500 ); <span class="comment">// Platform-dependent ... see example in tests directory.</span> @@ -170,7 +170,7 @@ In the following example, we omit necessary error checking and details regarding message[0] = 128; message[1] = 64; message[2] = 40; - midiout-><a class="code" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); + midiout-><a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( &message ); <span class="comment">// Clean up</span> cleanup: @@ -178,19 +178,20 @@ In the following example, we omit necessary error checking and details regarding <span class="keywordflow">return</span> 0; } -</pre></div><h2><a class="anchor" name="input"> +</pre></div><h2><a class="anchor" id="input"> MIDI Input</a></h2> -The <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> class uses an internal callback function or thread to receive incoming MIDI messages from a port or device. These messages are then either queued and read by the user via calls to the <a class="el" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function or immediately passed to a user-specified callback function (which must be "registered" using the <a class="el" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">RtMidiIn::setCallback()</a> function). We'll provide examples of both usages.<p> -The <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> class provides the <a class="el" href="classRtMidiIn.html#f9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">RtMidiIn::ignoreTypes()</a> function to specify that certain MIDI message types be ignored. By default, sysem exclusive, timing, and active sensing messages are ignored.<h3><a class="anchor" name="qmidiin"> +<p>The <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> class uses an internal callback function or thread to receive incoming MIDI messages from a port or device. These messages are then either queued and read by the user via calls to the <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function or immediately passed to a user-specified callback function (which must be "registered" using the <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">RtMidiIn::setCallback()</a> function). We'll provide examples of both usages.</p> +<p>The <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> class provides the <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">RtMidiIn::ignoreTypes()</a> function to specify that certain MIDI message types be ignored. By default, sysem exclusive, timing, and active sensing messages are ignored.</p> +<h3><a class="anchor" id="qmidiin"> Queued MIDI Input</a></h3> -The <a class="el" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function does not block. If a MIDI message is available in the queue, it is copied to the user-provided <code>std::vector<unsigned char></code> container. When no MIDI message is available, the function returns an empty container. The default maximum MIDI queue size is 1024 messages. This value may be modified with the <a class="el" href="classRtMidiIn.html#2e15868916737039e0a34d47bffdf188" title="Set the maximum number of MIDI messages to be saved in the queue.">RtMidiIn::setQueueSizeLimit()</a> function. If the maximum queue size limit is reached, subsequent incoming MIDI messages are discarded until the queue size is reduced.<p> -In the following example, we omit some necessary error checking and details regarding OS-dependent sleep functions. For a more complete example, see the <code>qmidiin.cpp</code> program in the <code>tests</code> directory.<p> +<p>The <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function does not block. If a MIDI message is available in the queue, it is copied to the user-provided <code>std::vector<unsigned char></code> container. When no MIDI message is available, the function returns an empty container. The default maximum MIDI queue size is 1024 messages. This value may be modified with the <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188" title="Set the maximum number of MIDI messages to be saved in the queue.">RtMidiIn::setQueueSizeLimit()</a> function. If the maximum queue size limit is reached, subsequent incoming MIDI messages are discarded until the queue size is reduced.</p> +<p>In the following example, we omit some necessary error checking and details regarding OS-dependent sleep functions. For a more complete example, see the <code>qmidiin.cpp</code> program in the <code>tests</code> directory.</p> <div class="fragment"><pre class="fragment"><span class="comment">// qmidiin.cpp</span> <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 "RtMidi.h"</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>; } @@ -203,29 +204,29 @@ In the following example, we omit some necessary error checking and details rega <span class="keywordtype">double</span> stamp; <span class="comment">// Check available ports.</span> - <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); + <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); <span class="keywordflow">if</span> ( nPorts == 0 ) { - std::cout << <span class="stringliteral">"No ports available!\n"</span>; + std::cout << <span class="stringliteral">"No ports available!\n"</span>; <span class="keywordflow">goto</span> cleanup; } - midiin-><a class="code" href="classRtMidiIn.html#7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( 0 ); + midiin-><a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" 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#f9507125aaa42276ccc01df576fc3533" 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> ); + <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> ); <span class="comment">// Install an interrupt handler function.</span> done = <span class="keyword">false</span>; (void) signal(SIGINT, finish); <span class="comment">// Periodically check input queue.</span> - std::cout << <span class="stringliteral">"Reading MIDI from port ... quit with Ctrl-C.\n"</span>; + std::cout << <span class="stringliteral">"Reading MIDI from port ... quit with Ctrl-C.\n"</span>; <span class="keywordflow">while</span> ( !done ) { - stamp = midiin-><a class="code" href="classRtMidiIn.html#1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( &message ); + stamp = midiin-><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>( &message ); nBytes = message.size(); <span class="keywordflow">for</span> ( i=0; i<nBytes; i++ ) - std::cout << <span class="stringliteral">"Byte "</span> << i << <span class="stringliteral">" = "</span> << (<span class="keywordtype">int</span>)message[i] << <span class="stringliteral">", "</span>; + std::cout << <span class="stringliteral">"Byte "</span> << i << <span class="stringliteral">" = "</span> << (<span class="keywordtype">int</span>)message[i] << <span class="stringliteral">", "</span>; <span class="keywordflow">if</span> ( nBytes > 0 ) - std::cout << <span class="stringliteral">"stamp = "</span> << stamp << std::endl; + std::cout << <span class="stringliteral">"stamp = "</span> << stamp << std::endl; <span class="comment">// Sleep for 10 milliseconds ... platform-dependent.</span> SLEEP( 10 ); @@ -237,23 +238,23 @@ In the following example, we omit some necessary error checking and details rega <span class="keywordflow">return</span> 0; } -</pre></div><h3><a class="anchor" name="cmidiin"> +</pre></div><h3><a class="anchor" id="cmidiin"> MIDI Input with User Callback</a></h3> -When set, a user-provided callback function will be invoked after the input of a complete MIDI message. It is possible to provide a pointer to user data that can be accessed in the callback function (not shown here). It is necessary to set the callback function immediately after opening the port to avoid having incoming messages written to the queue (which is not emptied when a callback function is set). If you are worried about this happening, you can check the queue using the RtMidi::getMessage() function to verify it is empty (after the callback function is set).<p> -In the following example, we omit some necessary error checking. For a more complete example, see the <code>cmidiin.cpp</code> program in the <code>tests</code> directory.<p> +<p>When set, a user-provided callback function will be invoked after the input of a complete MIDI message. It is possible to provide a pointer to user data that can be accessed in the callback function (not shown here). It is necessary to set the callback function immediately after opening the port to avoid having incoming messages written to the queue (which is not emptied when a callback function is set). If you are worried about this happening, you can check the queue using the RtMidi::getMessage() function to verify it is empty (after the callback function is set).</p> +<p>In the following example, we omit some necessary error checking. For a more complete example, see the <code>cmidiin.cpp</code> program in the <code>tests</code> directory.</p> <div class="fragment"><pre class="fragment"><span class="comment">// cmidiin.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <cstdlib></span> -<span class="preprocessor">#include "RtMidi.h"</span> +<span class="preprocessor">#include "RtMidi.h"</span> <span class="keywordtype">void</span> mycallback( <span class="keywordtype">double</span> deltatime, std::vector< unsigned char > *message, <span class="keywordtype">void</span> *userData ) { <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nBytes = message->size(); <span class="keywordflow">for</span> ( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i<nBytes; i++ ) - std::cout << <span class="stringliteral">"Byte "</span> << i << <span class="stringliteral">" = "</span> << (<span class="keywordtype">int</span>)message->at(i) << <span class="stringliteral">", "</span>; + std::cout << <span class="stringliteral">"Byte "</span> << i << <span class="stringliteral">" = "</span> << (<span class="keywordtype">int</span>)message->at(i) << <span class="stringliteral">", "</span>; <span class="keywordflow">if</span> ( nBytes > 0 ) - std::cout << <span class="stringliteral">"stamp = "</span> << deltatime << std::endl; + std::cout << <span class="stringliteral">"stamp = "</span> << deltatime << std::endl; } <span class="keywordtype">int</span> main() @@ -261,23 +262,23 @@ In the following example, we omit some necessary error checking. For a more comp <a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> *midiin = <span class="keyword">new</span> <a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a>(); <span class="comment">// Check available ports.</span> - <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); + <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nPorts = midiin-><a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); <span class="keywordflow">if</span> ( nPorts == 0 ) { - std::cout << <span class="stringliteral">"No ports available!\n"</span>; + std::cout << <span class="stringliteral">"No ports available!\n"</span>; <span class="keywordflow">goto</span> cleanup; } - midiin-><a class="code" href="classRtMidiIn.html#7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( 0 ); + midiin-><a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" 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> <span class="comment">// queue.</span> - midiin-><a class="code" href="classRtMidiIn.html#7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( &mycallback ); + midiin-><a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( &mycallback ); - <span class="comment">// Don't ignore sysex, timing, or active sensing messages.</span> - midiin-><a class="code" href="classRtMidiIn.html#f9507125aaa42276ccc01df576fc3533" 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> ); + <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> ); - std::cout << <span class="stringliteral">"\nReading MIDI input ... press <enter> to quit.\n"</span>; + std::cout << <span class="stringliteral">"\nReading MIDI input ... press <enter> to quit.\n"</span>; <span class="keywordtype">char</span> input; std::cin.get(input); @@ -287,12 +288,13 @@ In the following example, we omit some necessary error checking. For a more comp <span class="keywordflow">return</span> 0; } -</pre></div><h2><a class="anchor" name="virtual"> +</pre></div><h2><a class="anchor" id="virtual"> Virtual Ports</a></h2> -The Linux ALSA and Macintosh CoreMIDI APIs allow for the establishment of virtual input and output MIDI ports to which other software clients can connect. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> incorporates this functionality with the <a class="el" href="classRtMidiIn.html#245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">RtMidiIn::openVirtualPort()</a> and <a class="el" href="classRtMidiOut.html#47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">RtMidiOut::openVirtualPort()</a> functions. Any messages sent with the <a class="el" href="classRtMidiOut.html#0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">RtMidiOut::sendMessage()</a> function will also be transmitted through an open virtual output port. If a virtual input port is open and a user callback function is set, the callback function will be invoked when messages arrive via that port. If a callback function is not set, the user must poll the input queue to check whether messages have arrived. No notification is provided for the establishment of a client connection via a virtual port.<h2><a class="anchor" name="compiling"> +<p>The Linux ALSA and Macintosh CoreMIDI APIs allow for the establishment of virtual input and output MIDI ports to which other software clients can connect. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> incorporates this functionality with the <a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">RtMidiIn::openVirtualPort()</a> and <a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">RtMidiOut::openVirtualPort()</a> functions. Any messages sent with the <a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">RtMidiOut::sendMessage()</a> function will also be transmitted through an open virtual output port. If a virtual input port is open and a user callback function is set, the callback function will be invoked when messages arrive via that port. If a callback function is not set, the user must poll the input queue to check whether messages have arrived. No notification is provided for the establishment of a client connection via a virtual port.</p> +<h2><a class="anchor" id="compiling"> Compiling</a></h2> -In order to compile <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> for a specific OS and API, it is necessary to supply the appropriate preprocessor definition and library within the compiler statement: <p> -<table border="2" cols="5" width="100%" cellspacing="3" cellpadding="3"> +<p>In order to compile <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> for a specific OS and API, it is necessary to supply the appropriate preprocessor definition and library within the compiler statement: </p> +<table class="doxtable" border="2" cols="5" width="100%"> <tr bgcolor="beige"> <td width="5%"><b>OS:</b> </td><td width="5%"><b>MIDI API:</b> </td><td width="5%"><b>Preprocessor Definition:</b> </td><td width="5%"><b>Library or Framework:</b> </td><td><b>Example Compiler Statement:</b> </td></tr> <tr> @@ -304,25 +306,32 @@ In order to compile <a class="el" href="classRtMidi.html" title="An abstract bas <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> </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.<h2><a class="anchor" name="debug"> +<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> +<h2><a class="anchor" id="debug"> Debugging</a></h2> -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.<h2><a class="anchor" name="apinotes"> +<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> +<h2><a class="anchor" id="apinotes"> API Notes</a></h2> -<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.<h3><a class="anchor" name="linux"> +<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> -<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.<h3><a class="anchor" name="macosx"> +<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> +<h3><a class="anchor" id="macosx"> Macintosh OS X (CoreAudio):</a></h3> -The Apple CoreMidi API allows for the establishment of virtual input and output ports to which other software applications can connect.<h3><a class="anchor" name="irix"> +<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> -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.<h3><a class="anchor" name="windowsds"> +<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> +<h3><a class="anchor" id="windowsds"> Windows (Multimedia Library):</a></h3> -The <code>configure</code> script provides support for the MinGW compiler.<p> -The Windows Multimedia library MIDI calls used in <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> do not make use of streaming functionality. Incoming system exclusive messages read by <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> are limited to a length as defined by the preprocessor definition RT_SYSEX_BUFFER_SIZE (set in RtMidi.cpp). The default value is 1024. There is no such limit for outgoing sysex messages via <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>.<p> -<a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> was originally developed with Visual C++ version 6.0.<p> -The <code>configure</code> script provides support for the MinGW compiler.<h2><a class="anchor" name="acknowledge"> +<p>The <code>configure</code> script provides support for the MinGW compiler.</p> +<p>The Windows Multimedia library MIDI calls used in <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> do not make use of streaming functionality. Incoming system exclusive messages read by <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> are limited to a length as defined by the preprocessor definition RT_SYSEX_BUFFER_SIZE (set in RtMidi.cpp). The default value is 1024. There is no such limit for outgoing sysex messages via <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> was originally developed with Visual C++ version 6.0.</p> +<p>The <code>configure</code> script provides support for the MinGW compiler.</p> +<h2><a class="anchor" id="acknowledge"> Acknowledgements</a></h2> -Many thanks to the following people for providing bug fixes and improvements: <ul> +<p>Many thanks to the following people for providing bug fixes and improvements: </p> +<ul> <li> John Dey (OS-X timestamps) </li> <li> @@ -339,19 +348,26 @@ Christoph Eckert (ALSA sysex fixes) </li> Immanuel Litzroth (OS-X sysex fix) </li> <li> Axel Schmidt (client naming) </li> +<li> +Bastiaan Verreijt (Windows sysex multi-buffer code) </li> +<li> +Jon McCormack (Snow Leopard updates) </li> +<li> +Paul Dean (increment optimization) </li> </ul> -<h2><a class="anchor" name="license"> +<h2><a class="anchor" id="license"> License</a></h2> -<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-2009 Gary P. Scavone<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> -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.<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> -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. </div> +<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-2010 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>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-2009 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2010 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/structRtMidiIn_1_1MidiMessage-members.html b/doc/html/structRtMidiIn_1_1MidiMessage-members.html new file mode 100644 index 0000000..960f99e --- /dev/null +++ b/doc/html/structRtMidiIn_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>RtMidiIn::MidiMessage Member List</h1>This is the complete list of members for <a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2010 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/structRtMidiIn_1_1MidiMessage.html b/doc/html/structRtMidiIn_1_1MidiMessage.html new file mode 100644 index 0000000..e20ea5b --- /dev/null +++ b/doc/html/structRtMidiIn_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="classRtMidiIn.html">RtMidiIn</a>::<a class="el" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> + </div> +<div class="contents"> +<h1>RtMidiIn::MidiMessage Struct Reference</h1><!-- doxytag: class="RtMidiIn::MidiMessage" --> +<p><a href="structRtMidiIn_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-2010 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/structRtMidiIn_1_1RtMidiInData-members.html b/doc/html/structRtMidiIn_1_1RtMidiInData-members.html new file mode 100644 index 0000000..aa0d9fc --- /dev/null +++ b/doc/html/structRtMidiIn_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>RtMidiIn::RtMidiInData Member List</h1>This is the complete list of members for <a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2010 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/structRtMidiIn_1_1RtMidiInData.html b/doc/html/structRtMidiIn_1_1RtMidiInData.html new file mode 100644 index 0000000..769ca0c --- /dev/null +++ b/doc/html/structRtMidiIn_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="classRtMidiIn.html">RtMidiIn</a>::<a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> + </div> +<div class="contents"> +<h1>RtMidiIn::RtMidiInData Struct Reference</h1><!-- doxytag: class="RtMidiIn::RtMidiInData" --> +<p><a href="structRtMidiIn_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-2010 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/tabs.css b/doc/html/tabs.css index ab02c62..a444163 100644 --- a/doc/html/tabs.css +++ b/doc/html/tabs.css @@ -57,7 +57,7 @@ DIV.tabs SPAN white-space : nowrap; } -DIV.tabs INPUT +DIV.tabs #MSearchBox { float : right; display : inline; |
