diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/html/RtError_8h-source.html | 88 | ||||
| -rw-r--r-- | doc/html/RtMidi_8h-source.html | 310 | ||||
| -rw-r--r-- | doc/html/annotated.html | 14 | ||||
| -rw-r--r-- | doc/html/classRtError-members.html | 30 | ||||
| -rw-r--r-- | doc/html/classRtError.html | 127 | ||||
| -rw-r--r-- | doc/html/classRtMidi-members.html | 16 | ||||
| -rw-r--r-- | doc/html/classRtMidi.html | 51 | ||||
| -rw-r--r-- | doc/html/classRtMidiIn-members.html | 32 | ||||
| -rw-r--r-- | doc/html/classRtMidiIn.html | 285 | ||||
| -rw-r--r-- | doc/html/classRtMidiOut-members.html | 22 | ||||
| -rw-r--r-- | doc/html/classRtMidiOut.html | 155 | ||||
| -rw-r--r-- | doc/html/doxygen.css | 346 | ||||
| -rw-r--r-- | doc/html/doxygen.png | bin | 2352 -> 1281 bytes | |||
| -rw-r--r-- | doc/html/files.html | 4 | ||||
| -rw-r--r-- | doc/html/functions.html | 70 | ||||
| -rw-r--r-- | doc/html/functions_enum.html | 6 | ||||
| -rw-r--r-- | doc/html/functions_eval.html | 35 | ||||
| -rw-r--r-- | doc/html/functions_func.html | 19 | ||||
| -rw-r--r-- | doc/html/functions_type.html | 6 | ||||
| -rw-r--r-- | doc/html/hierarchy.html | 6 | ||||
| -rw-r--r-- | doc/html/index.html | 112 |
21 files changed, 1089 insertions, 645 deletions
diff --git a/doc/html/RtError_8h-source.html b/doc/html/RtError_8h-source.html index db0f4ce..195893f 100644 --- a/doc/html/RtError_8h-source.html +++ b/doc/html/RtError_8h-source.html @@ -7,54 +7,56 @@ <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.3-rc3 --> -<h1>RtError.h</h1><div class="fragment"><pre>00001 <span class="comment">/************************************************************************/</span> -00010 <span class="comment">/************************************************************************/</span> -00011 -00012 <span class="preprocessor">#ifndef RTERROR_H</span> -00013 <span class="preprocessor"></span><span class="preprocessor">#define RTERROR_H</span> -00014 <span class="preprocessor"></span> -00015 <span class="preprocessor">#include <iostream></span> -00016 <span class="preprocessor">#include <string></span> -00017 +<!-- Generated by Doxygen 1.4.4 --> +<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">RtError</a> -00019 { -00020 <span class="keyword">public</span>: -<a name="l00022"></a><a class="code" href="classRtError.html#s11">00022</a> <span class="keyword">enum</span> <a class="code" href="classRtError.html#s11">Type</a> { -00023 WARNING, -00024 DEBUG_WARNING, -00025 UNSPECIFIED, -00026 NO_DEVICES_FOUND, -00027 INVALID_DEVICE, -00028 INVALID_STREAM, -00029 MEMORY_ERROR, -00030 INVALID_PARAMETER, -00031 DRIVER_ERROR, -00032 SYSTEM_ERROR, -00033 THREAD_ERROR -00034 }; -00035 -00036 <span class="keyword">protected</span>: -00037 std::string message_; -00038 <a class="code" href="classRtError.html#s11">Type</a> type_; -00039 -00040 <span class="keyword">public</span>: -<a name="l00042"></a><a class="code" href="classRtError.html#a0">00042</a> <a class="code" href="classRtError.html#a0">RtError</a>(<span class="keyword">const</span> std::string& message, Type type = RtError::UNSPECIFIED) : message_(message), type_(type) {} -00043 -<a name="l00045"></a><a class="code" href="classRtError.html#a1">00045</a> <span class="keyword">virtual</span> <a class="code" href="classRtError.html#a1">~RtError</a>(<span class="keywordtype">void</span>) {} -00046 -<a name="l00048"></a><a class="code" href="classRtError.html#a2">00048</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtError.html#a2">printMessage</a>(<span class="keywordtype">void</span>) { std::cout << <span class="charliteral">'\n'</span> << message_ << <span class="stringliteral">"\n\n"</span>; } -00049 -<a name="l00051"></a><a class="code" href="classRtError.html#a3">00051</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classRtError.html#s11">Type</a>& <a class="code" href="classRtError.html#a3">getType</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> type_; } -00052 +<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#w11">00022</a> <span class="keyword">enum</span> <a class="code" href="classRtError.html#w11">Type</a> { +<a name="l00023"></a>00023 <a class="code" href="classRtError.html#w11w0">WARNING</a>, +<a name="l00024"></a>00024 <a class="code" href="classRtError.html#w11w1">DEBUG_WARNING</a>, +<a name="l00025"></a>00025 <a class="code" href="classRtError.html#w11w2">UNSPECIFIED</a>, +<a name="l00026"></a>00026 <a class="code" href="classRtError.html#w11w3">NO_DEVICES_FOUND</a>, +<a name="l00027"></a>00027 <a class="code" href="classRtError.html#w11w4">INVALID_DEVICE</a>, +<a name="l00028"></a>00028 <a class="code" href="classRtError.html#w11w5">INVALID_STREAM</a>, +<a name="l00029"></a>00029 <a class="code" href="classRtError.html#w11w6">MEMORY_ERROR</a>, +<a name="l00030"></a>00030 <a class="code" href="classRtError.html#w11w7">INVALID_PARAMETER</a>, +<a name="l00031"></a>00031 <a class="code" href="classRtError.html#w11w8">DRIVER_ERROR</a>, +<a name="l00032"></a>00032 <a class="code" href="classRtError.html#w11w9">SYSTEM_ERROR</a>, +<a name="l00033"></a><a class="code" href="classRtError.html#w11w10">00033</a> <a class="code" href="classRtError.html#w11w10">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#w11">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#a0">00042</a> <a class="code" href="classRtError.html#a0">RtError</a>(<span class="keyword">const</span> std::string& message, <a class="code" href="classRtError.html#w11">Type</a> type = <a class="code" href="classRtError.html#w11w2">RtError::UNSPECIFIED</a>) : message_(message), type_(type) {} +<a name="l00043"></a>00043 +<a name="l00045"></a><a class="code" href="classRtError.html#a1">00045</a> <span class="keyword">virtual</span> <a class="code" href="classRtError.html#a1">~RtError</a>(<span class="keywordtype">void</span>) {}; +<a name="l00046"></a>00046 +<a name="l00048"></a><a class="code" href="classRtError.html#a2">00048</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtError.html#a2">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#a3">00051</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classRtError.html#w11">Type</a>& <a class="code" href="classRtError.html#a3">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#a4">00054</a> <span class="keyword">virtual</span> <span class="keyword">const</span> std::string& <a class="code" href="classRtError.html#a4">getMessage</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> message_; } -00055 }; -00056 -00057 <span class="preprocessor">#endif</span> +<a name="l00055"></a>00055 +<a name="l00057"></a><a class="code" href="classRtError.html#a5">00057</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classRtError.html#a5">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><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/RtMidi_8h-source.html b/doc/html/RtMidi_8h-source.html index f8e4af9..16695a2 100644 --- a/doc/html/RtMidi_8h-source.html +++ b/doc/html/RtMidi_8h-source.html @@ -7,167 +7,167 @@ <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.3-rc3 --> -<h1>RtMidi.h</h1><div class="fragment"><pre>00001 <span class="comment">/**********************************************************************/</span> -00036 <span class="comment">/**********************************************************************/</span> -00037 -00038 <span class="comment">// RtMidi: Version 1.0.3, ??</span> -00039 -00040 <span class="preprocessor">#ifndef RTMIDI_H</span> -00041 <span class="preprocessor"></span><span class="preprocessor">#define RTMIDI_H</span> -00042 <span class="preprocessor"></span> -00043 <span class="preprocessor">#include "RtError.h"</span> -00044 <span class="preprocessor">#include <string></span> -00045 +<!-- Generated by Doxygen 1.4.4 --> +<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.4, 14 October 2005</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">RtMidi</a> -00047 { -00048 <span class="keyword">public</span>: -00049 -00051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a0">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0; -00052 -00054 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a1">openVirtualPort</a>() = 0; -00055 -00057 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a2">getPortCount</a>() = 0; -00058 -00060 <span class="keyword">virtual</span> std::string <a class="code" href="classRtMidi.html#a3">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0; -00061 -00063 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a4">closePort</a>( <span class="keywordtype">void</span> ) = 0; -00064 -00065 <span class="keyword">protected</span>: -00066 -00067 <a class="code" href="classRtMidi.html">RtMidi</a>(); -00068 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html">RtMidi</a>() {}; -00069 -00070 <span class="comment">// A basic error reporting function for internal use in the RtMidi</span> -00071 <span class="comment">// subclasses. The behavior of this function can be modified to</span> -00072 <span class="comment">// suit specific needs.</span> -00073 <span class="keywordtype">void</span> error( RtError::Type type ); -00074 -00075 <span class="keywordtype">void</span> *apiData_; -00076 <span class="keywordtype">bool</span> connected_; -00077 std::string errorString_; -00078 }; -00079 -00080 <span class="comment">/**********************************************************************/</span> -00096 <span class="comment">/**********************************************************************/</span> -00097 -00098 <span class="preprocessor">#include <vector></span> -00099 <span class="preprocessor">#include <queue></span> -00100 +<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#a0">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 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#a1">openVirtualPort</a>() = 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#a2">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#a3">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#a4">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">RtMidi</a>(); +<a name="l00068"></a>00068 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html">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#w11">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">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html">RtMidi</a> -00102 { -00103 <span class="keyword">public</span>: -00104 -<a name="l00106"></a><a class="code" href="classRtMidiIn.html#s0">00106</a> <span class="keyword">typedef</span> void (*RtMidiCallback)( <span class="keywordtype">double</span> timeStamp, std::vector<unsigned char> *message, <span class="keywordtype">void</span> *userData); -00107 -00109 -00112 <a class="code" href="classRtMidiIn.html#a0">RtMidiIn</a>(); -00113 -00115 <a class="code" href="classRtMidiIn.html#a1">~RtMidiIn</a>(); -00116 -00118 -00122 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -00123 -00125 -00131 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a3">openVirtualPort</a>(); -00132 -00134 -00140 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a4">setCallback</a>( RtMidiCallback callback, <span class="keywordtype">void</span> *userData = 0 ); -00141 -00143 -00147 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a5">cancelCallback</a>(); -00148 -00150 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a6">closePort</a>( <span class="keywordtype">void</span> ); -00151 -00153 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a7">getPortCount</a>(); -00154 -00156 -00159 std::string <a class="code" href="classRtMidiIn.html#a8">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -00160 -00162 -00166 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a9">setQueueSizeLimit</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSize ); -00167 -00169 -00176 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a10">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> ); -00177 -00179 -00186 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a11">getMessage</a>( std::vector<unsigned char> *message ); -00187 -00188 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> -00189 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> -00190 <span class="keyword">struct </span>MidiMessage { -00191 std::vector<unsigned char> bytes; -00192 <span class="keywordtype">double</span> timeStamp; -00193 -00194 <span class="comment">// Default constructor.</span> -00195 MidiMessage() -00196 :bytes(3), timeStamp(0.0) {} -00197 }; -00198 -00199 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> -00200 <span class="comment">// the MIDI input handling function or thread.</span> -00201 <span class="keyword">struct </span>RtMidiInData { -00202 std::queue<MidiMessage> queue; -00203 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit; -00204 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; -00205 <span class="keywordtype">bool</span> doInput; -00206 <span class="keywordtype">bool</span> firstMessage; -00207 <span class="keywordtype">void</span> *apiData; -00208 <span class="keywordtype">bool</span> usingCallback; -00209 <span class="keywordtype">void</span> *userCallback; -00210 <span class="keywordtype">void</span> *userData; -00211 -00212 <span class="comment">// Default constructor.</span> -00213 RtMidiInData() -00214 : queueLimit(1024), ignoreFlags(7), doInput(false), firstMessage(true), -00215 apiData(0), usingCallback(false), userCallback(0), userData(0) {} -00216 }; -00217 -00218 <span class="keyword">private</span>: -00219 -00220 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); -00221 RtMidiInData inputData_; -00222 -00223 }; -00224 -00225 <span class="comment">/**********************************************************************/</span> -00237 <span class="comment">/**********************************************************************/</span> -00238 +<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#w0">00106</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#w0">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#a0">RtMidiIn</a>(); +<a name="l00113"></a>00113 +<a name="l00115"></a>00115 <a class="code" href="classRtMidiIn.html#a1">~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#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); +<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#a3">openVirtualPort</a>(); +<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#a4">setCallback</a>( <a class="code" href="classRtMidiIn.html#w0">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#a5">cancelCallback</a>(); +<a name="l00148"></a>00148 +<a name="l00150"></a>00150 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a6">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#a7">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#a8">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#a9">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#a10">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#a11">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>00190 <span class="keyword">struct </span>MidiMessage { +<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 MidiMessage() +<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>00201 <span class="keyword">struct </span>RtMidiInData { +<a name="l00202"></a>00202 std::queue<MidiMessage> queue; +<a name="l00203"></a>00203 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit; +<a name="l00204"></a>00204 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; +<a name="l00205"></a>00205 <span class="keywordtype">bool</span> doInput; +<a name="l00206"></a>00206 <span class="keywordtype">bool</span> firstMessage; +<a name="l00207"></a>00207 <span class="keywordtype">void</span> *apiData; +<a name="l00208"></a>00208 <span class="keywordtype">bool</span> usingCallback; +<a name="l00209"></a>00209 <span class="keywordtype">void</span> *userCallback; +<a name="l00210"></a>00210 <span class="keywordtype">void</span> *userData; +<a name="l00211"></a>00211 +<a name="l00212"></a>00212 <span class="comment">// Default constructor.</span> +<a name="l00213"></a>00213 RtMidiInData() +<a name="l00214"></a>00214 : queueLimit(1024), ignoreFlags(7), doInput(false), firstMessage(true), +<a name="l00215"></a>00215 apiData(0), usingCallback(false), userCallback(0), userData(0) {} +<a name="l00216"></a>00216 }; +<a name="l00217"></a>00217 +<a name="l00218"></a>00218 <span class="keyword">private</span>: +<a name="l00219"></a>00219 +<a name="l00220"></a>00220 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); +<a name="l00221"></a>00221 RtMidiInData inputData_; +<a name="l00222"></a>00222 +<a name="l00223"></a>00223 }; +<a name="l00224"></a>00224 +<a name="l00225"></a>00225 <span class="comment">/**********************************************************************/</span> +<a name="l00237"></a>00237 <span class="comment">/**********************************************************************/</span> +<a name="l00238"></a>00238 <a name="l00239"></a><a class="code" href="classRtMidiOut.html">00239</a> <span class="keyword">class </span><a class="code" href="classRtMidiOut.html">RtMidiOut</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html">RtMidi</a> -00240 { -00241 <span class="keyword">public</span>: -00242 -00244 -00247 <a class="code" href="classRtMidiOut.html#a0">RtMidiOut</a>(); -00248 -00250 <a class="code" href="classRtMidiOut.html#a1">~RtMidiOut</a>(); -00251 -00253 -00259 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -00260 -00262 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3">closePort</a>(); -00263 -00265 -00273 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a4">openVirtualPort</a>(); -00274 -00276 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#a5">getPortCount</a>(); -00277 -00279 -00282 std::string <a class="code" href="classRtMidiOut.html#a6">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); -00283 -00285 -00289 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( std::vector<unsigned char> *message ); -00290 -00291 <span class="keyword">private</span>: -00292 -00293 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); -00294 }; -00295 -00296 <span class="preprocessor">#endif</span> +<a name="l00240"></a>00240 { +<a name="l00241"></a>00241 <span class="keyword">public</span>: +<a name="l00242"></a>00242 +<a name="l00244"></a>00244 +<a name="l00247"></a>00247 <a class="code" href="classRtMidiOut.html#a0">RtMidiOut</a>(); +<a name="l00248"></a>00248 +<a name="l00250"></a>00250 <a class="code" href="classRtMidiOut.html#a1">~RtMidiOut</a>(); +<a name="l00251"></a>00251 +<a name="l00253"></a>00253 +<a name="l00259"></a>00259 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a2">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); +<a name="l00260"></a>00260 +<a name="l00262"></a>00262 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3">closePort</a>(); +<a name="l00263"></a>00263 +<a name="l00265"></a>00265 +<a name="l00273"></a>00273 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a4">openVirtualPort</a>(); +<a name="l00274"></a>00274 +<a name="l00276"></a>00276 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#a5">getPortCount</a>(); +<a name="l00277"></a>00277 +<a name="l00279"></a>00279 +<a name="l00282"></a>00282 std::string <a class="code" href="classRtMidiOut.html#a6">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +<a name="l00283"></a>00283 +<a name="l00285"></a>00285 +<a name="l00289"></a>00289 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( std::vector<unsigned char> *message ); +<a name="l00290"></a>00290 +<a name="l00291"></a>00291 <span class="keyword">private</span>: +<a name="l00292"></a>00292 +<a name="l00293"></a>00293 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); +<a name="l00294"></a>00294 }; +<a name="l00295"></a>00295 +<a name="l00296"></a>00296 <span class="preprocessor">#endif</span> </pre></div><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/annotated.html b/doc/html/annotated.html index 3ad461c..16b249a 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.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.3-rc3 --> -<h1>RtMidi Compound List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table> - <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">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="classRtMidiOut.html">RtMidiOut</a></td><td class="indexvalue">A realtime MIDI output class</td></tr> +<!-- Generated by Doxygen 1.4.4 --> +<h1>RtMidi Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table> + <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">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="classRtMidiOut.html">RtMidiOut</a></td><td class="indexvalue">A realtime MIDI output class </td></tr> </table> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 f3bb904..9978c3a 100644 --- a/doc/html/classRtError-members.html +++ b/doc/html/classRtError-members.html @@ -7,18 +7,30 @@ <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.3-rc3 --> -<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 bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#a4">getMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#a3">getType</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#a2">printMessage</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#a0">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 bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#s11">Type</a> enum name</td><td><a class="el" href="classRtError.html">RtError</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtError.html#a1">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> +<!-- Generated by Doxygen 1.4.4 --> +<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#w11w1">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#w11w8">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#a4">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#a5">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#a3">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#w11w4">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#w11w7">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#w11w5">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#w11w6">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#w11w3">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#a2">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#a0">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#w11w9">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#w11w10">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#w11">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#w11w2">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#w11w0">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#a1">~RtError</a>(void)</td><td><a class="el" href="classRtError.html">RtError</a></td><td><code> [inline, virtual]</code></td></tr> </table><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 395a949..00ab039 100644 --- a/doc/html/classRtError.html +++ b/doc/html/classRtError.html @@ -7,45 +7,122 @@ <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.3-rc3 --> -<h1>RtError Class Reference</h1>Exception handling class for RtAudio & <a class="el" href="classRtMidi.html">RtMidi</a>. +<!-- Generated by Doxygen 1.4.4 --> +<h1>RtError Class Reference</h1><!-- doxytag: class="RtError" -->Exception handling class for RtAudio & <a class="el" href="classRtMidi.html">RtMidi</a>. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="RtError_8h-source.html">RtError.h</a>></code> <p> -<a href="classRtError-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> +<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 nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="classRtError.html#s11">Type</a> </td></tr> -<tr><td> </td><td><font size=-1><em>Defined RtError types.</em></font><br><br></td></tr> -<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> -<tr><td nowrap align=right valign=top><a name="a0" doxytag="RtError::RtError"></a> - </td><td valign=bottom><a class="el" href="classRtError.html#a0">RtError</a> (const std::string &message, <a class="el" href="classRtError.html#s11">Type</a> type=RtError::UNSPECIFIED)</td></tr> -<tr><td> </td><td><font size=-1><em>The constructor.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a1" doxytag="RtError::~RtError"></a> -virtual </td><td valign=bottom><a class="el" href="classRtError.html#a1">~RtError</a> (void)</td></tr> -<tr><td> </td><td><font size=-1><em>The destructor.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a2" doxytag="RtError::printMessage"></a> -virtual void </td><td valign=bottom><a class="el" href="classRtError.html#a2">printMessage</a> (void)</td></tr> -<tr><td> </td><td><font size=-1><em>Prints "thrown" error message to stdout.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a3" doxytag="RtError::getType"></a> -virtual const <a class="el" href="classRtError.html#s11">Type</a> & </td><td valign=bottom><a class="el" href="classRtError.html#a3">getType</a> (void)</td></tr> -<tr><td> </td><td><font size=-1><em>Returns the "thrown" error message type.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a4" doxytag="RtError::getMessage"></a> -virtual const std::string & </td><td valign=bottom><a class="el" href="classRtError.html#a4">getMessage</a> (void)</td></tr> -<tr><td> </td><td><font size=-1><em>Returns the "thrown" error message string.</em></font><br><br></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#w11">Type</a> { <br> + <a class="el" href="classRtError.html#w11w0">WARNING</a>, +<a class="el" href="classRtError.html#w11w1">DEBUG_WARNING</a>, +<a class="el" href="classRtError.html#w11w2">UNSPECIFIED</a>, +<a class="el" href="classRtError.html#w11w3">NO_DEVICES_FOUND</a>, +<br> + <a class="el" href="classRtError.html#w11w4">INVALID_DEVICE</a>, +<a class="el" href="classRtError.html#w11w5">INVALID_STREAM</a>, +<a class="el" href="classRtError.html#w11w6">MEMORY_ERROR</a>, +<a class="el" href="classRtError.html#w11w7">INVALID_PARAMETER</a>, +<br> + <a class="el" href="classRtError.html#w11w8">DRIVER_ERROR</a>, +<a class="el" href="classRtError.html#w11w9">SYSTEM_ERROR</a>, +<a class="el" href="classRtError.html#w11w10">THREAD_ERROR</a> +<br> + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Defined RtError types. <a href="classRtError.html#w11">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="a0"></a><!-- doxytag: member="RtError::RtError" ref="a0" args="(const std::string &message, Type type=RtError::UNSPECIFIED)" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a0">RtError</a> (const std::string &message, <a class="el" href="classRtError.html#w11">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="a1"></a><!-- doxytag: member="RtError::~RtError" ref="a1" args="(void)" --> +virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a1">~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="a2"></a><!-- doxytag: member="RtError::printMessage" ref="a2" args="(void)" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a2">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="a3"></a><!-- doxytag: member="RtError::getType" ref="a3" args="(void)" --> +virtual const <a class="el" href="classRtError.html#w11">Type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a3">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" nowrap align="right" valign="top"><a class="anchor" name="a4"></a><!-- doxytag: member="RtError::getMessage" ref="a4" args="(void)" --> +virtual const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a4">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="a5"></a><!-- doxytag: member="RtError::getMessageString" ref="a5" args="(void)" --> +virtual const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtError.html#a5">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">RtMidi</a>. +Exception handling class for RtAudio & <a class="el" href="classRtMidi.html">RtMidi</a>. <p> -The RtError class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#s11">RtError::Type</a>. See the RtAudio and <a class="el" href="classRtMidi.html">RtMidi</a> documentation to know which methods can "throw" an RtError. +The RtError class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#w11">RtError::Type</a>. See the RtAudio and <a class="el" href="classRtMidi.html">RtMidi</a> documentation to know which methods can throw an RtError. <p> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="w11"></a><!-- doxytag: member="RtError::Type" ref="w11" args="" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> + <tr> + <td class="mdRow"> + <table cellpadding="0" cellspacing="0" border="0"> + <tr> + <td class="md" nowrap valign="top">enum <a class="el" href="classRtError.html#w11">RtError::Type</a> </td> + </tr> + </table> + </td> + </tr> +</table> +<table cellspacing="5" cellpadding="0" border="0"> + <tr> + <td> + + </td> + <td> + +<p> +Defined RtError 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="w11w0"></a><!-- doxytag: member="WARNING" ref="w11w0" args="" -->WARNING</em> </td><td> +A non-critical error. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w1"></a><!-- doxytag: member="DEBUG_WARNING" ref="w11w1" 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="w11w2"></a><!-- doxytag: member="UNSPECIFIED" ref="w11w2" args="" -->UNSPECIFIED</em> </td><td> +The default, unspecified error type. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w3"></a><!-- doxytag: member="NO_DEVICES_FOUND" ref="w11w3" args="" -->NO_DEVICES_FOUND</em> </td><td> +No devices found on system. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w4"></a><!-- doxytag: member="INVALID_DEVICE" ref="w11w4" args="" -->INVALID_DEVICE</em> </td><td> +An invalid device ID was specified. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w5"></a><!-- doxytag: member="INVALID_STREAM" ref="w11w5" args="" -->INVALID_STREAM</em> </td><td> +An invalid stream ID was specified. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w6"></a><!-- doxytag: member="MEMORY_ERROR" ref="w11w6" args="" -->MEMORY_ERROR</em> </td><td> +An error occured during memory allocation. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w7"></a><!-- doxytag: member="INVALID_PARAMETER" ref="w11w7" 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="w11w8"></a><!-- doxytag: member="DRIVER_ERROR" ref="w11w8" args="" -->DRIVER_ERROR</em> </td><td> +A system driver error occured. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w9"></a><!-- doxytag: member="SYSTEM_ERROR" ref="w11w9" args="" -->SYSTEM_ERROR</em> </td><td> +A system error occured. </td></tr> +<tr><td valign="top"><em><a class="anchor" name="w11w10"></a><!-- doxytag: member="THREAD_ERROR" ref="w11w10" args="" -->THREAD_ERROR</em> </td><td> +A thread error occured. </td></tr> +</table> +</dl> + </td> + </tr> +</table> <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> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 a100873..c7c4240 100644 --- a/doc/html/classRtMidi-members.html +++ b/doc/html/classRtMidi-members.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.3-rc3 --> -<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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidi.html#a4">closePort</a>(void)=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidi.html#a2">getPortCount</a>()=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidi.html#a3">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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidi.html#a0">openPort</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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidi.html#a1">openVirtualPort</a>()=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> +<!-- Generated by Doxygen 1.4.4 --> +<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#a4">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#a2">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#a3">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#a0">openPort</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#a1">openVirtualPort</a>()=0</td><td><a class="el" href="classRtMidi.html">RtMidi</a></td><td><code> [pure virtual]</code></td></tr> </table><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidi.html b/doc/html/classRtMidi.html index e903fbe..2b45cf9 100644 --- a/doc/html/classRtMidi.html +++ b/doc/html/classRtMidi.html @@ -7,8 +7,8 @@ <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.3-rc3 --> -<h1>RtMidi Class Reference</h1>An abstract base class for realtime MIDI input/output. +<!-- Generated by Doxygen 1.4.4 --> +<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> @@ -19,42 +19,47 @@ <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> -<a href="classRtMidi-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> +<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 nowrap align=right valign=top><a name="a0" doxytag="RtMidi::openPort"></a> -virtual void </td><td valign=bottom><a class="el" href="classRtMidi.html#a0">openPort</a> (unsigned int portNumber=0)=0</td></tr> -<tr><td> </td><td><font size=-1><em>Pure virtual <a class="el" href="classRtMidi.html#a0">openPort()</a> function.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a1" doxytag="RtMidi::openVirtualPort"></a> -virtual void </td><td valign=bottom><a class="el" href="classRtMidi.html#a1">openVirtualPort</a> ()=0</td></tr> -<tr><td> </td><td><font size=-1><em>Pure virtual <a class="el" href="classRtMidi.html#a1">openVirtualPort()</a> function.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a2" doxytag="RtMidi::getPortCount"></a> -virtual unsigned int </td><td valign=bottom><a class="el" href="classRtMidi.html#a2">getPortCount</a> ()=0</td></tr> -<tr><td> </td><td><font size=-1><em>Pure virtual <a class="el" href="classRtMidi.html#a2">getPortCount()</a> function.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a3" doxytag="RtMidi::getPortName"></a> -virtual std::string </td><td valign=bottom><a class="el" href="classRtMidi.html#a3">getPortName</a> (unsigned int portNumber=0)=0</td></tr> -<tr><td> </td><td><font size=-1><em>Pure virtual <a class="el" href="classRtMidi.html#a3">getPortName()</a> function.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a4" doxytag="RtMidi::closePort"></a> -virtual void </td><td valign=bottom><a class="el" href="classRtMidi.html#a4">closePort</a> (void)=0</td></tr> -<tr><td> </td><td><font size=-1><em>Pure virtual <a class="el" href="classRtMidi.html#a4">closePort()</a> function.</em></font><br><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="a0"></a><!-- doxytag: member="RtMidi::openPort" ref="a0" args="(unsigned int portNumber=0)=0" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a0">openPort</a> (unsigned int portNumber=0)=0</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a0">openPort()</a> function. <br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1"></a><!-- doxytag: member="RtMidi::openVirtualPort" ref="a1" args="()=0" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a1">openVirtualPort</a> ()=0</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a1">openVirtualPort()</a> function. <br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2"></a><!-- doxytag: member="RtMidi::getPortCount" ref="a2" args="()=0" --> +virtual unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a2">getPortCount</a> ()=0</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a2">getPortCount()</a> function. <br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3"></a><!-- doxytag: member="RtMidi::getPortName" ref="a3" args="(unsigned int portNumber=0)=0" --> +virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a3">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#a3">getPortName()</a> function. <br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a4"></a><!-- doxytag: member="RtMidi::closePort" ref="a4" args="(void)=0" --> +virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidi.html#a4">closePort</a> (void)=0</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pure virtual <a class="el" href="classRtMidi.html#a4">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. +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">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html">RtMidiOut</a>.<p> RtMidi WWW site: <a href="http://music.mcgill.ca/~gary/rtmidi/">http://music.mcgill.ca/~gary/rtmidi/</a><p> -RtMidi: realtime MIDI i/o C++ classes Copyright (c) 2003-2004 Gary P. Scavone<p> +RtMidi: realtime MIDI i/o C++ classes Copyright (c) 2003-2005 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. +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></ul> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiIn-members.html b/doc/html/classRtMidiIn-members.html index 2091a77..fdc5605 100644 --- a/doc/html/classRtMidiIn-members.html +++ b/doc/html/classRtMidiIn-members.html @@ -7,25 +7,25 @@ <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.3-rc3 --> -<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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a5">cancelCallback</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a6">closePort</a>(void)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a11">getMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a7">getPortCount</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a8">getPortName</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a10">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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a2">openPort</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a3">openVirtualPort</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#s0">RtMidiCallback</a> typedef</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a0">RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a4">setCallback</a>(RtMidiCallback callback, void *userData=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a9">setQueueSizeLimit</a>(unsigned int queueSize)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiIn.html#a1">~RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> +<!-- Generated by Doxygen 1.4.4 --> +<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#a5">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#a6">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#a11">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#a7">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#a8">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#a10">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#a2">openPort</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#a3">openVirtualPort</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#w0">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#a0">RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a4">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#a9">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#a1">~RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> </table><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiIn.html b/doc/html/classRtMidiIn.html index 57bd429..13f02e0 100644 --- a/doc/html/classRtMidiIn.html +++ b/doc/html/classRtMidiIn.html @@ -7,8 +7,8 @@ <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.3-rc3 --> -<h1>RtMidiIn Class Reference</h1>A realtime MIDI input class. +<!-- Generated by Doxygen 1.4.4 --> +<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> @@ -18,66 +18,83 @@ <map name="RtMidiIn_map"> <area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,57,24"> </map> -<a href="classRtMidiIn-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> +<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>Public Types</h2></td></tr> -<tr><td nowrap align=right valign=top><a name="s0" doxytag="RtMidiIn::RtMidiCallback"></a> -typedef void(* </td><td valign=bottom><a class="el" href="classRtMidiIn.html#s0">RtMidiCallback</a> )(double timeStamp, std::vector< unsigned char > *message, void *userData)</td></tr> -<tr><td> </td><td><font size=-1><em>User callback function type definition.</em></font><br><br></td></tr> -<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> -<tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a0">RtMidiIn</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a1" doxytag="RtMidiIn::~RtMidiIn"></a> - </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a1">~RtMidiIn</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>If a MIDI connection is still open, it will be closed by the destructor.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a2">openPort</a> (unsigned int portNumber=0)</td></tr> -<tr><td> </td><td><font size=-1><em>Open a MIDI input connection.</em> <a href="#a2"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a3">openVirtualPort</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Create a virtual input port to allow software connections (OS X and ALSA only).</em> <a href="#a3"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a4">setCallback</a> (<a class="el" href="classRtMidiIn.html#s0">RtMidiCallback</a> callback, void *userData=0)</td></tr> -<tr><td> </td><td><font size=-1><em>Set a callback function to be invoked for incoming MIDI messages.</em> <a href="#a4"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a5">cancelCallback</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Cancel use of the current callback function (if one exists).</em> <a href="#a5"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a6" doxytag="RtMidiIn::closePort"></a> -void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a6">closePort</a> (void)</td></tr> -<tr><td> </td><td><font size=-1><em>Close an open MIDI connection (if one exists).</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a7" doxytag="RtMidiIn::getPortCount"></a> -unsigned int </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a7">getPortCount</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Return the number of available MIDI input ports.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>std::string </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a8">getPortName</a> (unsigned int portNumber=0)</td></tr> -<tr><td> </td><td><font size=-1><em>Return a string identifier for the specified MIDI input port number.</em> <a href="#a8"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a9">setQueueSizeLimit</a> (unsigned int queueSize)</td></tr> -<tr><td> </td><td><font size=-1><em>Set the maximum number of MIDI messages to be saved in the queue.</em> <a href="#a9"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a10">ignoreTypes</a> (bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td></tr> -<tr><td> </td><td><font size=-1><em>Specify whether certain MIDI message types should be queued or ignored during input.</em> <a href="#a10"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>double </td><td valign=bottom><a class="el" href="classRtMidiIn.html#a11">getMessage</a> (std::vector< unsigned char > *message)</td></tr> -<tr><td> </td><td><font size=-1><em>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.</em> <a href="#a11"></a><em></em></font><br><br></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="w0"></a><!-- doxytag: member="RtMidiIn::RtMidiCallback" ref="w0" args=")(double timeStamp, std::vector< unsigned char > *message, void *userData)" --> +typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#w0">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#a0">RtMidiIn</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1"></a><!-- doxytag: member="RtMidiIn::~RtMidiIn" ref="a1" args="()" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a1">~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#a2">openPort</a> (unsigned int portNumber=0)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a MIDI input connection. <a href="#a2"></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#a3">openVirtualPort</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a virtual input port to allow software connections (OS X and ALSA only). <a href="#a3"></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#a4">setCallback</a> (<a class="el" href="classRtMidiIn.html#w0">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="#a4"></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#a5">cancelCallback</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Cancel use of the current callback function (if one exists). <a href="#a5"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6"></a><!-- doxytag: member="RtMidiIn::closePort" ref="a6" args="(void)" --> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a6">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="a7"></a><!-- doxytag: member="RtMidiIn::getPortCount" ref="a7" args="()" --> +unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a7">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#a8">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="#a8"></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#a9">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="#a9"></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#a10">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="#a10"></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#a11">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="#a11"></a><br></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> + </table> <hr><a name="_details"></a><h2>Detailed Description</h2> -A realtime MIDI input class. +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#a11">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-2004. +by Gary P. Scavone, 2003-2004. <p> <hr><h2>Constructor & Destructor Documentation</h2> -<a name="a0" doxytag="RtMidiIn::RtMidiIn"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a0"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="a0" args="()" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> RtMidiIn::RtMidiIn </td> + <td class="md" nowrap valign="top">RtMidiIn::RtMidiIn </td> <td class="md" valign="top">( </td> - <td class="mdname1" valign="top" nowrap> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -85,31 +102,30 @@ by Gary P. Scavone, 2003-2004. <td> <p> -Default constructor. +Default constructor. <p> -An exception will be thrown if a MIDI system initialization error occurs. </td> +An exception will be thrown if a MIDI system initialization error occurs. </td> </tr> </table> <hr><h2>Member Function Documentation</h2> -<a name="a2" doxytag="RtMidiIn::openPort"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a2"></a><!-- doxytag: member="RtMidiIn::openPort" ref="a2" args="(unsigned int portNumber=0)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::openPort </td> + <td class="md" nowrap valign="top">void RtMidiIn::openPort </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> - <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = 0 </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = <code>0</code> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -117,31 +133,30 @@ An exception will be thrown if a MIDI system initialization error occurs. </ <td> <p> -Open a MIDI input connection. +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. +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#a0">RtMidi</a>. </td> </tr> </table> -<a name="a3" doxytag="RtMidiIn::openVirtualPort"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a3"></a><!-- doxytag: member="RtMidiIn::openVirtualPort" ref="a3" args="()" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::openVirtualPort </td> + <td class="md" nowrap valign="top">void RtMidiIn::openVirtualPort </td> <td class="md" valign="top">( </td> - <td class="mdname1" valign="top" nowrap> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -149,41 +164,40 @@ Implements <a class="el" href="classRtMidi.html#a0">RtMidi</a>. </td> <td> <p> -Create a virtual input port to allow software connections (OS X and ALSA only). +Create a virtual input port 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). +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#a1">RtMidi</a>. </td> </tr> </table> -<a name="a4" doxytag="RtMidiIn::setCallback"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a4"></a><!-- doxytag: member="RtMidiIn::setCallback" ref="a4" args="(RtMidiCallback callback, void *userData=0)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::setCallback </td> + <td class="md" nowrap valign="top">void RtMidiIn::setCallback </td> <td class="md" valign="top">( </td> - <td class="md" nowrap valign="top"><a class="el" href="classRtMidiIn.html#s0">RtMidiCallback</a> </td> - <td class="mdname" nowrap> <em>callback</em>, </td> + <td class="md" nowrap valign="top"><a class="el" href="classRtMidiIn.html#w0">RtMidiCallback</a> </td> + <td class="mdname" nowrap> <em>callback</em>, </td> </tr> <tr> - <td></td> - <td></td> + <td class="md" nowrap align="right"></td> + <td class="md"></td> <td class="md" nowrap>void * </td> - <td class="mdname" nowrap> <em>userData</em> = 0</td> + <td class="mdname" nowrap> <em>userData</em> = <code>0</code></td> </tr> <tr> - <td></td> + <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -191,29 +205,28 @@ Implements <a class="el" href="classRtMidi.html#a1">RtMidi</a>. </td> <td> <p> -Set a callback function to be invoked for incoming MIDI messages. +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. </td> +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. </td> </tr> </table> -<a name="a5" doxytag="RtMidiIn::cancelCallback"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a5"></a><!-- doxytag: member="RtMidiIn::cancelCallback" ref="a5" args="()" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::cancelCallback </td> + <td class="md" nowrap valign="top">void RtMidiIn::cancelCallback </td> <td class="md" valign="top">( </td> - <td class="mdname1" valign="top" nowrap> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -221,30 +234,29 @@ The callback function will be called whenever an incoming MIDI message is receiv <td> <p> -Cancel use of the current callback function (if one exists). +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. </td> +Subsequent incoming MIDI messages will be written to the queue and can be retrieved with the <em>getMessage</em> function. </td> </tr> </table> -<a name="a8" doxytag="RtMidiIn::getPortName"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a8"></a><!-- doxytag: member="RtMidiIn::getPortName" ref="a8" args="(unsigned int portNumber=0)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> std::string RtMidiIn::getPortName </td> + <td class="md" nowrap valign="top">std::string RtMidiIn::getPortName </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> - <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = 0 </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = <code>0</code> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -252,32 +264,31 @@ Subsequent incoming MIDI messages will be written to the queue and can be retrie <td> <p> -Return a string identifier for the specified MIDI input port number. +Return a string identifier for the specified MIDI input port number. <p> -An exception is thrown if an invalid port specifier is provided. +An exception is thrown if an invalid port specifier is provided. <p> Implements <a class="el" href="classRtMidi.html#a3">RtMidi</a>. </td> </tr> </table> -<a name="a9" doxytag="RtMidiIn::setQueueSizeLimit"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a9"></a><!-- doxytag: member="RtMidiIn::setQueueSizeLimit" ref="a9" args="(unsigned int queueSize)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::setQueueSizeLimit </td> + <td class="md" nowrap valign="top">void RtMidiIn::setQueueSizeLimit </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> - <td class="mdname1" valign="top" nowrap> <em>queueSize</em> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>queueSize</em> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -285,45 +296,44 @@ Implements <a class="el" href="classRtMidi.html#a3">RtMidi</a>. </td> <td> <p> -Set the maximum number of MIDI messages to be saved in the queue. +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. </td> +If the queue size limit is reached, incoming messages will be ignored. The default limit is 1024. </td> </tr> </table> -<a name="a10" doxytag="RtMidiIn::ignoreTypes"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a10"></a><!-- doxytag: member="RtMidiIn::ignoreTypes" ref="a10" args="(bool midiSysex=true, bool midiTime=true, bool midiSense=true)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiIn::ignoreTypes </td> + <td class="md" nowrap valign="top">void RtMidiIn::ignoreTypes </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">bool </td> - <td class="mdname" nowrap> <em>midiSysex</em> = true, </td> + <td class="mdname" nowrap> <em>midiSysex</em> = <code>true</code>, </td> </tr> <tr> - <td></td> - <td></td> + <td class="md" nowrap align="right"></td> + <td class="md"></td> <td class="md" nowrap>bool </td> - <td class="mdname" nowrap> <em>midiTime</em> = true, </td> + <td class="mdname" nowrap> <em>midiTime</em> = <code>true</code>, </td> </tr> <tr> - <td></td> - <td></td> + <td class="md" nowrap align="right"></td> + <td class="md"></td> <td class="md" nowrap>bool </td> - <td class="mdname" nowrap> <em>midiSense</em> = true</td> + <td class="mdname" nowrap> <em>midiSense</em> = <code>true</code></td> </tr> <tr> - <td></td> + <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -331,30 +341,29 @@ If the queue size limit is reached, incoming messages will be ignored. The defau <td> <p> -Specify whether certain MIDI message types should be queued or ignored during input. +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. </td> +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. </td> </tr> </table> -<a name="a11" doxytag="RtMidiIn::getMessage"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a11"></a><!-- doxytag: member="RtMidiIn::getMessage" ref="a11" args="(std::vector< unsigned char > *message)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> double RtMidiIn::getMessage </td> + <td class="md" nowrap valign="top">double RtMidiIn::getMessage </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">std::vector< unsigned char > * </td> - <td class="mdname1" valign="top" nowrap> <em>message</em> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>message</em> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -362,9 +371,9 @@ By default, MIDI timing and active sensing messages are ignored during message i <td> <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. +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. </td> +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. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> @@ -372,7 +381,7 @@ This function returns immediately whether a new message is available or not. A v <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiOut-members.html b/doc/html/classRtMidiOut-members.html index e9e25bf..2f07304 100644 --- a/doc/html/classRtMidiOut-members.html +++ b/doc/html/classRtMidiOut-members.html @@ -7,20 +7,20 @@ <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.3-rc3 --> -<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 bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a3">closePort</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a5">getPortCount</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a6">getPortName</a>(unsigned int portNumber)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a2">openPort</a>(unsigned int portNumber=0)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a4">openVirtualPort</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td><code> [virtual]</code></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a0">RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a7">sendMessage</a>(std::vector< unsigned char > *message)</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> - <tr bgcolor="#f0f0f0"><td><a class="el" href="classRtMidiOut.html#a1">~RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> +<!-- Generated by Doxygen 1.4.4 --> +<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#a3">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#a5">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#a6">getPortName</a>(unsigned int portNumber)</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#a2">openPort</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#a4">openVirtualPort</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#a0">RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiOut.html#a7">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#a1">~RtMidiOut</a>()</td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a></td><td></td></tr> </table><HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> diff --git a/doc/html/classRtMidiOut.html b/doc/html/classRtMidiOut.html index b83984a..781470f 100644 --- a/doc/html/classRtMidiOut.html +++ b/doc/html/classRtMidiOut.html @@ -7,8 +7,8 @@ <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.3-rc3 --> -<h1>RtMidiOut Class Reference</h1>A realtime MIDI output class. +<!-- Generated by Doxygen 1.4.4 --> +<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> @@ -18,54 +18,61 @@ <map name="RtMidiOut_map"> <area href="classRtMidi.html" alt="RtMidi" shape="rect" coords="0,0,67,24"> </map> -<a href="classRtMidiOut-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> +<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 nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a0">RtMidiOut</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Default constructor.</em> <a href="#a0"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a1" doxytag="RtMidiOut::~RtMidiOut"></a> - </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a1">~RtMidiOut</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>The destructor closes any open MIDI connections.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a2">openPort</a> (unsigned int portNumber=0)</td></tr> -<tr><td> </td><td><font size=-1><em>Open a MIDI output connection.</em> <a href="#a2"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a3" doxytag="RtMidiOut::closePort"></a> -void </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a3">closePort</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Close an open MIDI connection (if one exists).</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a4">openVirtualPort</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Create a virtual output port to allow software connections (OS X and ALSA only).</em> <a href="#a4"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top><a name="a5" doxytag="RtMidiOut::getPortCount"></a> -unsigned int </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a5">getPortCount</a> ()</td></tr> -<tr><td> </td><td><font size=-1><em>Return the number of available MIDI output ports.</em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>std::string </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a6">getPortName</a> (unsigned int portNumber)</td></tr> -<tr><td> </td><td><font size=-1><em>Return a string identifier for the specified MIDI port type and number.</em> <a href="#a6"></a><em></em></font><br><br></td></tr> -<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classRtMidiOut.html#a7">sendMessage</a> (std::vector< unsigned char > *message)</td></tr> -<tr><td> </td><td><font size=-1><em>Immediately send a single message out an open MIDI output port.</em> <a href="#a7"></a><em></em></font><br><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="classRtMidiOut.html#a0">RtMidiOut</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1"></a><!-- doxytag: member="RtMidiOut::~RtMidiOut" ref="a1" args="()" --> + </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a1">~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#a2">openPort</a> (unsigned int portNumber=0)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Open a MIDI output connection. <a href="#a2"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3"></a><!-- doxytag: member="RtMidiOut::closePort" ref="a3" args="()" --> +void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a3">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#a4">openVirtualPort</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a virtual output port to allow software connections (OS X and ALSA only). <a href="#a4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5"></a><!-- doxytag: member="RtMidiOut::getPortCount" ref="a5" args="()" --> +unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiOut.html#a5">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#a6">getPortName</a> (unsigned int portNumber)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string identifier for the specified MIDI port type and number. <a href="#a6"></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#a7">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="#a7"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> -A realtime MIDI output class. +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-2004. +by Gary P. Scavone, 2003-2004. <p> <hr><h2>Constructor & Destructor Documentation</h2> -<a name="a0" doxytag="RtMidiOut::RtMidiOut"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a0"></a><!-- doxytag: member="RtMidiOut::RtMidiOut" ref="a0" args="()" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> RtMidiOut::RtMidiOut </td> + <td class="md" nowrap valign="top">RtMidiOut::RtMidiOut </td> <td class="md" valign="top">( </td> - <td class="mdname1" valign="top" nowrap> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -73,31 +80,30 @@ by Gary P. Scavone, 2003-2004. <td> <p> -Default constructor. +Default constructor. <p> -An exception will be thrown if a MIDI system initialization error occurs. </td> +An exception will be thrown if a MIDI system initialization error occurs. </td> </tr> </table> <hr><h2>Member Function Documentation</h2> -<a name="a2" doxytag="RtMidiOut::openPort"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a2"></a><!-- doxytag: member="RtMidiOut::openPort" ref="a2" args="(unsigned int portNumber=0)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiOut::openPort </td> + <td class="md" nowrap valign="top">void RtMidiOut::openPort </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> - <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = 0 </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>portNumber</em> = <code>0</code> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -105,31 +111,30 @@ An exception will be thrown if a MIDI system initialization error occurs. </ <td> <p> -Open a MIDI output connection. +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. +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#a0">RtMidi</a>. </td> </tr> </table> -<a name="a4" doxytag="RtMidiOut::openVirtualPort"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a4"></a><!-- doxytag: member="RtMidiOut::openVirtualPort" ref="a4" args="()" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiOut::openVirtualPort </td> + <td class="md" nowrap valign="top">void RtMidiOut::openVirtualPort </td> <td class="md" valign="top">( </td> - <td class="mdname1" valign="top" nowrap> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -137,32 +142,31 @@ Implements <a class="el" href="classRtMidi.html#a0">RtMidi</a>. </td> <td> <p> -Create a virtual output port to allow software connections (OS X and ALSA only). +Create a virtual output port 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. +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#a1">RtMidi</a>. </td> </tr> </table> -<a name="a6" doxytag="RtMidiOut::getPortName"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a6"></a><!-- doxytag: member="RtMidiOut::getPortName" ref="a6" args="(unsigned int portNumber)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> std::string RtMidiOut::getPortName </td> + <td class="md" nowrap valign="top">std::string RtMidiOut::getPortName </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> - <td class="mdname1" valign="top" nowrap> <em>portNumber</em> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>portNumber</em> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -170,32 +174,31 @@ Implements <a class="el" href="classRtMidi.html#a1">RtMidi</a>. </td> <td> <p> -Return a string identifier for the specified MIDI port type and number. +Return a string identifier for the specified MIDI port type and number. <p> -An exception is thrown if an invalid port specifier is provided. +An exception is thrown if an invalid port specifier is provided. <p> Implements <a class="el" href="classRtMidi.html#a3">RtMidi</a>. </td> </tr> </table> -<a name="a7" doxytag="RtMidiOut::sendMessage"></a><p> -<table width="100%" cellpadding="2" cellspacing="0" border="0"> +<a class="anchor" name="a7"></a><!-- doxytag: member="RtMidiOut::sendMessage" ref="a7" args="(std::vector< unsigned char > *message)" --><p> +<table class="mdTable" cellpadding="2" cellspacing="0"> <tr> - <td class="md"> + <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> - <td class="md" nowrap valign="top"> void RtMidiOut::sendMessage </td> + <td class="md" nowrap valign="top">void RtMidiOut::sendMessage </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">std::vector< unsigned char > * </td> - <td class="mdname1" valign="top" nowrap> <em>message</em> </td> - <td class="md" valign="top">) </td> + <td class="mdname1" valign="top" nowrap> <em>message</em> </td> + <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> - </table> </td> </tr> </table> -<table cellspacing=5 cellpadding=0 border=0> +<table cellspacing="5" cellpadding="0" border="0"> <tr> <td> @@ -203,9 +206,9 @@ Implements <a class="el" href="classRtMidi.html#a3">RtMidi</a>. </td> <td> <p> -Immediately send a single message out an open MIDI output port. +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. </td> +An exception is thrown if an error occurs during output or an output connection was not previously established. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> @@ -213,7 +216,7 @@ An exception is thrown if an error occurs during output or an output connection <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 8cb8b2e..decae9e 100644 --- a/doc/html/doxygen.css +++ b/doc/html/doxygen.css @@ -1,49 +1,309 @@ -H1 { text-align: center; } +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} CAPTION { font-weight: bold } -A.qindex {} -A.qindexRef {} +DIV.qindex { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #eeeeff; + border: 1px solid #b0b0b0; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } -A.code { text-decoration: none; font-weight: normal; color: #4444ee } -A.codeRef { font-weight: normal; color: #4444ee } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } -DIV.fragment { width: 100%; border: none; background-color: #eeeeee } +.fragment { + font-family: Fixed, monospace; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #f2f2ff; font-weight: bold; } -TD.mdname1 { background-color: #f2f2ff; font-weight: bold; color: #602020; } -TD.mdname { background-color: #f2f2ff; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold } -DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } -BODY { background: white; color: black } -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px -} -span.keyword { color: #008000 } -span.keywordtype { color: #604020 } -span.keywordflow { color: #e08000 } -span.comment { color: #800000 } -span.preprocessor { color: #806020 } -span.stringliteral { color: #002080 } -span.charliteral { color: #008080 } +TD.md { background-color: #F4F4FB; font-weight: bold; } +TD.mdPrefix { + background-color: #F4F4FB; + color: #606060; + font-size: 80%; +} +TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } +TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #eeeeff; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #eeeeff; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdTable { + border: 1px solid #868686; + background-color: #F4F4FB; +} +.mdRow { + padding: 8px 10px; +} +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #eeeeff; +} +TD.tiny { font-size: 75%; +} +a { + color: #252E78; +} +a:visited { + color: #3D2185; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #b0b0b0; +} +TH.dirtab { background: #eeeeff; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png Binary files differindex 96ae72c..f0a274b 100644 --- a/doc/html/doxygen.png +++ b/doc/html/doxygen.png diff --git a/doc/html/files.html b/doc/html/files.html index 7be5c13..535e684 100644 --- a/doc/html/files.html +++ b/doc/html/files.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.3-rc3 --> +<!-- Generated by Doxygen 1.4.4 --> <h1>RtMidi 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> @@ -15,7 +15,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 e26ca3d..6f5e04f 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -7,34 +7,78 @@ <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.3-rc3 --> -<h1>RtMidi Compound Members</h1>Here is a list of all documented class members with links to the class documentation for each member:<ul> +<!-- Generated by Doxygen 1.4.4 --> +<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div> +<div class="qindex"><a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_g">g</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_u">u</a> | <a class="qindex" href="#index_w">w</a> | <a class="qindex" href="#index_~">~</a></div> + +<p> +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> <li>cancelCallback() : <a class="el" href="classRtMidiIn.html#a5">RtMidiIn</a><li>closePort() -: <a class="el" href="classRtMidiOut.html#a3">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a6">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a4">RtMidi</a><li>getMessage() -: <a class="el" href="classRtError.html#a4">RtError</a>, <a class="el" href="classRtMidiIn.html#a11">RtMidiIn</a><li>getPortCount() +: <a class="el" href="classRtMidiOut.html#a3">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a6">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a4">RtMidi</a></ul> +<h3><a class="anchor" name="index_d">- d -</a></h3><ul> +<li>DEBUG_WARNING +: <a class="el" href="classRtError.html#w11w1">RtError</a><li>DRIVER_ERROR +: <a class="el" href="classRtError.html#w11w8">RtError</a></ul> +<h3><a class="anchor" name="index_g">- g -</a></h3><ul> +<li>getMessage() +: <a class="el" href="classRtError.html#a4">RtError</a>, <a class="el" href="classRtMidiIn.html#a11">RtMidiIn</a><li>getMessageString() +: <a class="el" href="classRtError.html#a5">RtError</a><li>getPortCount() : <a class="el" href="classRtMidiOut.html#a5">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a7">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a2">RtMidi</a><li>getPortName() : <a class="el" href="classRtMidiOut.html#a6">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a8">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a3">RtMidi</a><li>getType() -: <a class="el" href="classRtError.html#a3">RtError</a><li>ignoreTypes() -: <a class="el" href="classRtMidiIn.html#a10">RtMidiIn</a><li>openPort() +: <a class="el" href="classRtError.html#a3">RtError</a></ul> +<h3><a class="anchor" name="index_i">- i -</a></h3><ul> +<li>ignoreTypes() +: <a class="el" href="classRtMidiIn.html#a10">RtMidiIn</a><li>INVALID_DEVICE +: <a class="el" href="classRtError.html#w11w4">RtError</a><li>INVALID_PARAMETER +: <a class="el" href="classRtError.html#w11w7">RtError</a><li>INVALID_STREAM +: <a class="el" href="classRtError.html#w11w5">RtError</a></ul> +<h3><a class="anchor" name="index_m">- m -</a></h3><ul> +<li>MEMORY_ERROR +: <a class="el" href="classRtError.html#w11w6">RtError</a></ul> +<h3><a class="anchor" name="index_n">- n -</a></h3><ul> +<li>NO_DEVICES_FOUND +: <a class="el" href="classRtError.html#w11w3">RtError</a></ul> +<h3><a class="anchor" name="index_o">- o -</a></h3><ul> +<li>openPort() : <a class="el" href="classRtMidiOut.html#a2">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a2">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a0">RtMidi</a><li>openVirtualPort() -: <a class="el" href="classRtMidiOut.html#a4">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a3">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a1">RtMidi</a><li>printMessage() -: <a class="el" href="classRtError.html#a2">RtError</a><li>RtError() +: <a class="el" href="classRtMidiOut.html#a4">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a3">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a1">RtMidi</a></ul> +<h3><a class="anchor" name="index_p">- p -</a></h3><ul> +<li>printMessage() +: <a class="el" href="classRtError.html#a2">RtError</a></ul> +<h3><a class="anchor" name="index_r">- r -</a></h3><ul> +<li>RtError() : <a class="el" href="classRtError.html#a0">RtError</a><li>RtMidiCallback -: <a class="el" href="classRtMidiIn.html#s0">RtMidiIn</a><li>RtMidiIn() +: <a class="el" href="classRtMidiIn.html#w0">RtMidiIn</a><li>RtMidiIn() : <a class="el" href="classRtMidiIn.html#a0">RtMidiIn</a><li>RtMidiOut() -: <a class="el" href="classRtMidiOut.html#a0">RtMidiOut</a><li>sendMessage() +: <a class="el" href="classRtMidiOut.html#a0">RtMidiOut</a></ul> +<h3><a class="anchor" name="index_s">- s -</a></h3><ul> +<li>sendMessage() : <a class="el" href="classRtMidiOut.html#a7">RtMidiOut</a><li>setCallback() : <a class="el" href="classRtMidiIn.html#a4">RtMidiIn</a><li>setQueueSizeLimit() -: <a class="el" href="classRtMidiIn.html#a9">RtMidiIn</a><li>Type -: <a class="el" href="classRtError.html#s11">RtError</a><li>~RtError() +: <a class="el" href="classRtMidiIn.html#a9">RtMidiIn</a><li>SYSTEM_ERROR +: <a class="el" href="classRtError.html#w11w9">RtError</a></ul> +<h3><a class="anchor" name="index_t">- t -</a></h3><ul> +<li>THREAD_ERROR +: <a class="el" href="classRtError.html#w11w10">RtError</a><li>Type +: <a class="el" href="classRtError.html#w11">RtError</a></ul> +<h3><a class="anchor" name="index_u">- u -</a></h3><ul> +<li>UNSPECIFIED +: <a class="el" href="classRtError.html#w11w2">RtError</a></ul> +<h3><a class="anchor" name="index_w">- w -</a></h3><ul> +<li>WARNING +: <a class="el" href="classRtError.html#w11w0">RtError</a></ul> +<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul> +<li>~RtError() : <a class="el" href="classRtError.html#a1">RtError</a><li>~RtMidiIn() : <a class="el" href="classRtMidiIn.html#a1">RtMidiIn</a><li>~RtMidiOut() : <a class="el" href="classRtMidiOut.html#a1">RtMidiOut</a></ul> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 74a527d..b4be9e5 100644 --- a/doc/html/functions_enum.html +++ b/doc/html/functions_enum.html @@ -7,8 +7,8 @@ <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.3.6 --> -<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindexHL" href="functions_enum.html">Enumerations</a></div> +<!-- Generated by Doxygen 1.4.4 --> +<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindexHL" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div> <p> <ul> @@ -17,7 +17,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 new file mode 100644 index 0000000..f5bb14a --- /dev/null +++ b/doc/html/functions_eval.html @@ -0,0 +1,35 @@ +<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.4.4 --> +<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindexHL" href="functions_eval.html">Enumerator</a></div> + +<p> +<ul> +<li>DEBUG_WARNING +: <a class="el" href="classRtError.html#w11w1">RtError</a><li>DRIVER_ERROR +: <a class="el" href="classRtError.html#w11w8">RtError</a><li>INVALID_DEVICE +: <a class="el" href="classRtError.html#w11w4">RtError</a><li>INVALID_PARAMETER +: <a class="el" href="classRtError.html#w11w7">RtError</a><li>INVALID_STREAM +: <a class="el" href="classRtError.html#w11w5">RtError</a><li>MEMORY_ERROR +: <a class="el" href="classRtError.html#w11w6">RtError</a><li>NO_DEVICES_FOUND +: <a class="el" href="classRtError.html#w11w3">RtError</a><li>SYSTEM_ERROR +: <a class="el" href="classRtError.html#w11w9">RtError</a><li>THREAD_ERROR +: <a class="el" href="classRtError.html#w11w10">RtError</a><li>UNSPECIFIED +: <a class="el" href="classRtError.html#w11w2">RtError</a><li>WARNING +: <a class="el" href="classRtError.html#w11w0">RtError</a></ul> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2005 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/functions_func.html b/doc/html/functions_func.html index cc2ad93..5ddb1c1 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -7,21 +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.3.6 --> -<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a></div> +<!-- Generated by Doxygen 1.4.4 --> +<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div> <p> <ul> <li>cancelCallback() : <a class="el" href="classRtMidiIn.html#a5">RtMidiIn</a><li>closePort() -: <a class="el" href="classRtMidiOut.html#a3">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a6">RtMidiIn</a><li>getMessage() -: <a class="el" href="classRtError.html#a4">RtError</a>, <a class="el" href="classRtMidiIn.html#a11">RtMidiIn</a><li>getPortCount() -: <a class="el" href="classRtMidiOut.html#a5">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a7">RtMidiIn</a><li>getPortName() -: <a class="el" href="classRtMidiOut.html#a6">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a8">RtMidiIn</a><li>getType() +: <a class="el" href="classRtMidiOut.html#a3">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a6">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a4">RtMidi</a><li>getMessage() +: <a class="el" href="classRtError.html#a4">RtError</a>, <a class="el" href="classRtMidiIn.html#a11">RtMidiIn</a><li>getMessageString() +: <a class="el" href="classRtError.html#a5">RtError</a><li>getPortCount() +: <a class="el" href="classRtMidiOut.html#a5">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a7">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a2">RtMidi</a><li>getPortName() +: <a class="el" href="classRtMidiOut.html#a6">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a8">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a3">RtMidi</a><li>getType() : <a class="el" href="classRtError.html#a3">RtError</a><li>ignoreTypes() : <a class="el" href="classRtMidiIn.html#a10">RtMidiIn</a><li>openPort() -: <a class="el" href="classRtMidiOut.html#a2">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a2">RtMidiIn</a><li>openVirtualPort() -: <a class="el" href="classRtMidiOut.html#a4">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a3">RtMidiIn</a><li>printMessage() +: <a class="el" href="classRtMidiOut.html#a2">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a2">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a0">RtMidi</a><li>openVirtualPort() +: <a class="el" href="classRtMidiOut.html#a4">RtMidiOut</a>, <a class="el" href="classRtMidiIn.html#a3">RtMidiIn</a>, <a class="el" href="classRtMidi.html#a1">RtMidi</a><li>printMessage() : <a class="el" href="classRtError.html#a2">RtError</a><li>RtError() : <a class="el" href="classRtError.html#a0">RtError</a><li>RtMidiIn() : <a class="el" href="classRtMidiIn.html#a0">RtMidiIn</a><li>RtMidiOut() @@ -35,7 +36,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 956c842..f8dc89a 100644 --- a/doc/html/functions_type.html +++ b/doc/html/functions_type.html @@ -7,8 +7,8 @@ <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.3.6 --> -<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a></div> +<!-- Generated by Doxygen 1.4.4 --> +<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_type.html">Typedefs</a> | <a class="qindex" href="functions_enum.html">Enumerations</a> | <a class="qindex" href="functions_eval.html">Enumerator</a></div> <p> <ul> @@ -17,7 +17,7 @@ <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 548d919..4d08a2a 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.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.3-rc3 --> +<!-- Generated by Doxygen 1.4.4 --> <h1>RtMidi 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> @@ -15,11 +15,11 @@ <li><a class="el" href="classRtMidiIn.html">RtMidiIn</a> <li><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </ul> -<li><b>RtMidiIn::MidiMessage</b><li><b>RtMidiIn::RtMidiInData</b></ul> +</ul> <HR> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 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 cc0f2d3..1d40a77 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -7,12 +7,12 @@ <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.3-rc3 --> -<h1>The <a class="el" href="classRtMidi.html">RtMidi</a> Tutorial</h1> +<!-- Generated by Doxygen 1.4.4 --> +<h1>The <a class="el" href="classRtMidi.html">RtMidi</a> Tutorial </h1> <p> -<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#license">License</a> </center><h2><a name="intro"></a> -Introduction</h2> -<a class="el" href="classRtMidi.html">RtMidi</a> is a set of C++ classes (<a class="el" href="classRtMidiIn.html">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html">RtMidiOut</a>) which provide 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">RtMidi</a> significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals:<p> +<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"> +Introduction</a></h2> +<a class="el" href="classRtMidi.html">RtMidi</a> is a set of C++ classes (<a class="el" href="classRtMidiIn.html">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html">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">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,14 +24,12 @@ only two header files and one source file for easy inclusion in programming proj MIDI device enumeration </li> </ul> <p> -MIDI input and output functionality are separated into two classes, <a class="el" href="classRtMidiIn.html">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html">RtMidiOut</a>. Each class instance supports only a single MIDI connection. <a class="el" href="classRtMidi.html">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 name="download"></a> -Download</h2> -Latest Release (22 November 2004): <a href="http://music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.3.tar.gz">Version 1.0.3</a><h2><a name="start"></a> -Getting Started</h2> +MIDI input and output functionality are separated into two classes, <a class="el" href="classRtMidiIn.html">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html">RtMidiOut</a>. Each class instance supports only a single MIDI connection. <a class="el" href="classRtMidi.html">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"> +Download</a></h2> +Latest Release (14 October 2005): <a href="http://music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.4.tar.gz">Version 1.0.4</a><h2><a class="anchor" name="start"> +Getting Started</a></h2> The first thing that must be done when using <a class="el" href="classRtMidi.html">RtMidi</a> is to create an instance of the <a class="el" href="classRtMidiIn.html">RtMidiIn</a> or <a class="el" href="classRtMidiOut.html">RtMidiOut</a> subclasses. <a class="el" href="classRtMidi.html">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">RtMidi</a> uses C++ exceptions to report errors, necessitating try/catch blocks around many member functions. An <a class="el" href="classRtError.html">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">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> - -<span class="preprocessor">#include "RtMidi.h"</span> +<div class="fragment"><pre class="fragment"><span class="preprocessor">#include "RtMidi.h"</span> <span class="keywordtype">int</span> main() { @@ -43,20 +41,19 @@ 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">RtError</a> &error) { <span class="comment">// Handle the exception here</span> - error.printMessage(); + error.<a class="code" href="classRtError.html#a2">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">RtMidi</a>. However, all uses of <a class="el" href="classRtMidi.html">RtMidi</a> must begin with construction and must end with class destruction. Further, it is necessary that all class methods which can throw a C++ exception be called within a try/catch block.<h2><a name="error"></a> -Error Handling</h2> -<a class="el" href="classRtMidi.html">RtMidi</a> uses a C++ exception handler called <a class="el" href="classRtError.html">RtError</a>, which is declared and defined in <a class="el" href="RtError_8h.html">RtError.h</a>. The <a class="el" href="classRtError.html">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#s11">RtError::Type</a>. Many <a class="el" href="classRtMidi.html">RtMidi</a> methods can "throw" an <a class="el" href="classRtError.html">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">RtMidi</a> where warning messages may be displayed but an exception is not thrown. There is a protected <a class="el" href="classRtMidi.html">RtMidi</a> method, error(), which 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">RtMidi</a> unless the preprocessor definition __RTMIDI_DEBUG__ is defined. Messages associated with caught exceptions can be displayed with, for example, the <a class="el" href="classRtError.html#a2">RtError::printMessage()</a> function.<h2><a name="probing"></a> -Probing Ports</h2> +Obviously, this example doesn't demonstrate any of the real functionality of <a class="el" href="classRtMidi.html">RtMidi</a>. However, all uses of <a class="el" href="classRtMidi.html">RtMidi</a> must begin with construction and must end with class destruction. Further, it is necessary that all class methods which can throw a C++ exception be called within a try/catch block.<h2><a class="anchor" name="error"> +Error Handling</a></h2> +<a class="el" href="classRtMidi.html">RtMidi</a> uses a C++ exception handler called <a class="el" href="classRtError.html">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">RtError</a> class is quite simple but it does allow errors to be "caught" by <a class="el" href="classRtError.html#w11">RtError::Type</a>. Many <a class="el" href="classRtMidi.html">RtMidi</a> methods can "throw" an <a class="el" href="classRtError.html">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">RtMidi</a> where warning messages may be displayed but an exception is not thrown. There is a protected <a class="el" href="classRtMidi.html">RtMidi</a> method, error(), which 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">RtMidi</a> unless the preprocessor definition __RTMIDI_DEBUG__ is defined. Messages associated with caught exceptions can be displayed with, for example, the <a class="el" href="classRtError.html#a2">RtError::printMessage()</a> function.<h2><a class="anchor" name="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> -<div class="fragment"><pre> -<span class="comment">// midiinfo.cpp</span> +<div class="fragment"><pre class="fragment"><span class="comment">// midiinfo.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include "RtMidi.h"</span> @@ -71,7 +68,7 @@ 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">RtMidiIn</a>(); } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html">RtError</a> &error) { - error.printMessage(); + error.<a class="code" href="classRtError.html#a2">printMessage</a>(); exit(EXIT_FAILURE); } @@ -84,7 +81,7 @@ A programmer may wish to query the available MIDI ports before deciding which to portName = midiin-><a class="code" href="classRtMidiIn.html#a8">getPortName</a>(i); } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html">RtError</a> &error) { - error.printMessage(); + error.<a class="code" href="classRtError.html#a2">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>; @@ -95,7 +92,7 @@ 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">RtMidiOut</a>(); } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html">RtError</a> &error) { - error.printMessage(); + error.<a class="code" href="classRtError.html#a2">printMessage</a>(); exit(EXIT_FAILURE); } @@ -107,7 +104,7 @@ A programmer may wish to query the available MIDI ports before deciding which to portName = midiout-><a class="code" href="classRtMidiOut.html#a6">getPortName</a>(i); } <span class="keywordflow">catch</span> (<a class="code" href="classRtError.html">RtError</a> &error) { - error.printMessage(); + error.<a class="code" href="classRtError.html#a2">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>; @@ -121,12 +118,11 @@ A programmer may wish to query the available MIDI ports before deciding which to <span class="keywordflow">return</span> 0; } -</pre></div><h2><a name="output"></a> -MIDI Output</h2> +</pre></div><h2><a class="anchor" name="output"> +MIDI Output</a></h2> The <a class="el" href="classRtMidiOut.html">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> -<div class="fragment"><pre> -<span class="comment">// midiout.cpp</span> +<div class="fragment"><pre class="fragment"><span class="comment">// midiout.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include "RtMidi.h"</span> @@ -179,15 +175,14 @@ In the following example, we omit necessary error checking and details regarding <span class="keywordflow">return</span> 0; } -</pre></div><h2><a name="input"></a> -MIDI Input</h2> +</pre></div><h2><a class="anchor" name="input"> +MIDI Input</a></h2> The <a class="el" href="classRtMidiIn.html">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#a11">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#a4">RtMidiIn::setCallback()</a> function). We'll provide examples of both usages.<p> -The <a class="el" href="classRtMidiIn.html">RtMidiIn</a> class provides the <a class="el" href="classRtMidiIn.html#a10">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 name="qmidiin"></a> -Queued MIDI Input</h3> +The <a class="el" href="classRtMidiIn.html">RtMidiIn</a> class provides the <a class="el" href="classRtMidiIn.html#a10">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"> +Queued MIDI Input</a></h3> The <a class="el" href="classRtMidiIn.html#a11">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#a9">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> -<div class="fragment"><pre> -<span class="comment">// qmidiin.cpp</span> +<div class="fragment"><pre class="fragment"><span class="comment">// qmidiin.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include <signal.h></span> @@ -238,12 +233,11 @@ In the following example, we omit some necessary error checking and details rega <span class="keywordflow">return</span> 0; } -</pre></div><h3><a name="cmidiin"></a> -MIDI Input with User Callback</h3> +</pre></div><h3><a class="anchor" name="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 which 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> -<div class="fragment"><pre> -<span class="comment">// cmidiin.cpp</span> +<div class="fragment"><pre class="fragment"><span class="comment">// cmidiin.cpp</span> <span class="preprocessor">#include <iostream></span> <span class="preprocessor">#include "RtMidi.h"</span> @@ -288,10 +282,10 @@ In the following example, we omit some necessary error checking. For a more comp <span class="keywordflow">return</span> 0; } -</pre></div><h2><a name="virtual"></a> -Virtual Ports</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">RtMidi</a> incorporates this functionality with the <a class="el" href="classRtMidiIn.html#a3">RtMidiIn::openVirtualPort()</a> and <a class="el" href="classRtMidiOut.html#a4">RtMidiOut::openVirtualPort()</a> functions. Any messages sent with the <a class="el" href="classRtMidiOut.html#a7">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 name="compiling"></a> -Compiling</h2> +</pre></div><h2><a class="anchor" name="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">RtMidi</a> incorporates this functionality with the <a class="el" href="classRtMidiIn.html#a3">RtMidiIn::openVirtualPort()</a> and <a class="el" href="classRtMidiOut.html#a4">RtMidiOut::openVirtualPort()</a> functions. Any messages sent with the <a class="el" href="classRtMidiOut.html#a7">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"> +Compiling</a></h2> In order to compile <a class="el" href="classRtMidi.html">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"> <tr bgcolor="beige"> @@ -306,29 +300,31 @@ In order to compile <a class="el" href="classRtMidi.html">RtMidi</a> for a speci <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>probe.cpp</code> example file, assuming that <code>midiinfo.cpp</code>, <code><a class="el" href="RtMidi_8h.html">RtMidi.h</a></code>, <code><a class="el" href="RtError_8h.html">RtError.h</a></code>, and <code>RtMidi.cpp</code> all exist in the same directory.<h2><a name="debug"></a> -Debugging</h2> -If you are having problems getting <a class="el" href="classRtMidi.html">RtMidi</a> to run on your system, try passing the preprocessor definition <code>__RTMIDI_DEBUG__</code> to the compiler (or uncomment the definition at the bottom of <a class="el" href="RtMidi_8h.html">RtMidi.h</a>). A variety of warning messages will be displayed which may help in determining the problem. Also try using the programs included in the <code>test</code> directory. The program <code>midiinfo</code> displays the queried capabilities of all MIDI ports found.<h2><a name="apinotes"></a> -API Notes</h2> -<a class="el" href="classRtMidi.html">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 name="linux"></a> -Linux:</h3> -<a class="el" href="classRtMidi.html">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">RtMidi</a> uses the ALSA sequencer API, which allows for virtual software input and output ports.<h3><a name="macosx"></a> -Macintosh OS X (CoreAudio):</h3> -The Apple CoreMidi API allows for the establishment of virtual input and output ports to which other software applications can connect.<h3><a name="irix"></a> -Irix (SGI):</h3> -The Irix version of <a class="el" href="classRtMidi.html">RtMidi</a> was written and tested on an SGI Indy running Irix version 6.5.4 and the MD audio library.<h3><a name="windowsds"></a> -Windows (Multimedia Library):</h3> -The Windows Multimedia library MIDI calls used in <a class="el" href="classRtMidi.html">RtMidi</a> do not make use of streaming functionality. <a class="el" href="classRtMidi.html">RtMidi</a> was originally developed with Visual C++ version 6.0.<h2><a name="license"></a> -License</h2> +The example compiler statements above could be used to compile the <code>probe.cpp</code> example file, assuming that <code>midiinfo.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"> +Debugging</a></h2> +If you are having problems getting <a class="el" href="classRtMidi.html">RtMidi</a> to run on your system, try passing the preprocessor definition <code>__RTMIDI_DEBUG__</code> to the compiler (or uncomment the definition at the bottom of <a class="el" href="RtMidi_8h-source.html">RtMidi.h</a>). A variety of warning messages will be displayed which may help in determining the problem. Also try using the programs included in the <code>test</code> directory. The program <code>midiinfo</code> displays the queried capabilities of all MIDI ports found.<h2><a class="anchor" name="apinotes"> +API Notes</a></h2> +<a class="el" href="classRtMidi.html">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"> +Linux:</a></h3> +<a class="el" href="classRtMidi.html">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">RtMidi</a> uses the ALSA sequencer API, which allows for virtual software input and output ports.<h3><a class="anchor" name="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"> +Irix (SGI):</a></h3> +The Irix version of <a class="el" href="classRtMidi.html">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"> +Windows (Multimedia Library):</a></h3> +The Windows Multimedia library MIDI calls used in <a class="el" href="classRtMidi.html">RtMidi</a> do not make use of streaming functionality. <a class="el" href="classRtMidi.html">RtMidi</a> was originally developed with Visual C++ version 6.0.<h2><a class="anchor" name="acknowledge"> +Acknowledgements</a></h2> +Many thanks to Pedro Lopez-Cabanillas for his help with the ALSA sequencer API!<h2><a class="anchor" name="license"> +License</a></h2> <a class="el" href="classRtMidi.html">RtMidi</a>: realtime MIDI i/o C++ classes<br> - Copyright (c) 2003-2004 Gary P. Scavone<p> + Copyright (c) 2003-2005 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 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> <table><tr><td><img src="../images/mcgill.gif" width=165></td> - <td>©2003-2004 Gary P. Scavone, McGill University. All Rights Reserved.<br> + <td>©2003-2005 Gary P. Scavone, McGill University. All Rights Reserved.<br> Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> </table> |
