MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //usr/share/doc/alsa-lib-devel-1.0.17/lib64/html/group___sequencer.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>ALSA project - the C library reference: MIDI Sequencer</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</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="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<h1>MIDI Sequencer</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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" nowrap 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"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gf8a4579caf97fca067e6835d9594ff04">SND_SEQ_DLSYM_VERSION</a>&nbsp;&nbsp;&nbsp;_dlsym_seq_001</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g5e81787eb2d1b381307ea72fe1292427">SND_SEQ_OPEN_OUTPUT</a>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gf144e67eb685df9e04cbd9af3c70d127">SND_SEQ_OPEN_INPUT</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#ga683c3a4aa1dd9e5f403245314b59b0d">SND_SEQ_OPEN_DUPLEX</a>&nbsp;&nbsp;&nbsp;(SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g988e0996a5de89e3ca0bffaf53adb63e">SND_SEQ_NONBLOCK</a>&nbsp;&nbsp;&nbsp;0x0001</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g1f8b452b2c67c4aa992c519b8cbcc842">SND_SEQ_ADDRESS_UNKNOWN</a>&nbsp;&nbsp;&nbsp;253</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g6540f2d8e765175bb6f082648d1d12fb">SND_SEQ_ADDRESS_SUBSCRIBERS</a>&nbsp;&nbsp;&nbsp;254</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g82b2252edf13b4bac9b46e336f507f2e">SND_SEQ_ADDRESS_BROADCAST</a>&nbsp;&nbsp;&nbsp;255</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g99fdba14f37a55f4ebe38bc35f8b93bb">SND_SEQ_CLIENT_SYSTEM</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gcee3b7b81a9ded4dc1de7e2bb4fea2b1">snd_seq_system_info_alloca</a>(ptr)&nbsp;&nbsp;&nbsp;__snd_alloca(ptr, snd_seq_system_info)</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_seq&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="group___sequencer.html#g85d657f4ddaa38547f4269056aee327d">_snd_seq_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gc0a8306b70ba1821d09beebae876ec3c">snd_seq_type_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef _snd_seq_system_info&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a></td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g85d657f4ddaa38547f4269056aee327d">_snd_seq_type</a> { <a class="el" href="group___sequencer.html#gg85d657f4ddaa38547f4269056aee327db293be18b4a3845886fa8c3982a499bd">SND_SEQ_TYPE_HW</a>, 
<a class="el" href="group___sequencer.html#gg85d657f4ddaa38547f4269056aee327dc3e6db70fc99edbaad3ddc6548476c13">SND_SEQ_TYPE_SHM</a>, 
<a class="el" href="group___sequencer.html#gg85d657f4ddaa38547f4269056aee327dee439634430a8e9a3c4cc744da722182">SND_SEQ_TYPE_INET</a>
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#g939da4eeae96f1a57390bcda842cdc7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gefcca772c2a48ae3e45abc33784628d0">snd_seq_open_lconf</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> **handle, const char *name, int streams, int mode, <a class="el" href="group___config.html#gb7dc173feea5bedcd999bba678eb53a7">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="#gefcca772c2a48ae3e45abc33784628d0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g3a0dcdb14a02fe16f12141e11cebb959">snd_seq_name</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *seq)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get identifier of sequencer handle  <a href="#g3a0dcdb14a02fe16f12141e11cebb959"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group___sequencer.html#gc0a8306b70ba1821d09beebae876ec3c">snd_seq_type_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g0025a3ac01ec8466e9cc8b0f1d537c41">snd_seq_type</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *seq)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get type of sequencer handle  <a href="#g0025a3ac01ec8466e9cc8b0f1d537c41"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gd9d224abfb59c0b8793506722f01e24b">snd_seq_close</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the sequencer.  <a href="#gd9d224abfb59c0b8793506722f01e24b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gb7ea9b265ec21ce593ded14071135a3e">snd_seq_poll_descriptors_count</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#gb7ea9b265ec21ce593ded14071135a3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g5086fbf4e38449108a0807fb5cf5e9c6">snd_seq_poll_descriptors</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#g5086fbf4e38449108a0807fb5cf5e9c6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g2023831b160997c8930d52ed977b64f4">snd_seq_poll_descriptors_revents</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#g2023831b160997c8930d52ed977b64f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g4e2c3ba1d0db180b78f2e7b920d0b5ee">snd_seq_nonblock</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle, int nonblock)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set nonblock mode.  <a href="#g4e2c3ba1d0db180b78f2e7b920d0b5ee"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g5175849d1b547a2413ec7cf8431651a0">snd_seq_client_id</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the client id.  <a href="#g5175849d1b547a2413ec7cf8431651a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g97db762587222954468250413bf34011">snd_seq_get_output_buffer_size</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of output buffer.  <a href="#g97db762587222954468250413bf34011"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g1a9f7a6cefe7357deb177dea1dce15b9">snd_seq_get_input_buffer_size</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of input buffer.  <a href="#g1a9f7a6cefe7357deb177dea1dce15b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g12eb62d9dde6b5f4646bb21c68072d76">snd_seq_set_output_buffer_size</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#g12eb62d9dde6b5f4646bb21c68072d76"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gd50134d3bfac0f788ab79b2e9fff9fc9">snd_seq_set_input_buffer_size</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">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="#gd50134d3bfac0f788ab79b2e9fff9fc9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g7c446cc82d0f437b5a4cd684f0e75856">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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a>.  <a href="#g7c446cc82d0f437b5a4cd684f0e75856"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gd27466d786fe342a8c5c33bced51017b">snd_seq_system_info_malloc</a> (<a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> using standard malloc.  <a href="#gd27466d786fe342a8c5c33bced51017b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g31a8aa29e2127767261821217c58abef">snd_seq_system_info_free</a> (<a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a>.  <a href="#g31a8aa29e2127767261821217c58abef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g97cf21100bb1242b173fb9a260fd3472">snd_seq_system_info_copy</a> (<a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *dst, const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> to another.  <a href="#g97cf21100bb1242b173fb9a260fd3472"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g975201d0785e52b2bb4dac730a2eed47">snd_seq_system_info_get_queues</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#g975201d0785e52b2bb4dac730a2eed47"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gfa5dfdb2a206838372b8959881328a33">snd_seq_system_info_get_clients</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#gfa5dfdb2a206838372b8959881328a33"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g186cf68270ad2bc57b93523bef9531c9">snd_seq_system_info_get_ports</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#g186cf68270ad2bc57b93523bef9531c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gdf43fe5c784dbda03cb1de3116ea5772">snd_seq_system_info_get_channels</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#gdf43fe5c784dbda03cb1de3116ea5772"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g6c0ab82ccc452be6846f349cd0aac93b">snd_seq_system_info_get_cur_clients</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#g6c0ab82ccc452be6846f349cd0aac93b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#g9f74f0e0daa9c3056f0cf707795ac5a4">snd_seq_system_info_get_cur_queues</a> (const <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#g9f74f0e0daa9c3056f0cf707795ac5a4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info</a> (<a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *handle, <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">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="#gd7e2ff62ed6e402c64cd3982766dc8a6"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
MIDI Sequencer Interface. See <a class="el" href="seq.html">Sequencer interface</a> page for more details. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g82b2252edf13b4bac9b46e336f507f2e"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_BROADCAST" ref="g82b2252edf13b4bac9b46e336f507f2e" 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 
</div>
</div><p>
<a class="anchor" name="g6540f2d8e765175bb6f082648d1d12fb"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_SUBSCRIBERS" ref="g6540f2d8e765175bb6f082648d1d12fb" 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 
</div>
</div><p>
<a class="anchor" name="g1f8b452b2c67c4aa992c519b8cbcc842"></a><!-- doxytag: member="seq.h::SND_SEQ_ADDRESS_UNKNOWN" ref="g1f8b452b2c67c4aa992c519b8cbcc842" 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 
</div>
</div><p>
<a class="anchor" name="g99fdba14f37a55f4ebe38bc35f8b93bb"></a><!-- doxytag: member="seq.h::SND_SEQ_CLIENT_SYSTEM" ref="g99fdba14f37a55f4ebe38bc35f8b93bb" 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 
</div>
</div><p>
<a class="anchor" name="gf8a4579caf97fca067e6835d9594ff04"></a><!-- doxytag: member="seq.h::SND_SEQ_DLSYM_VERSION" ref="gf8a4579caf97fca067e6835d9594ff04" 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 
</div>
</div><p>
<a class="anchor" name="g988e0996a5de89e3ca0bffaf53adb63e"></a><!-- doxytag: member="seq.h::SND_SEQ_NONBLOCK" ref="g988e0996a5de89e3ca0bffaf53adb63e" 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) 
</div>
</div><p>
<a class="anchor" name="ga683c3a4aa1dd9e5f403245314b59b0d"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_DUPLEX" ref="ga683c3a4aa1dd9e5f403245314b59b0d" 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) 
</div>
</div><p>
<a class="anchor" name="gf144e67eb685df9e04cbd9af3c70d127"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_INPUT" ref="gf144e67eb685df9e04cbd9af3c70d127" 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) 
</div>
</div><p>
<a class="anchor" name="g5e81787eb2d1b381307ea72fe1292427"></a><!-- doxytag: member="seq.h::SND_SEQ_OPEN_OUTPUT" ref="g5e81787eb2d1b381307ea72fe1292427" 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) 
</div>
</div><p>
<a class="anchor" name="gcee3b7b81a9ded4dc1de7e2bb4fea2b1"></a><!-- doxytag: member="seq.h::snd_seq_system_info_alloca" ref="gcee3b7b81a9ded4dc1de7e2bb4fea2b1" 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 width="100%">&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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container on stack 
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g72d8784184492f962fc74c3a76a1583a"></a><!-- doxytag: member="seq.h::snd_seq_system_info_t" ref="g72d8784184492f962fc74c3a76a1583a" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
system information container 
</div>
</div><p>
<a class="anchor" name="g527eff2e3b3c7dd45cac6fdd2ceee964"></a><!-- doxytag: member="seq.h::snd_seq_t" ref="g527eff2e3b3c7dd45cac6fdd2ceee964" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sequencer handle 
</div>
</div><p>
<a class="anchor" name="gc0a8306b70ba1821d09beebae876ec3c"></a><!-- doxytag: member="seq.h::snd_seq_type_t" ref="gc0a8306b70ba1821d09beebae876ec3c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group___sequencer.html#g85d657f4ddaa38547f4269056aee327d">_snd_seq_type</a>  <a class="el" href="group___sequencer.html#gc0a8306b70ba1821d09beebae876ec3c">snd_seq_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sequencer handle type 
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g85d657f4ddaa38547f4269056aee327d"></a><!-- doxytag: member="seq.h::_snd_seq_type" ref="g85d657f4ddaa38547f4269056aee327d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___sequencer.html#g85d657f4ddaa38547f4269056aee327d">_snd_seq_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sequencer handle type <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg85d657f4ddaa38547f4269056aee327db293be18b4a3845886fa8c3982a499bd"></a><!-- doxytag: member="SND_SEQ_TYPE_HW" ref="gg85d657f4ddaa38547f4269056aee327db293be18b4a3845886fa8c3982a499bd" args="" -->SND_SEQ_TYPE_HW</em>&nbsp;</td><td>
hardware </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg85d657f4ddaa38547f4269056aee327dc3e6db70fc99edbaad3ddc6548476c13"></a><!-- doxytag: member="SND_SEQ_TYPE_SHM" ref="gg85d657f4ddaa38547f4269056aee327dc3e6db70fc99edbaad3ddc6548476c13" args="" -->SND_SEQ_TYPE_SHM</em>&nbsp;</td><td>
shared memory (NYI) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg85d657f4ddaa38547f4269056aee327dee439634430a8e9a3c4cc744da722182"></a><!-- doxytag: member="SND_SEQ_TYPE_INET" ref="gg85d657f4ddaa38547f4269056aee327dee439634430a8e9a3c4cc744da722182" args="" -->SND_SEQ_TYPE_INET</em>&nbsp;</td><td>
network (NYI) </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5175849d1b547a2413ec7cf8431651a0"></a><!-- doxytag: member="seq.h::snd_seq_client_id" ref="g5175849d1b547a2413ec7cf8431651a0" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the client id. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the client id</dd></dl>
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 compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd9d224abfb59c0b8793506722f01e24b"></a><!-- doxytag: member="seq.h::snd_seq_close" ref="gd9d224abfb59c0b8793506722f01e24b" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close the sequencer. 
<p>
<dl compact><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#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Closes the sequencer client and releases its resources. After a client is closed, an event with <a class="el" href="group___seq_events.html#gg644c72e4af4461703b3fe43a7dfa5cda7dc51738930b81328b1f8cdcb7b383e0">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 compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd9d224abfb59c0b8793506722f01e24b">snd_seq_close()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g1a9f7a6cefe7357deb177dea1dce15b9"></a><!-- doxytag: member="seq.h::snd_seq_get_input_buffer_size" ref="g1a9f7a6cefe7357deb177dea1dce15b9" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the size of input buffer. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the size of input buffer in bytes</dd></dl>
Obtains the size of input buffer. This buffer is used to read byte-stream of input events from sequencer.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd50134d3bfac0f788ab79b2e9fff9fc9">snd_seq_set_input_buffer_size()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g97db762587222954468250413bf34011"></a><!-- doxytag: member="seq.h::snd_seq_get_output_buffer_size" ref="g97db762587222954468250413bf34011" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the size of output buffer. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the size of output buffer in bytes</dd></dl>
Obtains the size of output buffer. This buffer is used to store decoded byte-stream of output events before transferring to sequencer.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g12eb62d9dde6b5f4646bb21c68072d76">snd_seq_set_output_buffer_size()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3a0dcdb14a02fe16f12141e11cebb959"></a><!-- doxytag: member="seq.h::snd_seq_name" ref="g3a0dcdb14a02fe16f12141e11cebb959" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get identifier of sequencer handle 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>ascii identifier of sequencer handle</dd></dl>
Returns the ASCII identifier of the given sequencer handle. It's the same identifier specified in <a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a>.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g4e2c3ba1d0db180b78f2e7b920d0b5ee"></a><!-- doxytag: member="seq.h::snd_seq_nonblock" ref="g4e2c3ba1d0db180b78f2e7b920d0b5ee" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set nonblock mode. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
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 compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g939da4eeae96f1a57390bcda842cdc7b"></a><!-- doxytag: member="seq.h::snd_seq_open" ref="g939da4eeae96f1a57390bcda842cdc7b" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open the ALSA sequencer. 
<p>
<dl compact><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:<ul>
<li><a class="el" href="group___sequencer.html#g5e81787eb2d1b381307ea72fe1292427">SND_SEQ_OPEN_OUTPUT</a> - open the sequencer for output only</li><li><a class="el" href="group___sequencer.html#gf144e67eb685df9e04cbd9af3c70d127">SND_SEQ_OPEN_INPUT</a> - open the sequencer for input only</li><li><a class="el" href="group___sequencer.html#ga683c3a4aa1dd9e5f403245314b59b0d">SND_SEQ_OPEN_DUPLEX</a> - open the sequencer for output and input </li></ul>
</td></tr>
  </table>
