diff options
| author | Gary Scavone <gary@music.mcgill.ca> | 2013-10-11 15:37:48 +0200 |
|---|---|---|
| committer | Stephen Sinclair <sinclair@music.mcgill.ca> | 2013-10-11 15:37:48 +0200 |
| commit | eaead6c80cc693f795e26bcee5739104ce39263d (patch) | |
| tree | 211de56a4a807154421c385a6b501f8ac1ba4ba8 | |
| parent | 779dda08dc7347523c1e3e4818634f997bc100ad (diff) | |
Release 1.0.15 tarball1.0.15
| -rw-r--r-- | doc/html/RtMidi_8h_source.html | 221 | ||||
| -rw-r--r-- | doc/html/annotated.html | 1 | ||||
| -rw-r--r-- | doc/html/classRtMidiIn-members.html | 3 | ||||
| -rw-r--r-- | doc/html/classRtMidiIn.html | 49 | ||||
| -rw-r--r-- | doc/html/classes.html | 4 | ||||
| -rw-r--r-- | doc/html/functions.html | 5 | ||||
| -rw-r--r-- | doc/html/functions_func.html | 54 | ||||
| -rw-r--r-- | doc/html/hierarchy.html | 1 | ||||
| -rw-r--r-- | doc/html/index.html | 6 | ||||
| -rw-r--r-- | doc/html/structRtMidiIn_1_1MidiQueue-members.html | 22 | ||||
| -rw-r--r-- | doc/html/structRtMidiIn_1_1MidiQueue.html | 30 |
11 files changed, 195 insertions, 201 deletions
diff --git a/doc/html/RtMidi_8h_source.html b/doc/html/RtMidi_8h_source.html index 5ba8c70..0867a7b 100644 --- a/doc/html/RtMidi_8h_source.html +++ b/doc/html/RtMidi_8h_source.html @@ -11,7 +11,7 @@ <h1>RtMidi.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**********************************************************************/</span> <a name="l00036"></a>00036 <span class="comment">/**********************************************************************/</span> <a name="l00037"></a>00037 -<a name="l00038"></a>00038 <span class="comment">// RtMidi: Version 1.0.14</span> +<a name="l00038"></a>00038 <span class="comment">// RtMidi: Version 1.0.15</span> <a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="preprocessor">#ifndef RTMIDI_H</span> <a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define RTMIDI_H</span> @@ -52,121 +52,128 @@ <a name="l00096"></a>00096 <span class="comment">/**********************************************************************/</span> <a name="l00097"></a>00097 <a name="l00098"></a>00098 <span class="preprocessor">#include <vector></span> -<a name="l00099"></a>00099 <span class="preprocessor">#include <queue></span> -<a name="l00100"></a>00100 -<a name="l00101"></a><a class="code" href="classRtMidiIn.html">00101</a> <span class="keyword">class </span><a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> -<a name="l00102"></a>00102 { -<a name="l00103"></a>00103 <span class="keyword">public</span>: -<a name="l00104"></a>00104 -<a name="l00106"></a><a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">00106</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector<unsigned char> *message, <span class="keywordtype">void</span> *userData); -<a name="l00107"></a>00107 -<a name="l00109"></a>00109 -<a name="l00112"></a>00112 <a class="code" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5" title="Default constructor that allows an optional client name.">RtMidiIn</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Input Client"</span>) ); -<a name="l00113"></a>00113 -<a name="l00115"></a>00115 <a class="code" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40" title="If a MIDI connection is still open, it will be closed by the destructor.">~RtMidiIn</a>(); +<a name="l00099"></a>00099 +<a name="l00100"></a><a class="code" href="classRtMidiIn.html">00100</a> <span class="keyword">class </span><a class="code" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> +<a name="l00101"></a>00101 { +<a name="l00102"></a>00102 <span class="keyword">public</span>: +<a name="l00103"></a>00103 +<a name="l00105"></a><a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">00105</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector<unsigned char> *message, <span class="keywordtype">void</span> *userData); +<a name="l00106"></a>00106 +<a name="l00108"></a>00108 +<a name="l00115"></a>00115 <a class="code" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d" title="Default constructor that allows an optional client name and queue size.">RtMidiIn</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Input Client"</span>), <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSizeLimit = 100 ); <a name="l00116"></a>00116 -<a name="l00118"></a>00118 -<a name="l00122"></a>00122 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string Portname = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); -<a name="l00123"></a>00123 -<a name="l00125"></a>00125 -<a name="l00131"></a>00131 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); -<a name="l00132"></a>00132 -<a name="l00134"></a>00134 -<a name="l00140"></a>00140 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( <a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData = 0 ); -<a name="l00141"></a>00141 -<a name="l00143"></a>00143 -<a name="l00147"></a>00147 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">cancelCallback</a>(); -<a name="l00148"></a>00148 -<a name="l00150"></a>00150 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ); +<a name="l00118"></a>00118 <a class="code" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40" title="If a MIDI connection is still open, it will be closed by the destructor.">~RtMidiIn</a>(); +<a name="l00119"></a>00119 +<a name="l00121"></a>00121 +<a name="l00125"></a>00125 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd" title="Open a MIDI input connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string Portname = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); +<a name="l00126"></a>00126 +<a name="l00128"></a>00128 +<a name="l00134"></a>00134 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2" title="Create a virtual input port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Input"</span> ) ); +<a name="l00135"></a>00135 +<a name="l00137"></a>00137 +<a name="l00143"></a>00143 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d" title="Set a callback function to be invoked for incoming MIDI messages.">setCallback</a>( <a class="code" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf" title="User callback function type definition.">RtMidiCallback</a> callback, <span class="keywordtype">void</span> *userData = 0 ); +<a name="l00144"></a>00144 +<a name="l00146"></a>00146 +<a name="l00150"></a>00150 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e" title="Cancel use of the current callback function (if one exists).">cancelCallback</a>(); <a name="l00151"></a>00151 -<a name="l00153"></a>00153 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); +<a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39" title="Close an open MIDI connection (if one exists).">closePort</a>( <span class="keywordtype">void</span> ); <a name="l00154"></a>00154 -<a name="l00156"></a>00156 -<a name="l00159"></a>00159 std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -<a name="l00160"></a>00160 -<a name="l00162"></a>00162 -<a name="l00166"></a>00166 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188" title="Set the maximum number of MIDI messages to be saved in the queue.">setQueueSizeLimit</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueSize ); -<a name="l00167"></a>00167 -<a name="l00169"></a>00169 -<a name="l00176"></a>00176 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiTime = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiSense = <span class="keyword">true</span> ); -<a name="l00177"></a>00177 -<a name="l00179"></a>00179 -<a name="l00186"></a>00186 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( std::vector<unsigned char> *message ); -<a name="l00187"></a>00187 -<a name="l00188"></a>00188 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> -<a name="l00189"></a>00189 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> -<a name="l00190"></a><a class="code" href="structRtMidiIn_1_1MidiMessage.html">00190</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> { -<a name="l00191"></a>00191 std::vector<unsigned char> bytes; -<a name="l00192"></a>00192 <span class="keywordtype">double</span> timeStamp; -<a name="l00193"></a>00193 -<a name="l00194"></a>00194 <span class="comment">// Default constructor.</span> -<a name="l00195"></a>00195 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a>() -<a name="l00196"></a>00196 :bytes(3), timeStamp(0.0) {} -<a name="l00197"></a>00197 }; -<a name="l00198"></a>00198 -<a name="l00199"></a>00199 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> -<a name="l00200"></a>00200 <span class="comment">// the MIDI input handling function or thread.</span> -<a name="l00201"></a><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">00201</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> { -<a name="l00202"></a>00202 std::queue<MidiMessage> queue; -<a name="l00203"></a>00203 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> message; -<a name="l00204"></a>00204 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit; -<a name="l00205"></a>00205 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; -<a name="l00206"></a>00206 <span class="keywordtype">bool</span> doInput; -<a name="l00207"></a>00207 <span class="keywordtype">bool</span> firstMessage; -<a name="l00208"></a>00208 <span class="keywordtype">void</span> *apiData; -<a name="l00209"></a>00209 <span class="keywordtype">bool</span> usingCallback; -<a name="l00210"></a>00210 <span class="keywordtype">void</span> *userCallback; -<a name="l00211"></a>00211 <span class="keywordtype">void</span> *userData; -<a name="l00212"></a>00212 <span class="keywordtype">bool</span> continueSysex; -<a name="l00213"></a>00213 -<a name="l00214"></a>00214 <span class="comment">// Default constructor.</span> -<a name="l00215"></a>00215 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a>() -<a name="l00216"></a>00216 : queueLimit(1024), ignoreFlags(7), doInput(<span class="keyword">false</span>), firstMessage(<span class="keyword">true</span>), -<a name="l00217"></a>00217 apiData(0), usingCallback(<span class="keyword">false</span>), userCallback(0), userData(0), -<a name="l00218"></a>00218 continueSysex(<span class="keyword">false</span>) {} -<a name="l00219"></a>00219 }; +<a name="l00156"></a>00156 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a62b1b38aa8e5f11cd66f03d59228f4e4" title="Return the number of available MIDI input ports.">getPortCount</a>(); +<a name="l00157"></a>00157 +<a name="l00159"></a>00159 +<a name="l00162"></a>00162 std::string <a class="code" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf" title="Return a string identifier for the specified MIDI input port number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); +<a name="l00163"></a>00163 +<a name="l00165"></a>00165 +<a name="l00172"></a>00172 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">ignoreTypes</a>( <span class="keywordtype">bool</span> midiSysex = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiTime = <span class="keyword">true</span>, <span class="keywordtype">bool</span> midiSense = <span class="keyword">true</span> ); +<a name="l00173"></a>00173 +<a name="l00175"></a>00175 +<a name="l00182"></a>00182 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage</a>( std::vector<unsigned char> *message ); +<a name="l00183"></a>00183 +<a name="l00184"></a>00184 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> +<a name="l00185"></a>00185 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> +<a name="l00186"></a><a class="code" href="structRtMidiIn_1_1MidiMessage.html">00186</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> { +<a name="l00187"></a>00187 std::vector<unsigned char> bytes; +<a name="l00188"></a>00188 <span class="keywordtype">double</span> timeStamp; +<a name="l00189"></a>00189 +<a name="l00190"></a>00190 <span class="comment">// Default constructor.</span> +<a name="l00191"></a>00191 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a>() +<a name="l00192"></a>00192 :bytes(0), timeStamp(0.0) {} +<a name="l00193"></a>00193 }; +<a name="l00194"></a>00194 +<a name="l00195"></a><a class="code" href="structRtMidiIn_1_1MidiQueue.html">00195</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a> { +<a name="l00196"></a>00196 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> front; +<a name="l00197"></a>00197 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> back; +<a name="l00198"></a>00198 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size; +<a name="l00199"></a>00199 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ringSize; +<a name="l00200"></a>00200 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> *ring; +<a name="l00201"></a>00201 +<a name="l00202"></a>00202 <span class="comment">// Default constructor.</span> +<a name="l00203"></a>00203 <a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a>() +<a name="l00204"></a>00204 :front(0), back(0), size(0), ringSize(0) {} +<a name="l00205"></a>00205 }; +<a name="l00206"></a>00206 +<a name="l00207"></a>00207 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> +<a name="l00208"></a>00208 <span class="comment">// the MIDI input handling function or thread.</span> +<a name="l00209"></a><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">00209</a> <span class="keyword">struct </span><a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> { +<a name="l00210"></a>00210 <a class="code" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a> queue; +<a name="l00211"></a>00211 <a class="code" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a> message; +<a name="l00212"></a>00212 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; +<a name="l00213"></a>00213 <span class="keywordtype">bool</span> doInput; +<a name="l00214"></a>00214 <span class="keywordtype">bool</span> firstMessage; +<a name="l00215"></a>00215 <span class="keywordtype">void</span> *apiData; +<a name="l00216"></a>00216 <span class="keywordtype">bool</span> usingCallback; +<a name="l00217"></a>00217 <span class="keywordtype">void</span> *userCallback; +<a name="l00218"></a>00218 <span class="keywordtype">void</span> *userData; +<a name="l00219"></a>00219 <span class="keywordtype">bool</span> continueSysex; <a name="l00220"></a>00220 -<a name="l00221"></a>00221 <span class="keyword">private</span>: -<a name="l00222"></a>00222 -<a name="l00223"></a>00223 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); -<a name="l00224"></a>00224 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> inputData_; -<a name="l00225"></a>00225 -<a name="l00226"></a>00226 }; +<a name="l00221"></a>00221 <span class="comment">// Default constructor.</span> +<a name="l00222"></a>00222 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a>() +<a name="l00223"></a>00223 : ignoreFlags(7), doInput(<span class="keyword">false</span>), firstMessage(<span class="keyword">true</span>), +<a name="l00224"></a>00224 apiData(0), usingCallback(<span class="keyword">false</span>), userCallback(0), userData(0), +<a name="l00225"></a>00225 continueSysex(<span class="keyword">false</span>) {} +<a name="l00226"></a>00226 }; <a name="l00227"></a>00227 -<a name="l00228"></a>00228 <span class="comment">/**********************************************************************/</span> -<a name="l00240"></a>00240 <span class="comment">/**********************************************************************/</span> -<a name="l00241"></a>00241 -<a name="l00242"></a><a class="code" href="classRtMidiOut.html">00242</a> <span class="keyword">class </span><a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> -<a name="l00243"></a>00243 { -<a name="l00244"></a>00244 <span class="keyword">public</span>: -<a name="l00245"></a>00245 -<a name="l00247"></a>00247 -<a name="l00250"></a>00250 <a class="code" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3" title="Default constructor that allows an optional client name.">RtMidiOut</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Output Client"</span> ) ); -<a name="l00251"></a>00251 -<a name="l00253"></a>00253 <a class="code" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792" title="The destructor closes any open MIDI connections.">~RtMidiOut</a>(); +<a name="l00228"></a>00228 <span class="keyword">private</span>: +<a name="l00229"></a>00229 +<a name="l00230"></a>00230 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00231"></a>00231 <a class="code" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a> inputData_; +<a name="l00232"></a>00232 +<a name="l00233"></a>00233 }; +<a name="l00234"></a>00234 +<a name="l00235"></a>00235 <span class="comment">/**********************************************************************/</span> +<a name="l00247"></a>00247 <span class="comment">/**********************************************************************/</span> +<a name="l00248"></a>00248 +<a name="l00249"></a><a class="code" href="classRtMidiOut.html">00249</a> <span class="keyword">class </span><a class="code" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> : <span class="keyword">public</span> <a class="code" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> +<a name="l00250"></a>00250 { +<a name="l00251"></a>00251 <span class="keyword">public</span>: +<a name="l00252"></a>00252 <a name="l00254"></a>00254 -<a name="l00256"></a>00256 -<a name="l00262"></a>00262 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); +<a name="l00257"></a>00257 <a class="code" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3" title="Default constructor that allows an optional client name.">RtMidiOut</a>( <span class="keyword">const</span> std::string clientName = std::string( <span class="stringliteral">"RtMidi Output Client"</span> ) ); +<a name="l00258"></a>00258 +<a name="l00260"></a>00260 <a class="code" href="classRtMidiOut.html#ab776c431bd84193febb2f78fb8c7e792" title="The destructor closes any open MIDI connections.">~RtMidiOut</a>(); +<a name="l00261"></a>00261 <a name="l00263"></a>00263 -<a name="l00265"></a>00265 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041" title="Close an open MIDI connection (if one exists).">closePort</a>(); -<a name="l00266"></a>00266 -<a name="l00268"></a>00268 -<a name="l00276"></a>00276 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); -<a name="l00277"></a>00277 -<a name="l00279"></a>00279 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" title="Return the number of available MIDI output ports.">getPortCount</a>(); -<a name="l00280"></a>00280 -<a name="l00282"></a>00282 -<a name="l00285"></a>00285 std::string <a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); -<a name="l00286"></a>00286 -<a name="l00288"></a>00288 -<a name="l00292"></a>00292 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( std::vector<unsigned char> *message ); +<a name="l00269"></a>00269 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a1b280d67317cd473a8816aeb2fe6c186" title="Open a MIDI output connection.">openPort</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0, <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); +<a name="l00270"></a>00270 +<a name="l00272"></a>00272 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3092e53a8aed2d3b163fcaa05fafd041" title="Close an open MIDI connection (if one exists).">closePort</a>(); +<a name="l00273"></a>00273 +<a name="l00275"></a>00275 +<a name="l00283"></a>00283 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a" title="Create a virtual output port, with optional name, to allow software connections (OS...">openVirtualPort</a>( <span class="keyword">const</span> std::string portName = std::string( <span class="stringliteral">"RtMidi Output"</span> ) ); +<a name="l00284"></a>00284 +<a name="l00286"></a>00286 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#ad6cddbcc7faa20a7be229f765ade0877" title="Return the number of available MIDI output ports.">getPortCount</a>(); +<a name="l00287"></a>00287 +<a name="l00289"></a>00289 +<a name="l00292"></a>00292 std::string <a class="code" href="classRtMidiOut.html#acc4ae0ab71a49ae7629075d5a9cd837c" title="Return a string identifier for the specified MIDI port type and number.">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); <a name="l00293"></a>00293 -<a name="l00294"></a>00294 <span class="keyword">private</span>: <a name="l00295"></a>00295 -<a name="l00296"></a>00296 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); -<a name="l00297"></a>00297 }; -<a name="l00298"></a>00298 -<a name="l00299"></a>00299 <span class="preprocessor">#endif</span> +<a name="l00299"></a>00299 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3" title="Immediately send a single message out an open MIDI output port.">sendMessage</a>( std::vector<unsigned char> *message ); +<a name="l00300"></a>00300 +<a name="l00301"></a>00301 <span class="keyword">private</span>: +<a name="l00302"></a>00302 +<a name="l00303"></a>00303 <span class="keywordtype">void</span> initialize( <span class="keyword">const</span> std::string& clientName ); +<a name="l00304"></a>00304 }; +<a name="l00305"></a>00305 +<a name="l00306"></a>00306 <span class="preprocessor">#endif</span> </pre></div></div> <HR> diff --git a/doc/html/annotated.html b/doc/html/annotated.html index db6bad0..9ce3d99 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -11,6 +11,7 @@ <div class="contents"> <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table> <tr><td class="indexkey"><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a></td><td class="indexvalue"></td></tr> + <tr><td class="indexkey"><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a></td><td class="indexvalue"></td></tr> <tr><td class="indexkey"><a class="el" href="classRtError.html">RtError</a></td><td class="indexvalue">Exception handling class for RtAudio & <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> </td></tr> <tr><td class="indexkey"><a class="el" href="classRtMidi.html">RtMidi</a></td><td class="indexvalue">An abstract base class for realtime MIDI input/output </td></tr> <tr><td class="indexkey"><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td class="indexvalue">A realtime MIDI input class </td></tr> diff --git a/doc/html/classRtMidiIn-members.html b/doc/html/classRtMidiIn-members.html index 2d5a83f..4cb8ef3 100644 --- a/doc/html/classRtMidiIn-members.html +++ b/doc/html/classRtMidiIn-members.html @@ -19,9 +19,8 @@ <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">openPort</a>(unsigned int portNumber=0, const std::string Portname=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">openVirtualPort</a>(const std::string portName=std::string("RtMidi Input"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> typedef</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a>(const std::string clientName=std::string("RtMidi Input Client"))</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> + <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a>(const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">setCallback</a>(RtMidiCallback callback, void *userData=0)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> - <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a>(unsigned int queueSize)</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> <tr class="memlist"><td><a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a>()</td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a></td><td></td></tr> </table></div> <HR> diff --git a/doc/html/classRtMidiIn.html b/doc/html/classRtMidiIn.html index 5ce8db8..241fd88 100644 --- a/doc/html/classRtMidiIn.html +++ b/doc/html/classRtMidiIn.html @@ -29,14 +29,15 @@ Inheritance diagram for RtMidiIn:</div> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1MidiMessage.html">MidiMessage</a></td></tr> +<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiInData</a></td></tr> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a297d2eb3c3420b437970a6fc59d89cbf"></a><!-- doxytag: member="RtMidiIn::RtMidiCallback" ref="a297d2eb3c3420b437970a6fc59d89cbf" args=")(double timeStamp, std::vector< unsigned char > *message, void *userData)" --> typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiCallback</a> )(double timeStamp, std::vector< unsigned char > *message, void *userData)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">User callback function type definition. <br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> -<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> (const std::string clientName=std::string("RtMidi Input Client"))</td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name. <a href="#a31abb996e5fdc4a8f9dc5a50848e2ee5"></a><br/></td></tr> +<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> (const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)</td></tr> +<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor that allows an optional client name and queue size. <a href="#a1d70da3ef18d24c5b3f0cc01888e093d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af865d88c154b6fdadc640da5dc278d40"></a><!-- doxytag: member="RtMidiIn::~RtMidiIn" ref="af865d88c154b6fdadc640da5dc278d40" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#af865d88c154b6fdadc640da5dc278d40">~RtMidiIn</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If a MIDI connection is still open, it will be closed by the destructor. <br/></td></tr> @@ -56,8 +57,6 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the number of available MIDI input ports. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#af2961fff09fa01a3d5bc0f0c5a042aaf">getPortName</a> (unsigned int portNumber=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a string identifier for the specified MIDI input port number. <a href="#af2961fff09fa01a3d5bc0f0c5a042aaf"></a><br/></td></tr> -<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">setQueueSizeLimit</a> (unsigned int queueSize)</td></tr> -<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the maximum number of MIDI messages to be saved in the queue. <a href="#a2e15868916737039e0a34d47bffdf188"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">ignoreTypes</a> (bool midiSysex=true, bool midiTime=true, bool midiSense=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specify whether certain MIDI message types should be queued or ignored during input. <a href="#af9507125aaa42276ccc01df576fc3533"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">getMessage</a> (std::vector< unsigned char > *message)</td></tr> @@ -68,7 +67,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <p>This class provides a common, platform-independent API for realtime MIDI input. It allows access to a single MIDI input port. Incoming MIDI messages are either saved to a queue for retrieval using the <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">getMessage()</a> function or immediately passed to a user-specified callback function. Create multiple instances of this class to connect to more than one MIDI device at the same time. With the OS-X and Linux ALSA MIDI APIs, it is also possible to open a virtual input port to which other MIDI software clients can connect.</p> <p>by Gary P. Scavone, 2003-2008. </p> <hr/><h2>Constructor & Destructor Documentation</h2> -<a class="anchor" id="a31abb996e5fdc4a8f9dc5a50848e2ee5"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="a31abb996e5fdc4a8f9dc5a50848e2ee5" args="(const std::string clientName=std::string("RtMidi Input Client"))" --> +<a class="anchor" id="a1d70da3ef18d24c5b3f0cc01888e093d"></a><!-- doxytag: member="RtMidiIn::RtMidiIn" ref="a1d70da3ef18d24c5b3f0cc01888e093d" args="(const std::string clientName=std::string("RtMidi Input Client"), unsigned int queueSizeLimit=100)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> @@ -76,16 +75,25 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <td class="memname">RtMidiIn::RtMidiIn </td> <td>(</td> <td class="paramtype">const std::string </td> - <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Input Client")</code></td> - <td> ) </td> + <td class="paramname"> <em>clientName</em> = <code>std::string("RtMidi Input Client")</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> <td></td> + <td class="paramtype">unsigned int </td> + <td class="paramname"> <em>queueSizeLimit</em> = <code>100</code></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> -<p>Default constructor that allows an optional client name. </p> -<p>An exception will be thrown if a MIDI system initialization error occurs. </p> +<p>Default constructor that allows an optional client name and queue size. </p> +<p>An exception will be thrown if a MIDI system initialization error occurs. The queue size defines the maximum number of messages that can be held in the MIDI queue (when not using a callback function). If the queue size limit is reached, incoming messages will be ignored. </p> </div> </div> @@ -218,27 +226,6 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr </div> </div> -<a class="anchor" id="a2e15868916737039e0a34d47bffdf188"></a><!-- doxytag: member="RtMidiIn::setQueueSizeLimit" ref="a2e15868916737039e0a34d47bffdf188" args="(unsigned int queueSize)" --> -<div class="memitem"> -<div class="memproto"> - <table class="memname"> - <tr> - <td class="memname">void RtMidiIn::setQueueSizeLimit </td> - <td>(</td> - <td class="paramtype">unsigned int </td> - <td class="paramname"> <em>queueSize</em></td> - <td> ) </td> - <td></td> - </tr> - </table> -</div> -<div class="memdoc"> - -<p>Set the maximum number of MIDI messages to be saved in the queue. </p> -<p>If the queue size limit is reached, incoming messages will be ignored. The default limit is 1024. </p> - -</div> -</div> <a class="anchor" id="af9507125aaa42276ccc01df576fc3533"></a><!-- doxytag: member="RtMidiIn::ignoreTypes" ref="af9507125aaa42276ccc01df576fc3533" args="(bool midiSysex=true, bool midiTime=true, bool midiSense=true)" --> <div class="memitem"> <div class="memproto"> @@ -271,7 +258,7 @@ unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" hr <div class="memdoc"> <p>Specify whether certain MIDI message types should be queued or ignored during input. </p> -<p>By default, MIDI timing and active sensing messages are ignored during message input because of their relative high data rates. MIDI sysex messages are ignored by default as well. Variable values of "true" imply that the respective message type will be ignored. </p> +<p>o By default, MIDI timing and active sensing messages are ignored during message input because of their relative high data rates. MIDI sysex messages are ignored by default as well. Variable values of "true" imply that the respective message type will be ignored. </p> </div> </div> diff --git a/doc/html/classes.html b/doc/html/classes.html index 4406999..0804176 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -12,8 +12,8 @@ <h1>Class Index</h1><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0"> <tr><td><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> M </div></td></tr></table> -</td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> R </div></td></tr></table> -</td><td><a class="el" href="classRtMidi.html">RtMidi</a> </td><td><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a> </td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </td></tr><tr><td><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a> </td><td><a class="el" href="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> +</td><td><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a> </td><td><a class="el" href="classRtError.html">RtError</a> </td><td><a class="el" href="classRtMidiIn.html">RtMidiIn</a> </td><td><a class="el" href="classRtMidiOut.html">RtMidiOut</a> </td></tr><tr><td><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a> </td><td><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> R </div></td></tr></table> +</td><td><a class="el" href="classRtMidi.html">RtMidi</a> </td><td><a class="el" href="structRtMidiIn_1_1RtMidiInData.html">RtMidiIn::RtMidiInData</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_R">R</a></div> </div> <HR> diff --git a/doc/html/functions.html b/doc/html/functions.html index 536ec09..ada21ba 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -140,7 +140,7 @@ Here is a list of all documented class members with links to the class documenta : <a class="el" href="classRtMidiIn.html#a297d2eb3c3420b437970a6fc59d89cbf">RtMidiIn</a> </li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> </li> <li>RtMidiOut() : <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> @@ -155,9 +155,6 @@ Here is a list of all documented class members with links to the class documenta <li>setCallback() : <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">RtMidiIn</a> </li> -<li>setQueueSizeLimit() -: <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">RtMidiIn</a> -</li> <li>SYSTEM_ERROR : <a class="el" href="classRtError.html#ab04667aae01bffc354a9ac6bda6903aca8947d0a2e2a84ecf3646271844e06a6b">RtError</a> </li> diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index 5544856..91e777e 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -17,23 +17,8 @@ <li><a href="functions_eval.html"><span>Enumerator</span></a></li> </ul> </div> - <div class="tabs"> - <ul> - <li><a href="#index_c"><span>c</span></a></li> - <li><a href="#index_g"><span>g</span></a></li> - <li><a href="#index_i"><span>i</span></a></li> - <li><a href="#index_o"><span>o</span></a></li> - <li><a href="#index_p"><span>p</span></a></li> - <li><a href="#index_r"><span>r</span></a></li> - <li><a href="#index_s"><span>s</span></a></li> - <li><a href="#index_w"><span>w</span></a></li> - <li><a href="#index_~"><span>~</span></a></li> - </ul> - </div> <div class="contents"> - - -<h3><a class="anchor" id="index_c">- c -</a></h3><ul> + <ul> <li>cancelCallback() : <a class="el" href="classRtMidiIn.html#ade23832a66c1ed56965c26325602543e">RtMidiIn</a> </li> @@ -42,10 +27,6 @@ , <a class="el" href="classRtMidiIn.html#a55bacf0d228fd8e3be6a79d12fd1dc39">RtMidiIn</a> , <a class="el" href="classRtMidi.html#a36125c4fa16550345b57f4a4927f5b4a">RtMidi</a> </li> -</ul> - - -<h3><a class="anchor" id="index_g">- g -</a></h3><ul> <li>getMessage() : <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb">RtMidiIn</a> , <a class="el" href="classRtError.html#afd067ba6b46edd37f989cad02cd70b50">RtError</a> @@ -63,17 +44,9 @@ <li>getType() : <a class="el" href="classRtError.html#a3e316dc9b9b41fe2f64cabf34beb4fe7">RtError</a> </li> -</ul> - - -<h3><a class="anchor" id="index_i">- i -</a></h3><ul> <li>ignoreTypes() : <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533">RtMidiIn</a> </li> -</ul> - - -<h3><a class="anchor" id="index_o">- o -</a></h3><ul> <li>openPort() : <a class="el" href="classRtMidi.html#ad9e30a89638f93193cb40edebaa536f5">RtMidi</a> , <a class="el" href="classRtMidiIn.html#a7e853661b1056083e07318d67c51f6fd">RtMidiIn</a> @@ -84,50 +57,27 @@ , <a class="el" href="classRtMidiIn.html#a245261b3f12ce727faed18fcfeef18c2">RtMidiIn</a> , <a class="el" href="classRtMidiOut.html#a47068e1c076d91fd89587c0ccdeddc7a">RtMidiOut</a> </li> -</ul> - - -<h3><a class="anchor" id="index_p">- p -</a></h3><ul> <li>printMessage() : <a class="el" href="classRtError.html#a251dcdac396c998c91706dd2dd3b8bfc">RtError</a> </li> -</ul> - - -<h3><a class="anchor" id="index_r">- r -</a></h3><ul> <li>RtError() : <a class="el" href="classRtError.html#aa479a305ccbe56be0fd9137b9b405a37">RtError</a> </li> <li>RtMidiIn() -: <a class="el" href="classRtMidiIn.html#a31abb996e5fdc4a8f9dc5a50848e2ee5">RtMidiIn</a> +: <a class="el" href="classRtMidiIn.html#a1d70da3ef18d24c5b3f0cc01888e093d">RtMidiIn</a> </li> <li>RtMidiOut() : <a class="el" href="classRtMidiOut.html#a8ed1b492900f3410bf91ad53203b9db3">RtMidiOut</a> </li> -</ul> - - -<h3><a class="anchor" id="index_s">- s -</a></h3><ul> <li>sendMessage() : <a class="el" href="classRtMidiOut.html#a0bd8972ef8ac4e8d37ccc4b5d51c2eb3">RtMidiOut</a> </li> <li>setCallback() : <a class="el" href="classRtMidiIn.html#a7590563461c7467608a4b3806406b32d">RtMidiIn</a> </li> -<li>setQueueSizeLimit() -: <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188">RtMidiIn</a> -</li> -</ul> - - -<h3><a class="anchor" id="index_w">- w -</a></h3><ul> <li>what() : <a class="el" href="classRtError.html#aeb843b7a7785d66061c61ebfc29e7e9d">RtError</a> </li> -</ul> - - -<h3><a class="anchor" id="index_0x7e">- ~ -</a></h3><ul> <li>~RtError() : <a class="el" href="classRtError.html#a6793e03386e7e69ffafb65a296dfa48c">RtError</a> </li> diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html index 9678ea1..6aaad3c 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -11,6 +11,7 @@ <div class="contents"> <h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul> <li><a class="el" href="structRtMidiIn_1_1MidiMessage.html">RtMidiIn::MidiMessage</a></li> +<li><a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a></li> <li><a class="el" href="classRtError.html">RtError</a></li> <li><a class="el" href="classRtMidi.html">RtMidi</a><ul> <li><a class="el" href="classRtMidiIn.html">RtMidiIn</a></li> diff --git a/doc/html/index.html b/doc/html/index.html index eb22649..7e433c1 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -9,7 +9,7 @@ <HR> <!-- Generated by Doxygen 1.6.2 --> <div class="contents"> -<h1>The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Tutorial </h1><h3 class="version">1.0.14 </h3><center><a class="el" href="index.html#intro">Introduction</a> <a class="el" href="index.html#download">Download</a> <a class="el" href="index.html#start">Getting Started</a> <a class="el" href="index.html#error">Error Handling</a> <a class="el" href="index.html#probing">Probing Ports</a> <a class="el" href="index.html#output">MIDI Output</a> <a class="el" href="index.html#input">MIDI Input</a> <a class="el" href="index.html#virtual">Virtual Ports</a> <a class="el" href="index.html#compiling">Compiling</a> <a class="el" href="index.html#debug">Debugging</a> <a class="el" href="index.html#apinotes">API Notes</a> <a class="el" href="index.html#acknowledge">Acknowledgements</a> <a class="el" href="index.html#license">License</a></center><h2><a class="anchor" id="intro"> +<h1>The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> Tutorial </h1><h3 class="version">1.0.15 </h3><center><a class="el" href="index.html#intro">Introduction</a> <a class="el" href="index.html#download">Download</a> <a class="el" href="index.html#start">Getting Started</a> <a class="el" href="index.html#error">Error Handling</a> <a class="el" href="index.html#probing">Probing Ports</a> <a class="el" href="index.html#output">MIDI Output</a> <a class="el" href="index.html#input">MIDI Input</a> <a class="el" href="index.html#virtual">Virtual Ports</a> <a class="el" href="index.html#compiling">Compiling</a> <a class="el" href="index.html#debug">Debugging</a> <a class="el" href="index.html#apinotes">API Notes</a> <a class="el" href="index.html#acknowledge">Acknowledgements</a> <a class="el" href="index.html#license">License</a></center><h2><a class="anchor" id="intro"> Introduction</a></h2> <p><a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is a set of C++ classes (<a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>) that provides a common API (Application Programming Interface) for realtime MIDI input/output across Linux (ALSA & Jack), Macintosh OS X, Windows (Multimedia Library), and SGI operating systems. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> significantly simplifies the process of interacting with computer MIDI hardware and software. It was designed with the following goals:</p> <ul> @@ -25,7 +25,7 @@ MIDI device enumeration </li> <p>MIDI input and output functionality are separated into two classes, <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> and <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a>. Each class instance supports only a single MIDI connection. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> does not provide timing functionality (i.e., output messages are sent immediately). Input messages are timestamped with delta times in seconds (via a <code>double</code> floating point type). MIDI data is passed to the user as raw bytes using an std::vector<unsigned char>.</p> <h2><a class="anchor" id="download"> Download</a></h2> -<p>Latest Release (17 April 2011): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.14.tar.gz">Version 1.0.14</a></p> +<p>Latest Release (11 August 2011): <a href="http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-1.0.15.tar.gz">Version 1.0.15</a></p> <h2><a class="anchor" id="start"> Getting Started</a></h2> <p>The first thing that must be done when using <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is to create an instance of the <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> or <a class="el" href="classRtMidiOut.html" title="A realtime MIDI output class.">RtMidiOut</a> subclasses. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> is an abstract base class, which itself cannot be instantiated. Each default constructor attempts to establish any necessary "connections" with the underlying MIDI system. <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> uses C++ exceptions to report errors, necessitating try/catch blocks around many member functions. An <a class="el" href="classRtError.html" title="Exception handling class for RtAudio & RtMidi.">RtError</a> can be thrown during instantiation in some circumstances. A warning message may also be reported if no MIDI devices are found during instantiation. The <a class="el" href="classRtMidi.html" title="An abstract base class for realtime MIDI input/output.">RtMidi</a> classes have been designed to work with "hot pluggable" or virtual (software) MIDI devices, making it possible to connect to MIDI devices that may not have been present when the classes were instantiated. The following code example demonstrates default object construction and destruction:</p> @@ -184,7 +184,7 @@ MIDI Input</a></h2> <p>The <a class="el" href="classRtMidiIn.html" title="A realtime MIDI input class.">RtMidiIn</a> class provides the <a class="el" href="classRtMidiIn.html#af9507125aaa42276ccc01df576fc3533" title="Specify whether certain MIDI message types should be queued or ignored during input...">RtMidiIn::ignoreTypes()</a> function to specify that certain MIDI message types be ignored. By default, sysem exclusive, timing, and active sensing messages are ignored.</p> <h3><a class="anchor" id="qmidiin"> Queued MIDI Input</a></h3> -<p>The <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function does not block. If a MIDI message is available in the queue, it is copied to the user-provided <code>std::vector<unsigned char></code> container. When no MIDI message is available, the function returns an empty container. The default maximum MIDI queue size is 1024 messages. This value may be modified with the <a class="el" href="classRtMidiIn.html#a2e15868916737039e0a34d47bffdf188" title="Set the maximum number of MIDI messages to be saved in the queue.">RtMidiIn::setQueueSizeLimit()</a> function. If the maximum queue size limit is reached, subsequent incoming MIDI messages are discarded until the queue size is reduced.</p> +<p>The <a class="el" href="classRtMidiIn.html#a1ba10ecd276b30a8579c7d60a9c890eb" title="Fill the user-provided vector with the data bytes for the next available MIDI message...">RtMidiIn::getMessage()</a> function does not block. If a MIDI message is available in the queue, it is copied to the user-provided <code>std::vector<unsigned char></code> container. When no MIDI message is available, the function returns an empty container. The default maximum MIDI queue size is 1024 messages. This value may be modified with the RtMidiIn::setQueueSizeLimit() function. If the maximum queue size limit is reached, subsequent incoming MIDI messages are discarded until the queue size is reduced.</p> <p>In the following example, we omit some necessary error checking and details regarding OS-dependent sleep functions. For a more complete example, see the <code>qmidiin.cpp</code> program in the <code>tests</code> directory.</p> <div class="fragment"><pre class="fragment"><span class="comment">// qmidiin.cpp</span> diff --git a/doc/html/structRtMidiIn_1_1MidiQueue-members.html b/doc/html/structRtMidiIn_1_1MidiQueue-members.html new file mode 100644 index 0000000..03b5c92 --- /dev/null +++ b/doc/html/structRtMidiIn_1_1MidiQueue-members.html @@ -0,0 +1,22 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> +<div class="contents"> +<h1>RtMidiIn::MidiQueue Member List</h1>This is the complete list of members for <a class="el" href="structRtMidiIn_1_1MidiQueue.html">RtMidiIn::MidiQueue</a>, including all inherited members.<table> +</table></div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> diff --git a/doc/html/structRtMidiIn_1_1MidiQueue.html b/doc/html/structRtMidiIn_1_1MidiQueue.html new file mode 100644 index 0000000..face6ed --- /dev/null +++ b/doc/html/structRtMidiIn_1_1MidiQueue.html @@ -0,0 +1,30 @@ +<HTML> +<HEAD> +<TITLE>The RtMidi Tutorial</TITLE> +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +</HEAD> +<BODY BGCOLOR="#FFFFFF"> +<CENTER> +<a class="qindex" href="index.html">Tutorial</a> <a class="qindex" href="annotated.html">Class/Enum List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </CENTER> +<HR> +<!-- Generated by Doxygen 1.6.2 --> + <div class="navpath"><a class="el" href="classRtMidiIn.html">RtMidiIn</a>::<a class="el" href="structRtMidiIn_1_1MidiQueue.html">MidiQueue</a> + </div> +<div class="contents"> +<h1>RtMidiIn::MidiQueue Struct Reference</h1><!-- doxytag: class="RtMidiIn::MidiQueue" --> +<p><a href="structRtMidiIn_1_1MidiQueue-members.html">List of all members.</a></p> +<table border="0" cellpadding="0" cellspacing="0"> +</table> +<hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="RtMidi_8h_source.html">RtMidi.h</a></li> +</ul> +</div> +<HR> + +<table><tr><td><img src="../images/mcgill.gif" width=165></td> + <td>©2003-2011 Gary P. Scavone, McGill University. All Rights Reserved.<br> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> |
