Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > by-pkgid > 34546d63baef3ab2a7675f37737b66ab > files > 109

libalsa2-docs-1.0.23-2.1mdv2010.1.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ALSA project - the C library reference: MIDI Sequencer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>MIDI Sequencer</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_client.html">Sequencer Client Interface</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_port.html">Sequencer Port Interface</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_subscribe.html">Sequencer Port Subscription</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_queue.html">Sequencer Queue Interface</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_event.html">Sequencer Event API</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_misc.html">Sequencer Miscellaneous</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_ev_type.html">Sequencer Event Type Checks</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_events.html">Sequencer Event Definitions</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___seq_middle.html">Sequencer Middle Level Interface</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_i_d_i___event.html">Sequencer event &lt;-&gt; MIDI byte stream coder</a></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gad6233417c4c820a4c0aef4c379cf65a7">SND_SEQ_DLSYM_VERSION</a>&nbsp;&nbsp;&nbsp;_dlsym_seq_001</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga1edd6d976f3dae5d921568f2107bd121">SND_SEQ_OPEN_OUTPUT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaaf1cded61cf90f4d37caf910192ef513">SND_SEQ_OPEN_INPUT</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga61c3481e1d357bb38cc399f6b9884ac7">SND_SEQ_OPEN_DUPLEX</a>&nbsp;&nbsp;&nbsp;(SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gafb3bf2f7109d85d9226c64578e73d614">SND_SEQ_NONBLOCK</a>&nbsp;&nbsp;&nbsp;0x0001</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga79353f7f2482e98b5181f03df7c807ac">SND_SEQ_ADDRESS_UNKNOWN</a>&nbsp;&nbsp;&nbsp;253</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga383b235d2afbe48704952edfd3a33eed">SND_SEQ_ADDRESS_SUBSCRIBERS</a>&nbsp;&nbsp;&nbsp;254</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gafc9dd136f59487d09d2124cef09b8c3e">SND_SEQ_ADDRESS_BROADCAST</a>&nbsp;&nbsp;&nbsp;255</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga5437f98c59679c92ee4d940ac643169e">SND_SEQ_CLIENT_SYSTEM</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaf6343bc1e96ab067152b35b8ff6904ea">snd_seq_system_info_alloca</a>(ptr)&nbsp;&nbsp;&nbsp;__snd_alloca(ptr, snd_seq_system_info)</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_seq&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct _snd_seq_system_info&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga95ee23dbfb14769db6a470875ed94807">snd_seq_type_t</a> { <a class="el" href="group___sequencer.html#gga95ee23dbfb14769db6a470875ed94807a9f702d2b9053cbb77f5bebc74b727415">SND_SEQ_TYPE_HW</a>, 
<a class="el" href="group___sequencer.html#gga95ee23dbfb14769db6a470875ed94807a6df472343a3602be359406452222f1a3">SND_SEQ_TYPE_SHM</a>, 
<a class="el" href="group___sequencer.html#gga95ee23dbfb14769db6a470875ed94807a1b09154678b8e506abac5c84d88aa195">SND_SEQ_TYPE_INET</a>
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3">snd_seq_open</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> **handle, const char *name, int streams, int mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open the ALSA sequencer.  <a href="#ga95462dc59c0319e186cda713ecfb4ed3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga03b68a24d0d2de303ee9ec04ed68c8b7">snd_seq_open_lconf</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> **handle, const char *name, int streams, int mode, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *lconf)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open the ALSA sequencer using local configuration.  <a href="#ga03b68a24d0d2de303ee9ec04ed68c8b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga8736d847fb7b3b6627f29f0eba907e30">snd_seq_name</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *seq)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get identifier of sequencer handle  <a href="#ga8736d847fb7b3b6627f29f0eba907e30"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sequencer.html#ga95ee23dbfb14769db6a470875ed94807">snd_seq_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga1ff33a2d698836d879ac05f5176c58b3">snd_seq_type</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *seq)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get type of sequencer handle  <a href="#ga1ff33a2d698836d879ac05f5176c58b3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gab209cdcf6e1e1907f8c49d3148a4e0f6">snd_seq_close</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the sequencer.  <a href="#gab209cdcf6e1e1907f8c49d3148a4e0f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaf281c1dddfc626124b9e61d2cad94f2d">snd_seq_poll_descriptors_count</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, short events)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of poll descriptors.  <a href="#gaf281c1dddfc626124b9e61d2cad94f2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga99851fa9ff4ec5be7414cd9defbcda89">snd_seq_poll_descriptors</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, struct pollfd *pfds, unsigned int space, short events)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get poll descriptors.  <a href="#ga99851fa9ff4ec5be7414cd9defbcda89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaae23b17b3c34639b7a2a8ed74880d364">snd_seq_poll_descriptors_revents</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *seq, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get returned events from poll descriptors  <a href="#gaae23b17b3c34639b7a2a8ed74880d364"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaa41faa2ad471677d1060f9e9a226ac52">snd_seq_nonblock</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, int nonblock)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set nonblock mode.  <a href="#gaa41faa2ad471677d1060f9e9a226ac52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga2cdaded101f041b9a0930b665ac44b93">snd_seq_client_id</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the client id.  <a href="#ga2cdaded101f041b9a0930b665ac44b93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga02442682a361bc6f9faeff468cdebbad">snd_seq_get_output_buffer_size</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of output buffer.  <a href="#ga02442682a361bc6f9faeff468cdebbad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gacd207de4c08ffff3020b078de8e64cc5">snd_seq_get_input_buffer_size</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of input buffer.  <a href="#gacd207de4c08ffff3020b078de8e64cc5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gae9a0931460444f130c5c1df9de57707a">snd_seq_set_output_buffer_size</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the size of output buffer.  <a href="#gae9a0931460444f130c5c1df9de57707a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga62cd9f5ea1d75db676d43da44596750e">snd_seq_set_input_buffer_size</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resize the input buffer.  <a href="#ga62cd9f5ea1d75db676d43da44596750e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga1a036e739dd2daaa9952875528c2f763">snd_seq_system_info_sizeof</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get size of <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a>.  <a href="#ga1a036e739dd2daaa9952875528c2f763"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gad49e5da1a851505e43dcfbf5fd00b0d9">snd_seq_system_info_malloc</a> (<a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> **ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate an empty <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> using standard malloc.  <a href="#gad49e5da1a851505e43dcfbf5fd00b0d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaf3876a29ae1e648d9fd8e6d067a56b6b">snd_seq_system_info_free</a> (<a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees a previously allocated <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a>.  <a href="#gaf3876a29ae1e648d9fd8e6d067a56b6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga8cbf6ad4d47837d0a5a1100ef0808ab7">snd_seq_system_info_copy</a> (<a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *dst, const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy one <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> to another.  <a href="#ga8cbf6ad4d47837d0a5a1100ef0808ab7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga63c9cfcc634c722350b55a6820461e9e">snd_seq_system_info_get_queues</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get maximum number of queues.  <a href="#ga63c9cfcc634c722350b55a6820461e9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga7fbb56a82dfef9224b411a659ba7d8f0">snd_seq_system_info_get_clients</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get maximum number of clients.  <a href="#ga7fbb56a82dfef9224b411a659ba7d8f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gae446559ff05dc0ed1967eab253921aa0">snd_seq_system_info_get_ports</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get maximum number of ports.  <a href="#gae446559ff05dc0ed1967eab253921aa0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga58fa1ff3d4ffafac092e5cffb7092ad1">snd_seq_system_info_get_channels</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get maximum number of channels.  <a href="#ga58fa1ff3d4ffafac092e5cffb7092ad1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gaeb16d361d1fc92de95cc1986619eac8a">snd_seq_system_info_get_cur_clients</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current number of clients.  <a href="#gaeb16d361d1fc92de95cc1986619eac8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga5af096ec5db751e0d10ec0d998482c6a">snd_seq_system_info_get_cur_queues</a> (const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current number of queues.  <a href="#ga5af096ec5db751e0d10ec0d998482c6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e">snd_seq_system_info</a> (<a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *handle, <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *info)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">obtain the sequencer system information  <a href="#ga548a7ebe6c90e90f689cf8d862b81f9e"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>MIDI Sequencer Interface. See <a class="el" href="seq.html">Sequencer interface</a> page for more details. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gafc9dd136f59487d09d2124cef09b8c3e"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_BROADCAST" ref="gafc9dd136f59487d09d2124cef09b8c3e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_ADDRESS_BROADCAST&nbsp;&nbsp;&nbsp;255</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>send event to all queues/clients/ports/channels </p>

</div>
</div>
<a class="anchor" id="ga383b235d2afbe48704952edfd3a33eed"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_SUBSCRIBERS" ref="ga383b235d2afbe48704952edfd3a33eed" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_ADDRESS_SUBSCRIBERS&nbsp;&nbsp;&nbsp;254</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>send event to all subscribed ports </p>

</div>
</div>
<a class="anchor" id="ga79353f7f2482e98b5181f03df7c807ac"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_UNKNOWN" ref="ga79353f7f2482e98b5181f03df7c807ac" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_ADDRESS_UNKNOWN&nbsp;&nbsp;&nbsp;253</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>special client (port) ids unknown source </p>

</div>
</div>
<a class="anchor" id="ga5437f98c59679c92ee4d940ac643169e"></a><!-- doxytag: member="seq.h::SND_SEQ_CLIENT_SYSTEM" ref="ga5437f98c59679c92ee4d940ac643169e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_CLIENT_SYSTEM&nbsp;&nbsp;&nbsp;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>known client numbers system client </p>

</div>
</div>
<a class="anchor" id="gad6233417c4c820a4c0aef4c379cf65a7"></a><!-- doxytag: member="seq.h::SND_SEQ_DLSYM_VERSION" ref="gad6233417c4c820a4c0aef4c379cf65a7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_DLSYM_VERSION&nbsp;&nbsp;&nbsp;_dlsym_seq_001</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>dlsym version for interface entry callback </p>

</div>
</div>
<a class="anchor" id="gafb3bf2f7109d85d9226c64578e73d614"></a><!-- doxytag: member="seq.h::SND_SEQ_NONBLOCK" ref="gafb3bf2f7109d85d9226c64578e73d614" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_NONBLOCK&nbsp;&nbsp;&nbsp;0x0001</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>sequencer opening mode non-blocking mode (flag to open mode) </p>

</div>
</div>
<a class="anchor" id="ga61c3481e1d357bb38cc399f6b9884ac7"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_DUPLEX" ref="ga61c3481e1d357bb38cc399f6b9884ac7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_OPEN_DUPLEX&nbsp;&nbsp;&nbsp;(SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>open for both input and output (read/write) </p>

</div>
</div>
<a class="anchor" id="gaaf1cded61cf90f4d37caf910192ef513"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_INPUT" ref="gaaf1cded61cf90f4d37caf910192ef513" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_OPEN_INPUT&nbsp;&nbsp;&nbsp;2</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>open for input (read) </p>

</div>
</div>
<a class="anchor" id="ga1edd6d976f3dae5d921568f2107bd121"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_OUTPUT" ref="ga1edd6d976f3dae5d921568f2107bd121" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SND_SEQ_OPEN_OUTPUT&nbsp;&nbsp;&nbsp;1</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>sequencer opening stream types open for output (write) </p>

</div>
</div>
<a class="anchor" id="gaf6343bc1e96ab067152b35b8ff6904ea"></a><!-- doxytag: member="seq.h::snd_seq_system_info_alloca" ref="gaf6343bc1e96ab067152b35b8ff6904ea" args="(ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define snd_seq_system_info_alloca</td>
          <td>(</td>
          <td class="paramtype">ptr&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;__snd_alloca(ptr, snd_seq_system_info)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>allocate a <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container on stack </p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga2bcf0bf155f961b6294d556c654023e0"></a><!-- doxytag: member="seq.h::snd_seq_system_info_t" ref="ga2bcf0bf155f961b6294d556c654023e0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_seq_system_info <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>system information container </p>

</div>
</div>
<a class="anchor" id="gae141149958a7458806152ed5942a1acd"></a><!-- doxytag: member="seq.h::snd_seq_t" ref="gae141149958a7458806152ed5942a1acd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct _snd_seq <a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sequencer handle </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga95ee23dbfb14769db6a470875ed94807"></a><!-- doxytag: member="seq.h::snd_seq_type_t" ref="ga95ee23dbfb14769db6a470875ed94807" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___sequencer.html#ga95ee23dbfb14769db6a470875ed94807">snd_seq_type_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>sequencer handle type </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga95ee23dbfb14769db6a470875ed94807a9f702d2b9053cbb77f5bebc74b727415"></a><!-- doxytag: member="SND_SEQ_TYPE_HW" ref="gga95ee23dbfb14769db6a470875ed94807a9f702d2b9053cbb77f5bebc74b727415" args="" -->SND_SEQ_TYPE_HW</em>&nbsp;</td><td>
<p>hardware </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga95ee23dbfb14769db6a470875ed94807a6df472343a3602be359406452222f1a3"></a><!-- doxytag: member="SND_SEQ_TYPE_SHM" ref="gga95ee23dbfb14769db6a470875ed94807a6df472343a3602be359406452222f1a3" args="" -->SND_SEQ_TYPE_SHM</em>&nbsp;</td><td>
<p>shared memory (NYI) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga95ee23dbfb14769db6a470875ed94807a1b09154678b8e506abac5c84d88aa195"></a><!-- doxytag: member="SND_SEQ_TYPE_INET" ref="gga95ee23dbfb14769db6a470875ed94807a1b09154678b8e506abac5c84d88aa195" args="" -->SND_SEQ_TYPE_INET</em>&nbsp;</td><td>
<p>network (NYI) </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga2cdaded101f041b9a0930b665ac44b93"></a><!-- doxytag: member="seq.h::snd_seq_client_id" ref="ga2cdaded101f041b9a0930b665ac44b93" args="(snd_seq_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_client_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the client id. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the client id</dd></dl>
<p>Returns the id of the specified client. If an error occurs, function returns the negative error code. A client id is necessary to inquiry or to set the client information. A user client is assigned from 128 to 191.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gab209cdcf6e1e1907f8c49d3148a4e0f6"></a><!-- doxytag: member="seq.h::snd_seq_close" ref="gab209cdcf6e1e1907f8c49d3148a4e0f6" args="(snd_seq_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Close the sequencer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>Handle returned from <a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Closes the sequencer client and releases its resources. After a client is closed, an event with <a class="el" href="group___seq_events.html#ggaef39e1f267006faf7abc91c3cb32ea40a0b3cb6ea4b789281399b4fb6561aa390">SND_SEQ_EVENT_CLIENT_EXIT</a> is broadcast to announce port. The connection between other clients are disconnected. Call this just before exiting your program.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gab209cdcf6e1e1907f8c49d3148a4e0f6" title="Close the sequencer.">snd_seq_close()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gacd207de4c08ffff3020b078de8e64cc5"></a><!-- doxytag: member="seq.h::snd_seq_get_input_buffer_size" ref="gacd207de4c08ffff3020b078de8e64cc5" args="(snd_seq_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t snd_seq_get_input_buffer_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the size of input buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of input buffer in bytes</dd></dl>
<p>Obtains the size of input buffer. This buffer is used to read byte-stream of input events from sequencer.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga62cd9f5ea1d75db676d43da44596750e" title="Resize the input buffer.">snd_seq_set_input_buffer_size()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga02442682a361bc6f9faeff468cdebbad"></a><!-- doxytag: member="seq.h::snd_seq_get_output_buffer_size" ref="ga02442682a361bc6f9faeff468cdebbad" args="(snd_seq_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t snd_seq_get_output_buffer_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the size of output buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the size of output buffer in bytes</dd></dl>
<p>Obtains the size of output buffer. This buffer is used to store decoded byte-stream of output events before transferring to sequencer.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gae9a0931460444f130c5c1df9de57707a" title="Change the size of output buffer.">snd_seq_set_output_buffer_size()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga8736d847fb7b3b6627f29f0eba907e30"></a><!-- doxytag: member="seq.h::snd_seq_name" ref="ga8736d847fb7b3b6627f29f0eba907e30" args="(snd_seq_t *seq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* snd_seq_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get identifier of sequencer handle </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ASCII identifier of sequencer handle</dd></dl>
<p>Returns the ASCII identifier of the given sequencer handle. It's the same identifier specified in <a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaa41faa2ad471677d1060f9e9a226ac52"></a><!-- doxytag: member="seq.h::snd_seq_nonblock" ref="gaa41faa2ad471677d1060f9e9a226ac52" args="(snd_seq_t *handle, int nonblock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_nonblock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nonblock</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set nonblock mode. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nonblock</em>&nbsp;</td><td>0 = block, 1 = nonblock mode </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Change the blocking mode of the given client. In block mode, the client falls into sleep when it fills the output memory pool with full events. The client will be woken up after a certain amount of free space becomes available.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga95462dc59c0319e186cda713ecfb4ed3"></a><!-- doxytag: member="seq.h::snd_seq_open" ref="ga95462dc59c0319e186cda713ecfb4ed3" args="(snd_seq_t **handle, const char *name, int streams, int mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_open </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> **&nbsp;</td>
          <td class="paramname"> <em>seqp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>streams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open the ALSA sequencer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seqp</em>&nbsp;</td><td>Pointer to a snd_seq_t pointer. This pointer must be kept and passed to most of the other sequencer functions. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The sequencer's "name". This is <em>not</em> a name you make up for your own purposes; it has special significance to the ALSA library. Usually you need to pass <code>"default"</code> here. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>streams</em>&nbsp;</td><td>The read/write mode of the sequencer. Can be one of three values:</p>
<ul>
<li><a class="el" href="group___sequencer.html#ga1edd6d976f3dae5d921568f2107bd121">SND_SEQ_OPEN_OUTPUT</a> - open the sequencer for output only</li>
<li><a class="el" href="group___sequencer.html#gaaf1cded61cf90f4d37caf910192ef513">SND_SEQ_OPEN_INPUT</a> - open the sequencer for input only</li>
<li><a class="el" href="group___sequencer.html#ga61c3481e1d357bb38cc399f6b9884ac7">SND_SEQ_OPEN_DUPLEX</a> - open the sequencer for output and input </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Internally, these are translated to <code>O_WRONLY</code>, <code>O_RDONLY</code> and <code>O_RDWR</code> respectively and used as the second argument to the C library open() call. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>Optional modifier. Can be either 0, or <a class="el" href="group___sequencer.html#gafb3bf2f7109d85d9226c64578e73d614">SND_SEQ_NONBLOCK</a>, which will make read/write operations non-blocking. This can also be set later using <a class="el" href="group___sequencer.html#gaa41faa2ad471677d1060f9e9a226ac52" title="Set nonblock mode.">snd_seq_nonblock()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Creates a new handle and opens a connection to the kernel sequencer interface. After a client is created successfully, an event with <a class="el" href="group___seq_events.html#ggaef39e1f267006faf7abc91c3cb32ea40a7b77fe59af173ddfebb718da0859712e">SND_SEQ_EVENT_CLIENT_START</a> is broadcast to announce port.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga03b68a24d0d2de303ee9ec04ed68c8b7" title="Open the ALSA sequencer using local configuration.">snd_seq_open_lconf()</a>, <a class="el" href="group___sequencer.html#gab209cdcf6e1e1907f8c49d3148a4e0f6" title="Close the sequencer.">snd_seq_close()</a>, <a class="el" href="group___sequencer.html#ga1ff33a2d698836d879ac05f5176c58b3" title="get type of sequencer handle">snd_seq_type()</a>, <a class="el" href="group___sequencer.html#ga8736d847fb7b3b6627f29f0eba907e30" title="get identifier of sequencer handle">snd_seq_name()</a>, <a class="el" href="group___sequencer.html#gaa41faa2ad471677d1060f9e9a226ac52" title="Set nonblock mode.">snd_seq_nonblock()</a>, <a class="el" href="group___sequencer.html#ga2cdaded101f041b9a0930b665ac44b93" title="Get the client id.">snd_seq_client_id()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga03b68a24d0d2de303ee9ec04ed68c8b7"></a><!-- doxytag: member="seq.h::snd_seq_open_lconf" ref="ga03b68a24d0d2de303ee9ec04ed68c8b7" args="(snd_seq_t **handle, const char *name, int streams, int mode, snd_config_t *lconf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_open_lconf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> **&nbsp;</td>
          <td class="paramname"> <em>seqp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>streams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *&nbsp;</td>
          <td class="paramname"> <em>lconf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Open the ALSA sequencer using local configuration. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seqp</em>&nbsp;</td><td>Pointer to a snd_seq_t pointer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name to open </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>streams</em>&nbsp;</td><td>The read/write mode of the sequencer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>Optional modifier </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lconf</em>&nbsp;</td><td>Local configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>See the <a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> function for further details. The extension is that the given configuration is used to resolve abstract name.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga99851fa9ff4ec5be7414cd9defbcda89"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors" ref="ga99851fa9ff4ec5be7414cd9defbcda89" args="(snd_seq_t *handle, struct pollfd *pfds, unsigned int space, short events)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_poll_descriptors </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct pollfd *&nbsp;</td>
          <td class="paramname"> <em>pfds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&nbsp;</td>
          <td class="paramname"> <em>events</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get poll descriptors. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pfds</em>&nbsp;</td><td>array of poll descriptors </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>space</em>&nbsp;</td><td>space in the poll descriptor array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>events</em>&nbsp;</td><td>polling events to be checked (<code>POLLIN</code> and <code>POLLOUT</code>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of filled descriptors</dd></dl>
<p>Get poll descriptors assigned to the sequencer handle. Since a sequencer handle can duplex streams, you need to set which direction(s) is/are polled in <em>events</em> argument. When <code>POLLIN</code> bit is specified, the incoming events to the ports are checked.</p>
<p>To check the returned poll-events, call <a class="el" href="group___sequencer.html#gaae23b17b3c34639b7a2a8ed74880d364" title="get returned events from poll descriptors">snd_seq_poll_descriptors_revents()</a> instead of reading the pollfd structs directly.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gaf281c1dddfc626124b9e61d2cad94f2d" title="Returns the number of poll descriptors.">snd_seq_poll_descriptors_count()</a>, <a class="el" href="group___sequencer.html#gaae23b17b3c34639b7a2a8ed74880d364" title="get returned events from poll descriptors">snd_seq_poll_descriptors_revents()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaf281c1dddfc626124b9e61d2cad94f2d"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors_count" ref="gaf281c1dddfc626124b9e61d2cad94f2d" args="(snd_seq_t *handle, short events)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_poll_descriptors_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">short&nbsp;</td>
          <td class="paramname"> <em>events</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of poll descriptors. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>events</em>&nbsp;</td><td>the poll events to be checked (<code>POLLIN</code> and <code>POLLOUT</code>) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of poll descriptors.</dd></dl>
<p>Get the number of poll descriptors. The polling events to be checked can be specified by the second argument. When both input and output are checked, pass <code>POLLIN|POLLOUT</code> </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga99851fa9ff4ec5be7414cd9defbcda89" title="Get poll descriptors.">snd_seq_poll_descriptors()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaae23b17b3c34639b7a2a8ed74880d364"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors_revents" ref="gaae23b17b3c34639b7a2a8ed74880d364" args="(snd_seq_t *seq, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_poll_descriptors_revents </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct pollfd *&nbsp;</td>
          <td class="paramname"> <em>pfds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>nfds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned short *&nbsp;</td>
          <td class="paramname"> <em>revents</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get returned events from poll descriptors </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pfds</em>&nbsp;</td><td>array of poll descriptors </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nfds</em>&nbsp;</td><td>count of poll descriptors </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>revents</em>&nbsp;</td><td>returned events </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga99851fa9ff4ec5be7414cd9defbcda89" title="Get poll descriptors.">snd_seq_poll_descriptors()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga62cd9f5ea1d75db676d43da44596750e"></a><!-- doxytag: member="seq.h::snd_seq_set_input_buffer_size" ref="ga62cd9f5ea1d75db676d43da44596750e" args="(snd_seq_t *handle, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_set_input_buffer_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resize the input buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>the size of input buffer to be changed in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Changes the size of input buffer.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gacd207de4c08ffff3020b078de8e64cc5" title="Return the size of input buffer.">snd_seq_get_input_buffer_size()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gae9a0931460444f130c5c1df9de57707a"></a><!-- doxytag: member="seq.h::snd_seq_set_output_buffer_size" ref="gae9a0931460444f130c5c1df9de57707a" args="(snd_seq_t *handle, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_set_output_buffer_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Change the size of output buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>the size of output buffer to be changed in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Changes the size of output buffer.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga02442682a361bc6f9faeff468cdebbad" title="Return the size of output buffer.">snd_seq_get_output_buffer_size()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga548a7ebe6c90e90f689cf8d862b81f9e"></a><!-- doxytag: member="seq.h::snd_seq_system_info" ref="ga548a7ebe6c90e90f689cf8d862b81f9e" args="(snd_seq_t *handle, snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>obtain the sequencer system information </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>the pointer to be stored </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
<p>Stores the global system information of ALSA sequencer system. The returned data contains the maximum available numbers of queues, clients, ports and channels. </p>

</div>
</div>
<a class="anchor" id="ga8cbf6ad4d47837d0a5a1100ef0808ab7"></a><!-- doxytag: member="seq.h::snd_seq_system_info_copy" ref="ga8cbf6ad4d47837d0a5a1100ef0808ab7" args="(snd_seq_system_info_t *dst, const snd_seq_system_info_t *src)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_seq_system_info_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>src</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy one <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> to another. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dst</em>&nbsp;</td><td>pointer to destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>pointer to source </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf3876a29ae1e648d9fd8e6d067a56b6b"></a><!-- doxytag: member="seq.h::snd_seq_system_info_free" ref="gaf3876a29ae1e648d9fd8e6d067a56b6b" args="(snd_seq_system_info_t *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void snd_seq_system_info_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees a previously allocated <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj</em>&nbsp;</td><td>pointer to object to free </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga58fa1ff3d4ffafac092e5cffb7092ad1"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_channels" ref="ga58fa1ff3d4ffafac092e5cffb7092ad1" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_channels </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get maximum number of channels. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of channels</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga7fbb56a82dfef9224b411a659ba7d8f0"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_clients" ref="ga7fbb56a82dfef9224b411a659ba7d8f0" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_clients </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get maximum number of clients. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of clients</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaeb16d361d1fc92de95cc1986619eac8a"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_cur_clients" ref="gaeb16d361d1fc92de95cc1986619eac8a" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_cur_clients </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the current number of clients. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>current number of clients</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga5af096ec5db751e0d10ec0d998482c6a"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_cur_queues" ref="ga5af096ec5db751e0d10ec0d998482c6a" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_cur_queues </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the current number of queues. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>current number of queues</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gae446559ff05dc0ed1967eab253921aa0"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_ports" ref="gae446559ff05dc0ed1967eab253921aa0" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_ports </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get maximum number of ports. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of ports</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga63c9cfcc634c722350b55a6820461e9e"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_queues" ref="ga63c9cfcc634c722350b55a6820461e9e" args="(const snd_seq_system_info_t *info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_get_queues </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get maximum number of queues. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> container </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of queues</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga548a7ebe6c90e90f689cf8d862b81f9e" title="obtain the sequencer system information">snd_seq_system_info()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gad49e5da1a851505e43dcfbf5fd00b0d9"></a><!-- doxytag: member="seq.h::snd_seq_system_info_malloc" ref="gad49e5da1a851505e43dcfbf5fd00b0d9" args="(snd_seq_system_info_t **ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int snd_seq_system_info_malloc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> **&nbsp;</td>
          <td class="paramname"> <em>ptr</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocate an empty <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a> using standard malloc. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ptr</em>&nbsp;</td><td>returned pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success otherwise negative error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga1a036e739dd2daaa9952875528c2f763"></a><!-- doxytag: member="seq.h::snd_seq_system_info_sizeof" ref="ga1a036e739dd2daaa9952875528c2f763" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t snd_seq_system_info_sizeof </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get size of <a class="el" href="group___sequencer.html#ga2bcf0bf155f961b6294d556c654023e0">snd_seq_system_info_t</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>size in bytes </dd></dl>

</div>
</div>
<a class="anchor" id="ga1ff33a2d698836d879ac05f5176c58b3"></a><!-- doxytag: member="seq.h::snd_seq_type" ref="ga1ff33a2d698836d879ac05f5176c58b3" args="(snd_seq_t *seq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___sequencer.html#ga95ee23dbfb14769db6a470875ed94807">snd_seq_type_t</a> snd_seq_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#gae141149958a7458806152ed5942a1acd">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>get type of sequencer handle </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>seq</em>&nbsp;</td><td>sequencer handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>type of sequencer handle</dd></dl>
<p>Returns the type <a class="el" href="group___sequencer.html#ga95ee23dbfb14769db6a470875ed94807">snd_seq_type_t</a> of the given sequencer handle.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#ga95462dc59c0319e186cda713ecfb4ed3" title="Open the ALSA sequencer.">snd_seq_open()</a> </dd></dl>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Nov 20 07:42:24 2010 for ALSA project - the C library reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>