</dl>
<dl compact><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 compact><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#g988e0996a5de89e3ca0bffaf53adb63e">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#g4e2c3ba1d0db180b78f2e7b920d0b5ee">snd_seq_nonblock()</a>. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
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#gg644c72e4af4461703b3fe43a7dfa5cda33d52670268a499b9354397836eeb18f">SND_SEQ_EVENT_CLIENT_START</a> is broadcast to announce port.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gefcca772c2a48ae3e45abc33784628d0">snd_seq_open_lconf()</a>, <a class="el" href="group___sequencer.html#gd9d224abfb59c0b8793506722f01e24b">snd_seq_close()</a>, <a class="el" href="group___sequencer.html#g0025a3ac01ec8466e9cc8b0f1d537c41">snd_seq_type()</a>, <a class="el" href="group___sequencer.html#g3a0dcdb14a02fe16f12141e11cebb959">snd_seq_name()</a>, <a class="el" href="group___sequencer.html#g4e2c3ba1d0db180b78f2e7b920d0b5ee">snd_seq_nonblock()</a>, <a class="el" href="group___sequencer.html#g5175849d1b547a2413ec7cf8431651a0">snd_seq_client_id()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gefcca772c2a48ae3e45abc33784628d0"></a><!-- doxytag: member="seq.h::snd_seq_open_lconf" ref="gefcca772c2a48ae3e45abc33784628d0" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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#gb7dc173feea5bedcd999bba678eb53a7">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open the ALSA sequencer using local configuration. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
See the <a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> function for further details. The extension is that the given configuration is used to resolve abstract name.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5086fbf4e38449108a0807fb5cf5e9c6"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors" ref="g5086fbf4e38449108a0807fb5cf5e9c6" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get poll descriptors. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>count of filled descriptors</dd></dl>
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>
To check the returned poll-events, call <a class="el" href="group___sequencer.html#g2023831b160997c8930d52ed977b64f4">snd_seq_poll_descriptors_revents()</a> instead of reading the pollfd structs directly.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gb7ea9b265ec21ce593ded14071135a3e">snd_seq_poll_descriptors_count()</a>, <a class="el" href="group___sequencer.html#g2023831b160997c8930d52ed977b64f4">snd_seq_poll_descriptors_revents()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb7ea9b265ec21ce593ded14071135a3e"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors_count" ref="gb7ea9b265ec21ce593ded14071135a3e" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of poll descriptors. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of poll descriptors.</dd></dl>
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 compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g5086fbf4e38449108a0807fb5cf5e9c6">snd_seq_poll_descriptors()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g2023831b160997c8930d52ed977b64f4"></a><!-- doxytag: member="seq.h::snd_seq_poll_descriptors_revents" ref="g2023831b160997c8930d52ed977b64f4" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get returned events from poll descriptors 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>zero if success, otherwise a negative error code</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g5086fbf4e38449108a0807fb5cf5e9c6">snd_seq_poll_descriptors()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd50134d3bfac0f788ab79b2e9fff9fc9"></a><!-- doxytag: member="seq.h::snd_seq_set_input_buffer_size" ref="gd50134d3bfac0f788ab79b2e9fff9fc9" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Resize the input buffer. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Changes the size of input buffer.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g1a9f7a6cefe7357deb177dea1dce15b9">snd_seq_get_input_buffer_size()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g12eb62d9dde6b5f4646bb21c68072d76"></a><!-- doxytag: member="seq.h::snd_seq_set_output_buffer_size" ref="g12eb62d9dde6b5f4646bb21c68072d76" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Change the size of output buffer. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Changes the size of output buffer.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g97db762587222954468250413bf34011">snd_seq_get_output_buffer_size()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd7e2ff62ed6e402c64cd3982766dc8a6"></a><!-- doxytag: member="seq.h::snd_seq_system_info" ref="gd7e2ff62ed6e402c64cd3982766dc8a6" 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#g527eff2e3b3c7dd45cac6fdd2ceee964">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#g72d8784184492f962fc74c3a76a1583a">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
obtain the sequencer system information 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise a negative error code</dd></dl>
Stores the global system information of ALSA sequencer system. The returned data contains the maximum available numbers of queues, clients, ports and channels. 
</div>
</div><p>
<a class="anchor" name="g97cf21100bb1242b173fb9a260fd3472"></a><!-- doxytag: member="seq.h::snd_seq_system_info_copy" ref="g97cf21100bb1242b173fb9a260fd3472" 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#g72d8784184492f962fc74c3a76a1583a">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#g72d8784184492f962fc74c3a76a1583a">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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy one <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> to another. 
<p>
<dl compact><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>
</dl>

