diff options
Diffstat (limited to 'doc/html/RtMidi_8h-source.html')
| -rw-r--r-- | doc/html/RtMidi_8h-source.html | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/doc/html/RtMidi_8h-source.html b/doc/html/RtMidi_8h-source.html new file mode 100644 index 0000000..9bda7a2 --- /dev/null +++ b/doc/html/RtMidi_8h-source.html @@ -0,0 +1,166 @@ +<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.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.0, 17 September 2004</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 +<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">protected</span>: +00049 +00050 <a class="code" href="classRtMidi.html">RtMidi</a>(); +00051 +00052 <span class="keyword">virtual</span> ~<a class="code" href="classRtMidi.html">RtMidi</a>() {}; +00053 +00054 <span class="comment">// A basic error reporting function for internal use in the RtMidi</span> +00055 <span class="comment">// subclasses. The behavior of this function can be modified to</span> +00056 <span class="comment">// suit specific needs.</span> +00057 <span class="keywordtype">void</span> error( RtError::Type type ); +00058 +00059 <span class="keyword">virtual</span> <span class="keywordtype">void</span> openPort( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ) = 0; +00060 +00061 <span class="keywordtype">void</span> *apiData_; +00062 <span class="keywordtype">bool</span> connected_; +00063 std::string errorString_; +00064 }; +00065 +00066 <span class="comment">/**********************************************************************/</span> +00082 <span class="comment">/**********************************************************************/</span> +00083 +00084 <span class="preprocessor">#include <vector></span> +00085 <span class="preprocessor">#include <queue></span> +00086 +<a name="l00087"></a><a class="code" href="classRtMidiIn.html">00087</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> +00088 { +00089 <span class="keyword">public</span>: +00090 +<a name="l00092"></a><a class="code" href="classRtMidiIn.html#s0">00092</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); +00093 +00095 +00098 <a class="code" href="classRtMidiIn.html#a0">RtMidiIn</a>(); +00099 +00101 <a class="code" href="classRtMidiIn.html#a1">~RtMidiIn</a>(); +00102 +00104 +00108 <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 ); +00109 +00111 +00117 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a3">openVirtualPort</a>(); +00118 +00120 +00126 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a4">setCallback</a>( RtMidiCallback callback, <span class="keywordtype">void</span> *userData = 0 ); +00127 +00129 +00133 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a5">cancelCallback</a>(); +00134 +00136 <span class="keywordtype">void</span> <a class="code" href="classRtMidiIn.html#a6">closePort</a>( <span class="keywordtype">void</span> ); +00137 +00139 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiIn.html#a7">getPortCount</a>(); +00140 +00142 +00145 std::string <a class="code" href="classRtMidiIn.html#a8">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber = 0 ); +00146 +00148 +00152 <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 ); +00153 +00155 +00162 <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> ); +00163 +00165 +00172 <span class="keywordtype">double</span> <a class="code" href="classRtMidiIn.html#a11">getMessage</a>( std::vector<unsigned char> *message ); +00173 +00174 <span class="comment">// A MIDI structure used internally by the class to store incoming</span> +00175 <span class="comment">// messages. Each message represents one and only one MIDI message.</span> +00176 <span class="keyword">struct </span>MidiMessage { +00177 std::vector<unsigned char> bytes; +00178 <span class="keywordtype">double</span> timeStamp; +00179 +00180 <span class="comment">// Default constructor.</span> +00181 MidiMessage() +00182 :bytes(3), timeStamp(0.0) {} +00183 }; +00184 +00185 <span class="comment">// The RtMidiInData structure is used to pass private class data to</span> +00186 <span class="comment">// the MIDI input handling function or thread.</span> +00187 <span class="keyword">struct </span>RtMidiInData { +00188 std::queue<MidiMessage> queue; +00189 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> queueLimit; +00190 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ignoreFlags; +00191 <span class="keywordtype">bool</span> doInput; +00192 <span class="keywordtype">bool</span> firstMessage; +00193 <span class="keywordtype">void</span> *apiData; +00194 <span class="keywordtype">bool</span> usingCallback; +00195 <span class="keywordtype">void</span> *userCallback; +00196 <span class="keywordtype">void</span> *userData; +00197 +00198 <span class="comment">// Default constructor.</span> +00199 RtMidiInData() +00200 : queueLimit(1024), ignoreFlags(7), doInput(false), firstMessage(true), +00201 apiData(0), usingCallback(false), userCallback(0), userData(0) {} +00202 }; +00203 +00204 <span class="keyword">private</span>: +00205 +00206 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); +00207 RtMidiInData inputData_; +00208 +00209 }; +00210 +00211 <span class="comment">/**********************************************************************/</span> +00223 <span class="comment">/**********************************************************************/</span> +00224 +<a name="l00225"></a><a class="code" href="classRtMidiOut.html">00225</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> +00226 { +00227 <span class="keyword">public</span>: +00228 +00230 +00233 <a class="code" href="classRtMidiOut.html#a0">RtMidiOut</a>(); +00234 +00236 <a class="code" href="classRtMidiOut.html#a1">~RtMidiOut</a>(); +00237 +00239 +00245 <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 ); +00246 +00248 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a3">closePort</a>(); +00249 +00251 +00259 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a4">openVirtualPort</a>(); +00260 +00262 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classRtMidiOut.html#a5">getPortCount</a>(); +00263 +00265 +00268 std::string <a class="code" href="classRtMidiOut.html#a6">getPortName</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> portNumber ); +00269 +00271 +00275 <span class="keywordtype">void</span> <a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( std::vector<unsigned char> *message ); +00276 +00277 <span class="keyword">private</span>: +00278 +00279 <span class="keywordtype">void</span> initialize( <span class="keywordtype">void</span> ); +00280 }; +00281 +00282 <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> + Maintained by Gary P. Scavone, gary at music.mcgill.ca</td></tr> +</table> + +</BODY> +</HTML> |
