<!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>Sequencer event <-> MIDI byte stream coder</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>Sequencer event <-> MIDI byte stream coder<br> <small> [<a class="el" href="group___sequencer.html">MIDI Sequencer</a>]</small> </h1><table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td nowrap align=right valign=top>typedef snd_midi_event </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a></td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a1">snd_midi_event_new</a> (size_t bufsize, <a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> **rdev)</td></tr> <tr><td> </td><td><font size=-1><em>Initialize MIDI event parser.</em> <a href="#a1"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a2">snd_midi_event_resize_buffer</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev, size_t bufsize)</td></tr> <tr><td> </td><td><font size=-1><em>Resize MIDI message (event) buffer.</em> <a href="#a2"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a3">snd_midi_event_free</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev)</td></tr> <tr><td> </td><td><font size=-1><em>Free MIDI event parser.</em> <a href="#a3"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a4">snd_midi_event_init</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev)</td></tr> <tr><td> </td><td><font size=-1><em>Initializes MIDI parsers.</em> <a href="#a4"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a5">snd_midi_event_reset_encode</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev)</td></tr> <tr><td> </td><td><font size=-1><em>Reset MIDI encode parser.</em> <a href="#a5"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a6">snd_midi_event_reset_decode</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev)</td></tr> <tr><td> </td><td><font size=-1><em>Reset MIDI decode parser.</em> <a href="#a6"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a7">snd_midi_event_no_status</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev, int on)</td></tr> <tr><td> </td><td><font size=-1><em>Enable/disable MIDI command merging.</em> <a href="#a7"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a8">snd_midi_event_encode</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev, unsigned char *buf, long count, <a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> *ev)</td></tr> <tr><td> </td><td><font size=-1><em>Read bytes and encode to sequencer event if finished.</em> <a href="#a8"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a9">snd_midi_event_encode_byte</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev, int c, <a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> *ev)</td></tr> <tr><td> </td><td><font size=-1><em>Read one byte and encode to sequencer event if finished.</em> <a href="#a9"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="group___m_i_d_i___event.html#a10">snd_midi_event_decode</a> (<a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> *dev, unsigned char *buf, long count, <a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> *ev)</td></tr> <tr><td> </td><td><font size=-1><em>Decode sequencer event to MIDI byte stream.</em> <a href="#a10"></a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Sequencer event <-> MIDI byte stream coder <hr><h2>Typedef Documentation</h2> <a name="a0" doxytag="seq_midi_event.h::snd_midi_event_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct snd_midi_event snd_midi_event_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> container for sequencer midi event parsers </td> </tr> </table> <hr><h2>Function Documentation</h2> <a name="a10" doxytag="seq_midi_event.h::snd_midi_event_decode"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> long snd_midi_event_decode </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname" nowrap> <em>dev</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned char * </td> <td class="mdname" nowrap> <em>buf</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long </td> <td class="mdname" nowrap> <em>count</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> * </td> <td class="mdname" nowrap> <em>ev</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Decode sequencer event to MIDI byte stream. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> <tr><td valign=top><em>buf</em> </td><td> Result - MIDI byte stream </td></tr> <tr><td valign=top><em>count</em> </td><td> Available bytes in MIDI byte stream </td></tr> <tr><td valign=top><em>ev</em> </td><td> Event to decode </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> count of decoded bytes otherwise a negative error code</dl>Decode sequencer event to MIDI byte stream. </td> </tr> </table> <a name="a8" doxytag="seq_midi_event.h::snd_midi_event_encode"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> long snd_midi_event_encode </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname" nowrap> <em>dev</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned char * </td> <td class="mdname" nowrap> <em>buf</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>long </td> <td class="mdname" nowrap> <em>count</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> * </td> <td class="mdname" nowrap> <em>ev</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Read bytes and encode to sequencer event if finished. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> <tr><td valign=top><em>buf</em> </td><td> MIDI byte stream </td></tr> <tr><td valign=top><em>count</em> </td><td> count of bytes of MIDI byte stream to encode </td></tr> <tr><td valign=top><em>ev</em> </td><td> Result - sequencer event </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> count of encoded bytes otherwise a negative error code</dl>Read bytes and encode to sequencer event if finished. If complete sequencer event is available, ev->type is not equal to <a class="el" href="group___seq_events.html#a39a125">SND_SEQ_EVENT_NONE</a>. </td> </tr> </table> <a name="a9" doxytag="seq_midi_event.h::snd_midi_event_encode_byte"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_midi_event_encode_byte </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname" nowrap> <em>dev</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>c</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___seq_events.html#a25">snd_seq_event_t</a> * </td> <td class="mdname" nowrap> <em>ev</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Read one byte and encode to sequencer event if finished. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> <tr><td valign=top><em>c</em> </td><td> a byte of MIDI stream </td></tr> <tr><td valign=top><em>ev</em> </td><td> Result - sequencer event </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 1 - sequencer event is completed, 0 - next byte is required for completion, otherwise a negative error code</dl>Read byte and encode to sequencer event if finished. </td> </tr> </table> <a name="a3" doxytag="seq_midi_event.h::snd_midi_event_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_midi_event_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>dev</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Free MIDI event parser. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>rdev</em> </td><td> MIDI event parser </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Frees MIDI event parser. </td> </tr> </table> <a name="a4" doxytag="seq_midi_event.h::snd_midi_event_init"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_midi_event_init </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>dev</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Initializes MIDI parsers. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Initializes MIDI parsers (both encode and decode) </td> </tr> </table> <a name="a1" doxytag="seq_midi_event.h::snd_midi_event_new"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_midi_event_new </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">size_t </td> <td class="mdname" nowrap> <em>bufsize</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> ** </td> <td class="mdname" nowrap> <em>rdev</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Initialize MIDI event parser. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>bufsize</em> </td><td> buffer size for MIDI message </td></tr> <tr><td valign=top><em>rdev</em> </td><td> allocated MIDI event parser </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Allocates and initializes MIDI event parser. </td> </tr> </table> <a name="a7" doxytag="seq_midi_event.h::snd_midi_event_no_status"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_midi_event_no_status </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname" nowrap> <em>dev</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>on</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Enable/disable MIDI command merging. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> <tr><td valign=top><em>on</em> </td><td> 0 - enable MIDI command merging, 1 - always pass the command</td></tr> </table> </dl>Enable/disable MIDI command merging </td> </tr> </table> <a name="a6" doxytag="seq_midi_event.h::snd_midi_event_reset_decode"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_midi_event_reset_decode </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>dev</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Reset MIDI decode parser. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Resets MIDI decode parser </td> </tr> </table> <a name="a5" doxytag="seq_midi_event.h::snd_midi_event_reset_encode"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_midi_event_reset_encode </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>dev</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Reset MIDI encode parser. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Resets MIDI encode parser </td> </tr> </table> <a name="a2" doxytag="seq_midi_event.h::snd_midi_event_resize_buffer"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_midi_event_resize_buffer </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___m_i_d_i___event.html#a0">snd_midi_event_t</a> * </td> <td class="mdname" nowrap> <em>dev</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>bufsize</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Resize MIDI message (event) buffer. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dev</em> </td><td> MIDI event parser </td></tr> <tr><td valign=top><em>bufsize</em> </td><td> new requested buffer size </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code</dl>Resizes MIDI message (event) buffer. </td> </tr> </table> <hr><address style="align: right;"><small>Generated on Thu Feb 20 16:45:52 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>