<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>seqmid.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.18 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </center> <hr><h1>seqmid.h</h1><div class="fragment"><pre>00001 00028 <span class="preprocessor">#ifndef __ALSA_SEQMID_H</span> 00029 <span class="preprocessor"></span><span class="preprocessor">#define __ALSA_SEQMID_H</span> 00030 <span class="preprocessor"></span> 00031 <span class="preprocessor">#ifdef __cplusplus</span> 00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { 00033 <span class="preprocessor">#endif</span> 00034 <span class="preprocessor"></span> <a name="l00046"></a><a class="code" href="group___seq_middle.html#a16">00046</a> <span class="preprocessor">#define snd_seq_ev_clear(ev) \</span> 00047 <span class="preprocessor"> memset(ev, 0, sizeof(snd_seq_event_t))</span> 00048 <span class="preprocessor"></span> <a name="l00055"></a><a class="code" href="group___seq_middle.html#a17">00055</a> <span class="preprocessor">#define snd_seq_ev_set_dest(ev,c,p) \</span> 00056 <span class="preprocessor"> ((ev)->dest.client = (c), (ev)->dest.port = (p))</span> 00057 <span class="preprocessor"></span> <a name="l00062"></a><a class="code" href="group___seq_middle.html#a18">00062</a> <span class="preprocessor">#define snd_seq_ev_set_subs(ev) \</span> 00063 <span class="preprocessor"> ((ev)->dest.client = SND_SEQ_ADDRESS_SUBSCRIBERS,\</span> 00064 <span class="preprocessor"> (ev)->dest.port = SND_SEQ_ADDRESS_UNKNOWN)</span> 00065 <span class="preprocessor"></span> <a name="l00070"></a><a class="code" href="group___seq_middle.html#a19">00070</a> <span class="preprocessor">#define snd_seq_ev_set_broadcast(ev) \</span> 00071 <span class="preprocessor"> ((ev)->dest.client = SND_SEQ_ADDRESS_BROADCAST,\</span> 00072 <span class="preprocessor"> (ev)->dest.port = SND_SEQ_ADDRESS_BROADCAST)</span> 00073 <span class="preprocessor"></span> <a name="l00079"></a><a class="code" href="group___seq_middle.html#a20">00079</a> <span class="preprocessor">#define snd_seq_ev_set_source(ev,p) \</span> 00080 <span class="preprocessor"> ((ev)->source.port = (p))</span> 00081 <span class="preprocessor"></span> <a name="l00086"></a><a class="code" href="group___seq_middle.html#a21">00086</a> <span class="preprocessor">#define snd_seq_ev_set_direct(ev) \</span> 00087 <span class="preprocessor"> ((ev)->queue = SND_SEQ_QUEUE_DIRECT)</span> 00088 <span class="preprocessor"></span> <a name="l00096"></a><a class="code" href="group___seq_middle.html#a22">00096</a> <span class="preprocessor">#define snd_seq_ev_schedule_tick(ev, q, relative, ttick) \</span> 00097 <span class="preprocessor"> ((ev)->flags &= ~(SND_SEQ_TIME_STAMP_MASK | SND_SEQ_TIME_MODE_MASK),\</span> 00098 <span class="preprocessor"> (ev)->flags |= SND_SEQ_TIME_STAMP_TICK,\</span> 00099 <span class="preprocessor"> (ev)->flags |= (relative) ? SND_SEQ_TIME_MODE_REL : SND_SEQ_TIME_MODE_ABS,\</span> 00100 <span class="preprocessor"> (ev)->time.tick = (ttick),\</span> 00101 <span class="preprocessor"> (ev)->queue = (q))</span> 00102 <span class="preprocessor"></span> <a name="l00110"></a><a class="code" href="group___seq_middle.html#a23">00110</a> <span class="preprocessor">#define snd_seq_ev_schedule_real(ev, q, relative, rtime) \</span> 00111 <span class="preprocessor"> ((ev)->flags &= ~(SND_SEQ_TIME_STAMP_MASK | SND_SEQ_TIME_MODE_MASK),\</span> 00112 <span class="preprocessor"> (ev)->flags |= SND_SEQ_TIME_STAMP_REAL,\</span> 00113 <span class="preprocessor"> (ev)->flags |= (relative) ? SND_SEQ_TIME_MODE_REL : SND_SEQ_TIME_MODE_ABS,\</span> 00114 <span class="preprocessor"> (ev)->time.time = *(rtime),\</span> 00115 <span class="preprocessor"> (ev)->queue = (q))</span> 00116 <span class="preprocessor"></span> <a name="l00122"></a><a class="code" href="group___seq_middle.html#a24">00122</a> <span class="preprocessor">#define snd_seq_ev_set_priority(ev, high_prior) \</span> 00123 <span class="preprocessor"> ((ev)->flags &= ~SND_SEQ_PRIORITY_MASK,\</span> 00124 <span class="preprocessor"> (ev)->flags |= (high_prior) ? SND_SEQ_PRIORITY_HIGH : SND_SEQ_PRIORITY_NORMAL)</span> 00125 <span class="preprocessor"></span> <a name="l00132"></a><a class="code" href="group___seq_middle.html#a25">00132</a> <span class="preprocessor">#define snd_seq_ev_set_fixed(ev) \</span> 00133 <span class="preprocessor"> ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\</span> 00134 <span class="preprocessor"> (ev)->flags |= SND_SEQ_EVENT_LENGTH_FIXED)</span> 00135 <span class="preprocessor"></span> <a name="l00144"></a><a class="code" href="group___seq_middle.html#a26">00144</a> <span class="preprocessor">#define snd_seq_ev_set_variable(ev, datalen, dataptr) \</span> 00145 <span class="preprocessor"> ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\</span> 00146 <span class="preprocessor"> (ev)->flags |= SND_SEQ_EVENT_LENGTH_VARIABLE,\</span> 00147 <span class="preprocessor"> (ev)->data.ext.len = (datalen),\</span> 00148 <span class="preprocessor"> (ev)->data.ext.ptr = (dataptr))</span> 00149 <span class="preprocessor"></span> <a name="l00158"></a><a class="code" href="group___seq_middle.html#a27">00158</a> <span class="preprocessor">#define snd_seq_ev_set_varusr(ev, datalen, dataptr) \</span> 00159 <span class="preprocessor"> ((ev)->flags &= ~SND_SEQ_EVENT_LENGTH_MASK,\</span> 00160 <span class="preprocessor"> (ev)->flags |= SND_SEQ_EVENT_LENGTH_VARUSR,\</span> 00161 <span class="preprocessor"> (ev)->data.ext.len = (datalen),\</span> 00162 <span class="preprocessor"> (ev)->data.ext.ptr = (dataptr))</span> 00163 <span class="preprocessor"></span> <a name="l00171"></a><a class="code" href="group___seq_middle.html#a28">00171</a> <span class="preprocessor">#define snd_seq_ev_set_queue_control(ev, typ, q, val) \</span> 00172 <span class="preprocessor"> ((ev)->type = (typ),\</span> 00173 <span class="preprocessor"> snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\</span> 00174 <span class="preprocessor"> (ev)->data.queue.queue = (q),\</span> 00175 <span class="preprocessor"> (ev)->data.queue.param.value = (val))</span> 00176 <span class="preprocessor"></span> <a name="l00182"></a><a class="code" href="group___seq_middle.html#a29">00182</a> <span class="preprocessor">#define snd_seq_ev_set_queue_start(ev, q) \</span> 00183 <span class="preprocessor"> snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_START, q, 0)</span> 00184 <span class="preprocessor"></span> <a name="l00190"></a><a class="code" href="group___seq_middle.html#a30">00190</a> <span class="preprocessor">#define snd_seq_ev_set_queue_stop(ev, q) \</span> 00191 <span class="preprocessor"> snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_STOP, q, 0)</span> 00192 <span class="preprocessor"></span> <a name="l00198"></a><a class="code" href="group___seq_middle.html#a31">00198</a> <span class="preprocessor">#define snd_seq_ev_set_queue_continue(ev, q) \</span> 00199 <span class="preprocessor"> snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_CONTINUE, q, 0)</span> 00200 <span class="preprocessor"></span> <a name="l00207"></a><a class="code" href="group___seq_middle.html#a32">00207</a> <span class="preprocessor">#define snd_seq_ev_set_queue_tempo(ev, q, val) \</span> 00208 <span class="preprocessor"> snd_seq_ev_set_queue_control(ev, SND_SEQ_EVENT_TEMPO, q, val)</span> 00209 <span class="preprocessor"></span> <a name="l00216"></a><a class="code" href="group___seq_middle.html#a33">00216</a> <span class="preprocessor">#define snd_seq_ev_set_queue_pos_real(ev, q, rtime) \</span> 00217 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_SETPOS_TIME,\</span> 00218 <span class="preprocessor"> snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\</span> 00219 <span class="preprocessor"> (ev)->data.queue.queue = (q),\</span> 00220 <span class="preprocessor"> (ev)->data.queue.param.time.time = *(rtime))</span> 00221 <span class="preprocessor"></span> <a name="l00228"></a><a class="code" href="group___seq_middle.html#a34">00228</a> <span class="preprocessor">#define snd_seq_ev_set_queue_pos_tick(ev, q, ttime) \</span> 00229 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_SETPOS_TICK,\</span> 00230 <span class="preprocessor"> snd_seq_ev_set_dest(ev, SND_SEQ_CLIENT_SYSTEM, SND_SEQ_PORT_SYSTEM_TIMER),\</span> 00231 <span class="preprocessor"> (ev)->data.queue.queue = (q),\</span> 00232 <span class="preprocessor"> (ev)->data.queue.param.time.tick = (ttime))</span> 00233 <span class="preprocessor"></span> 00234 <span class="comment">/* set and send a queue control event */</span> 00235 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a0">snd_seq_control_queue</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> q, <span class="keywordtype">int</span> type, <span class="keywordtype">int</span> value, <a class="code" href="structsnd__seq__event.html">snd_seq_event_t</a> *ev); 00236 <a name="l00243"></a><a class="code" href="group___seq_middle.html#a35">00243</a> <span class="preprocessor">#define snd_seq_start_queue(seq, q, ev) \</span> 00244 <span class="preprocessor"> snd_seq_control_queue(seq, q, SND_SEQ_EVENT_START, 0, ev)</span> 00245 <span class="preprocessor"></span> <a name="l00252"></a><a class="code" href="group___seq_middle.html#a36">00252</a> <span class="preprocessor">#define snd_seq_stop_queue(seq, q, ev) \</span> 00253 <span class="preprocessor"> snd_seq_control_queue(seq, q, SND_SEQ_EVENT_STOP, 0, ev)</span> 00254 <span class="preprocessor"></span> <a name="l00261"></a><a class="code" href="group___seq_middle.html#a37">00261</a> <span class="preprocessor">#define snd_seq_continue_queue(seq, q, ev) \</span> 00262 <span class="preprocessor"> snd_seq_control_queue(seq, q, SND_SEQ_EVENT_CONTINUE, 0, ev)</span> 00263 <span class="preprocessor"></span> <a name="l00271"></a><a class="code" href="group___seq_middle.html#a38">00271</a> <span class="preprocessor">#define snd_seq_change_queue_tempo(seq, q, tempo, ev) \</span> 00272 <span class="preprocessor"> snd_seq_control_queue(seq, q, SND_SEQ_EVENT_TEMPO, tempo, ev)</span> 00273 <span class="preprocessor"></span> 00274 <span class="comment">/* create a port - simple version - return the port number */</span> 00275 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a1">snd_seq_create_simple_port</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, 00276 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> caps, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> type); 00277 <span class="comment">/* delete the port */</span> 00278 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a2">snd_seq_delete_simple_port</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> port); 00279 00280 <span class="comment">/* simple subscription between this port and another port</span> 00281 <span class="comment"> (w/o exclusive & time conversion)</span> 00282 <span class="comment"> */</span> 00283 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a3">snd_seq_connect_from</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> my_port, <span class="keywordtype">int</span> src_client, <span class="keywordtype">int</span> src_port); 00284 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a4">snd_seq_connect_to</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> my_port, <span class="keywordtype">int</span> dest_client, <span class="keywordtype">int</span> dest_port); 00285 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a5">snd_seq_disconnect_from</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> my_port, <span class="keywordtype">int</span> src_client, <span class="keywordtype">int</span> src_port); 00286 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a6">snd_seq_disconnect_to</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> my_port, <span class="keywordtype">int</span> dest_client, <span class="keywordtype">int</span> dest_port); 00287 00288 <span class="comment">/*</span> 00289 <span class="comment"> * set client information</span> 00290 <span class="comment"> */</span> 00291 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a7">snd_seq_set_client_name</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keyword">const</span> <span class="keywordtype">char</span> *name); 00292 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a8">snd_seq_set_client_event_filter</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <span class="keywordtype">int</span> event_type); 00293 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a9">snd_seq_set_client_pool_output</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, size_t size); 00294 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a10">snd_seq_set_client_pool_output_room</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, size_t size); 00295 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a11">snd_seq_set_client_pool_input</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, size_t size); 00296 <span class="comment">/* sync output queue */</span> 00297 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a12">snd_seq_sync_output_queue</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq); 00298 00299 <span class="comment">/*</span> 00300 <span class="comment"> * parse the given string and get the sequencer address</span> 00301 <span class="comment"> */</span> 00302 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a13">snd_seq_parse_address</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq, <a class="code" href="structsnd__seq__addr.html">snd_seq_addr_t</a> *addr, <span class="keyword">const</span> <span class="keywordtype">char</span> *str); 00303 00304 <span class="comment">/*</span> 00305 <span class="comment"> * reset client input/output pool</span> 00306 <span class="comment"> */</span> 00307 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a14">snd_seq_reset_pool_output</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq); 00308 <span class="keywordtype">int</span> <a class="code" href="group___seq_middle.html#a15">snd_seq_reset_pool_input</a>(<a class="code" href="group___sequencer.html#a0">snd_seq_t</a> *seq); 00309 <a name="l00318"></a><a class="code" href="group___seq_middle.html#a39">00318</a> <span class="preprocessor">#define snd_seq_ev_set_note(ev, ch, key, vel, dur) \</span> 00319 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_NOTE,\</span> 00320 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00321 <span class="preprocessor"> (ev)->data.note.channel = (ch),\</span> 00322 <span class="preprocessor"> (ev)->data.note.note = (key),\</span> 00323 <span class="preprocessor"> (ev)->data.note.velocity = (vel),\</span> 00324 <span class="preprocessor"> (ev)->data.note.duration = (dur))</span> 00325 <span class="preprocessor"></span> <a name="l00333"></a><a class="code" href="group___seq_middle.html#a40">00333</a> <span class="preprocessor">#define snd_seq_ev_set_noteon(ev, ch, key, vel) \</span> 00334 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_NOTEON,\</span> 00335 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00336 <span class="preprocessor"> (ev)->data.note.channel = (ch),\</span> 00337 <span class="preprocessor"> (ev)->data.note.note = (key),\</span> 00338 <span class="preprocessor"> (ev)->data.note.velocity = (vel))</span> 00339 <span class="preprocessor"></span> <a name="l00347"></a><a class="code" href="group___seq_middle.html#a41">00347</a> <span class="preprocessor">#define snd_seq_ev_set_noteoff(ev, ch, key, vel) \</span> 00348 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_NOTEOFF,\</span> 00349 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00350 <span class="preprocessor"> (ev)->data.note.channel = (ch),\</span> 00351 <span class="preprocessor"> (ev)->data.note.note = (key),\</span> 00352 <span class="preprocessor"> (ev)->data.note.velocity = (vel))</span> 00353 <span class="preprocessor"></span> <a name="l00361"></a><a class="code" href="group___seq_middle.html#a42">00361</a> <span class="preprocessor">#define snd_seq_ev_set_keypress(ev,ch,key,vel) \</span> 00362 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_KEYPRESS,\</span> 00363 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00364 <span class="preprocessor"> (ev)->data.note.channel = (ch),\</span> 00365 <span class="preprocessor"> (ev)->data.note.note = (key),\</span> 00366 <span class="preprocessor"> (ev)->data.note.velocity = (vel))</span> 00367 <span class="preprocessor"></span> <a name="l00375"></a><a class="code" href="group___seq_middle.html#a43">00375</a> <span class="preprocessor">#define snd_seq_ev_set_controller(ev,ch,cc,val) \</span> 00376 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_CONTROLLER,\</span> 00377 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00378 <span class="preprocessor"> (ev)->data.control.channel = (ch),\</span> 00379 <span class="preprocessor"> (ev)->data.control.param = (cc),\</span> 00380 <span class="preprocessor"> (ev)->data.control.value = (val))</span> 00381 <span class="preprocessor"></span> <a name="l00388"></a><a class="code" href="group___seq_middle.html#a44">00388</a> <span class="preprocessor">#define snd_seq_ev_set_pgmchange(ev,ch,val) \</span> 00389 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_PGMCHANGE,\</span> 00390 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00391 <span class="preprocessor"> (ev)->data.control.channel = (ch),\</span> 00392 <span class="preprocessor"> (ev)->data.control.value = (val))</span> 00393 <span class="preprocessor"></span> <a name="l00400"></a><a class="code" href="group___seq_middle.html#a45">00400</a> <span class="preprocessor">#define snd_seq_ev_set_pitchbend(ev,ch,val) \</span> 00401 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_PITCHBEND,\</span> 00402 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00403 <span class="preprocessor"> (ev)->data.control.channel = (ch),\</span> 00404 <span class="preprocessor"> (ev)->data.control.value = (val))</span> 00405 <span class="preprocessor"></span> <a name="l00412"></a><a class="code" href="group___seq_middle.html#a46">00412</a> <span class="preprocessor">#define snd_seq_ev_set_chanpress(ev,ch,val) \</span> 00413 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_CHANPRESS,\</span> 00414 <span class="preprocessor"> snd_seq_ev_set_fixed(ev),\</span> 00415 <span class="preprocessor"> (ev)->data.control.channel = (ch),\</span> 00416 <span class="preprocessor"> (ev)->data.control.value = (val))</span> 00417 <span class="preprocessor"></span> <a name="l00426"></a><a class="code" href="group___seq_middle.html#a47">00426</a> <span class="preprocessor">#define snd_seq_ev_set_sysex(ev,datalen,dataptr) \</span> 00427 <span class="preprocessor"> ((ev)->type = SND_SEQ_EVENT_SYSEX,\</span> 00428 <span class="preprocessor"> snd_seq_ev_set_variable(ev, datalen, dataptr))</span> 00429 <span class="preprocessor"></span> 00432 <span class="preprocessor">#ifdef __cplusplus</span> 00433 <span class="preprocessor"></span>} 00434 <span class="preprocessor">#endif</span> 00435 <span class="preprocessor"></span> 00436 <span class="preprocessor">#endif </span><span class="comment">/* __ALSA_SEQMID_H */</span> 00437 </pre></div><hr><address style="align: right;"><small>Generated on Wed Apr 2 16:06:33 2003 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address> </body> </html>