Release 4.2.0 tarball

This commit is contained in:
Gary Scavone
2013-09-29 23:39:37 +02:00
committed by Stephen Sinclair
parent fe20fe92a2
commit de344668dd
347 changed files with 16972 additions and 8538 deletions

View File

@@ -9,51 +9,157 @@
<a class="qindex" href="index.html">Home</a> &nbsp; <a class="qindex" href="information.html">Information</a> &nbsp; <a class="qindex" href="classes.html">Classes</a> &nbsp; <a class="qindex" href="download.html">Download</a> &nbsp; <a class="qindex" href="usage.html">Usage</a> &nbsp; <a class="qindex" href="maillist.html">Mail List</a> &nbsp; <a class="qindex" href="system.html">Requirements</a> &nbsp; <a class="qindex" href="links.html">Links</a> &nbsp; <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
<HR>
<!-- Generated by Doxygen 1.3.4 -->
<h1>RtMidi.h</h1><div class="fragment"><pre>00001 <span class="comment">/***************************************************/</span>
00030 <span class="comment">/***************************************************/</span>
00031
00032 <span class="preprocessor">#if !defined(__RTMIDI_H)</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#define __RTMIDI_H</span>
00034 <span class="preprocessor"></span>
00035 <span class="preprocessor">#include "Stk.h"</span>
00036
<a name="l00037"></a><a class="code" href="classRtMidi.html">00037</a> <span class="keyword">class </span><a class="code" href="classRtMidi.html">RtMidi</a> : <span class="keyword">public</span> <a class="code" href="classStk.html">Stk</a>
00038 {
00039 <span class="keyword">public</span>:
00041 <a class="code" href="classRtMidi.html#a0">RtMidi</a>(<span class="keywordtype">int</span> device = 0);
00042
00044 <a class="code" href="classRtMidi.html#a1">~RtMidi</a>();
<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.2, 21 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 &lt;string&gt;</span>
00045
00047 <span class="keywordtype">void</span> <a class="code" href="classRtMidi.html#a2">printMessage</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
00048
00050
00053 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a3">nextMessage</a>(<span class="keywordtype">void</span>);
00054
00056 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a4">getType</a>() <span class="keyword">const</span>;
00057
00059 <span class="keywordtype">int</span> <a class="code" href="classRtMidi.html#a5">getChannel</a>() <span class="keyword">const</span>;
<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( <a class="code" href="classRtError.html#w11">RtError::Type</a> 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
00062 MY_FLOAT <a class="code" href="classRtMidi.html#a6">getByteTwo</a>() <span class="keyword">const</span>;
00063
00065 MY_FLOAT <a class="code" href="classRtMidi.html#a7">getByteThree</a>() <span class="keyword">const</span>;
00066
00068 MY_FLOAT <a class="code" href="classRtMidi.html#a8">getDeltaTime</a>() <span class="keyword">const</span>;
00069
00070 <span class="keyword">protected</span>:
00071 <span class="keywordtype">int</span> messageType;
00072 <span class="keywordtype">int</span> channel;
00073 <span class="keywordtype">float</span> byteTwo;
00074 <span class="keywordtype">float</span> byteThree;
00075 MY_FLOAT deltaTime;
00076 <span class="keywordtype">int</span> readIndex;
00077
00078 };
00079
00080 <span class="preprocessor">#endif</span>
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 &lt;vector&gt;</span>
00085 <span class="preprocessor">#include &lt;queue&gt;</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#w0">00092</a> <span class="keyword">typedef</span> void (*<a class="code" href="classRtMidiIn.html#w0">RtMidiCallback</a>)( <span class="keywordtype">double</span> timeStamp, std::vector&lt;unsigned char&gt; *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>( <a class="code" href="classRtMidiIn.html#w0">RtMidiCallback</a> 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&lt;unsigned char&gt; *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&lt;unsigned char&gt; 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&lt;MidiMessage&gt; 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&lt;unsigned char&gt; *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><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td><A HREF="http://ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
<tr><td>&copy;1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
</table>