<!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>seq_midi_event.c File Reference</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>seq_midi_event.c File Reference</h1>MIDI byte <-> sequencer event coder. <a href="#_details">More...</a> <p> <table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Data Structures</h2></td></tr> <tr><td nowrap align=right valign=top>struct </td><td valign=bottom><b>extra_event_list_t</b></td></tr> <tr><td nowrap align=right valign=top>struct </td><td valign=bottom><b>status_event_list_t</b></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="seq__midi__event_8c.html#a14">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="#a14"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a15">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="#a15"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a16">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="#a16"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a18">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="#a18"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a19">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="#a19"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a20">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="#a20"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a21">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="#a21"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a22">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="#a22"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a23">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="#a23"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="seq__midi__event_8c.html#a24">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="#a24"></a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> MIDI byte <-> sequencer event coder. <p> <p> <dl compact><dt><b>Author: </b></dt><dd> Takashi Iwai <<a href="mailto:tiwai@suse.de">tiwai@suse.de</a>> , Jaroslav Kysela <<a href="mailto:perex@suse.cz">perex@suse.cz</a>> </dl><dl compact><dt><b>Date: </b></dt><dd> 2000-2001</dl><hr><h2>Function Documentation</h2> <a name="a24" doxytag="seq_midi_event.c::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="a22" doxytag="seq_midi_event.c::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="a23" doxytag="seq_midi_event.c::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="a15" doxytag="seq_midi_event.c::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="a20" doxytag="seq_midi_event.c::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="a14" doxytag="seq_midi_event.c::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="a16" doxytag="seq_midi_event.c::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="a19" doxytag="seq_midi_event.c::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="a18" doxytag="seq_midi_event.c::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="a21" doxytag="seq_midi_event.c::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:47 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>