</div>
</div><p>
<a class="anchor" name="g31a8aa29e2127767261821217c58abef"></a><!-- doxytag: member="seq.h::snd_seq_system_info_free" ref="g31a8aa29e2127767261821217c58abef" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees a previously allocated <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a>. 
<p>
<dl compact><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>
</dl>

</div>
</div><p>
<a class="anchor" name="gdf43fe5c784dbda03cb1de3116ea5772"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_channels" ref="gdf43fe5c784dbda03cb1de3116ea5772" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get maximum number of channels. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>maximum number of channels</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gfa5dfdb2a206838372b8959881328a33"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_clients" ref="gfa5dfdb2a206838372b8959881328a33" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get maximum number of clients. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>maximum number of clients</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6c0ab82ccc452be6846f349cd0aac93b"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_cur_clients" ref="g6c0ab82ccc452be6846f349cd0aac93b" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current number of clients. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>current number of clients</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g9f74f0e0daa9c3056f0cf707795ac5a4"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_cur_queues" ref="g9f74f0e0daa9c3056f0cf707795ac5a4" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current number of queues. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>current number of queues</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g186cf68270ad2bc57b93523bef9531c9"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_ports" ref="g186cf68270ad2bc57b93523bef9531c9" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get maximum number of ports. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>maximum number of ports</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="g975201d0785e52b2bb4dac730a2eed47"></a><!-- doxytag: member="seq.h::snd_seq_system_info_get_queues" ref="g975201d0785e52b2bb4dac730a2eed47" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> *&nbsp;</td>
          <td class="paramname"> <em>info</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get maximum number of queues. 
<p>
<dl compact><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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> container </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>maximum number of queues</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#gd7e2ff62ed6e402c64cd3982766dc8a6">snd_seq_system_info()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd27466d786fe342a8c5c33bced51017b"></a><!-- doxytag: member="seq.h::snd_seq_system_info_malloc" ref="gd27466d786fe342a8c5c33bced51017b" 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#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> **&nbsp;</td>
          <td class="paramname"> <em>ptr</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate an empty <a class="el" href="group___sequencer.html#g72d8784184492f962fc74c3a76a1583a">snd_seq_system_info_t</a> using standard malloc. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success otherwise negative error code </dd></dl>

</div>
</div><p>
<a class="anchor" name="g7c446cc82d0f437b5a4cd684f0e75856"></a><!-- doxytag: member="seq.h::snd_seq_system_info_sizeof" ref="g7c446cc82d0f437b5a4cd684f0e75856" 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 width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div><p>
<a class="anchor" name="g0025a3ac01ec8466e9cc8b0f1d537c41"></a><!-- doxytag: member="seq.h::snd_seq_type" ref="g0025a3ac01ec8466e9cc8b0f1d537c41" 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#gc0a8306b70ba1821d09beebae876ec3c">snd_seq_type_t</a> snd_seq_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___sequencer.html#g527eff2e3b3c7dd45cac6fdd2ceee964">snd_seq_t</a> *&nbsp;</td>
          <td class="paramname"> <em>seq</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
get type of sequencer handle 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>type of sequencer handle</dd></dl>
Returns the type <a class="el" href="group___sequencer.html#gc0a8306b70ba1821d09beebae876ec3c">snd_seq_type_t</a> of the given sequencer handle.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group___sequencer.html#g939da4eeae96f1a57390bcda842cdc7b">snd_seq_open()</a> </dd></dl>

</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Tue Jan 20 22:42:10 2009 for ALSA project - the C library reference by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>