<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Instrument Interface</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.2.18 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> <a class="qindex" href="pages.html">Related Pages</a> <a class="qindex" href="examples.html">Examples</a> </center> <hr><h1>Instrument Interface</h1><table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a42">snd_instr_header_alloca</a>(ptr)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a43">SND_SEQ_INSTR_ATYPE_DATA</a> 0</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a44">SND_SEQ_INSTR_ATYPE_ALIAS</a> 1</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a45">SND_SEQ_INSTR_ID_DLS1</a> "DLS1"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a46">SND_SEQ_INSTR_ID_DLS2</a> "DLS2"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a47">SND_SEQ_INSTR_ID_SIMPLE</a> "Simple Wave"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a48">SND_SEQ_INSTR_ID_SOUNDFONT</a> "SoundFont"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a49">SND_SEQ_INSTR_ID_GUS_PATCH</a> "GUS Patch"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a50">SND_SEQ_INSTR_ID_INTERWAVE</a> "Interwave FFFF"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a51">SND_SEQ_INSTR_ID_OPL2_3</a> "OPL2/3 FM"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a52">SND_SEQ_INSTR_ID_OPL4</a> "OPL4"</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a53">SND_SEQ_INSTR_TYPE0_DLS1</a> (1<<0)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a54">SND_SEQ_INSTR_TYPE0_DLS2</a> (1<<1)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a55">SND_SEQ_INSTR_TYPE1_SIMPLE</a> (1<<0)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a56">SND_SEQ_INSTR_TYPE1_SOUNDFONT</a> (1<<1)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a57">SND_SEQ_INSTR_TYPE1_GUS_PATCH</a> (1<<2)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a58">SND_SEQ_INSTR_TYPE1_INTERWAVE</a> (1<<3)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a59">SND_SEQ_INSTR_TYPE2_OPL2_3</a> (1<<0)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a60">SND_SEQ_INSTR_TYPE2_OPL4</a> (1<<1)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a61">SND_SEQ_INSTR_PUT_CMD_CREATE</a> 0</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a62">SND_SEQ_INSTR_PUT_CMD_REPLACE</a> 1</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a63">SND_SEQ_INSTR_PUT_CMD_MODIFY</a> 2</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a64">SND_SEQ_INSTR_PUT_CMD_ADD</a> 3</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a65">SND_SEQ_INSTR_PUT_CMD_REMOVE</a> 4</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a66">SND_SEQ_INSTR_GET_CMD_FULL</a> 0</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a67">SND_SEQ_INSTR_GET_CMD_PARTIAL</a> 1</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a68">SND_SEQ_INSTR_QUERY_FOLLOW_ALIAS</a> (1<<0)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a69">SND_SEQ_INSTR_FREE_CMD_ALL</a> 0</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a70">SND_SEQ_INSTR_FREE_CMD_PRIVATE</a> 1</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a71">SND_SEQ_INSTR_FREE_CMD_CLUSTER</a> 2</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="group___instrument.html#a72">SND_SEQ_INSTR_FREE_CMD_SINGLE</a> 3</td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td nowrap align=right valign=top>typedef _snd_instr_header </td><td valign=bottom><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a></td></tr> <tr><td nowrap align=right valign=top>typedef void </td><td valign=bottom><a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a></td></tr> <tr><td nowrap align=right valign=top>typedef void </td><td valign=bottom><a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a></td></tr> <tr><td nowrap align=right valign=top>typedef void </td><td valign=bottom><a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a></td></tr> <tr><td nowrap align=right valign=top>typedef _snd_iwffff_handle </td><td valign=bottom><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a></td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td nowrap align=right valign=top>size_t </td><td valign=bottom><a class="el" href="group___instrument.html#a5">snd_instr_header_sizeof</a> (void)</td></tr> <tr><td> </td><td><font size=-1><em>get size of <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a></em> <a href="#a5"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a6">snd_instr_header_malloc</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> **ptr, size_t len)</td></tr> <tr><td> </td><td><font size=-1><em>allocate an empty <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> using standard malloc</em> <a href="#a6"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a7">snd_instr_header_free</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *ptr)</td></tr> <tr><td> </td><td><font size=-1><em>frees a previously allocated <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a></em> <a href="#a7"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a8">snd_instr_header_copy</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *dst, const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *src)</td></tr> <tr><td> </td><td><font size=-1><em>copy one <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> to another</em> <a href="#a8"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> * </td><td valign=bottom><a class="el" href="group___instrument.html#a9">snd_instr_header_get_id</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the instrument id of an instr_header container.</em> <a href="#a9"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a class="el" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> </td><td valign=bottom><a class="el" href="group___instrument.html#a10">snd_instr_header_get_cluster</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the cluster id of an instr_header container.</em> <a href="#a10"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>unsigned int </td><td valign=bottom><a class="el" href="group___instrument.html#a11">snd_instr_header_get_cmd</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the command of an instr_header container.</em> <a href="#a11"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>size_t </td><td valign=bottom><a class="el" href="group___instrument.html#a12">snd_instr_header_get_len</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the length of extra data of an instr_header container.</em> <a href="#a12"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const char * </td><td valign=bottom><a class="el" href="group___instrument.html#a13">snd_instr_header_get_name</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the data name of an instr_header container.</em> <a href="#a13"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a14">snd_instr_header_get_type</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the data type of an instr_header container.</em> <a href="#a14"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const char * </td><td valign=bottom><a class="el" href="group___instrument.html#a15">snd_instr_header_get_format</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the data format of an instr_header container.</em> <a href="#a15"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> * </td><td valign=bottom><a class="el" href="group___instrument.html#a16">snd_instr_header_get_alias</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the data alias of an instr_header container.</em> <a href="#a16"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void * </td><td valign=bottom><a class="el" href="group___instrument.html#a17">snd_instr_header_get_data</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the extra data pointer of an instr_header container.</em> <a href="#a17"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a18">snd_instr_header_get_follow_alias</a> (const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info)</td></tr> <tr><td> </td><td><font size=-1><em>Get the flag to follow alias of an instr_header container.</em> <a href="#a18"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a19">snd_instr_header_set_id</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> *id)</td></tr> <tr><td> </td><td><font size=-1><em>Set the instrument id of an instr_header container.</em> <a href="#a19"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a20">snd_instr_header_set_cluster</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <a class="el" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> cluster)</td></tr> <tr><td> </td><td><font size=-1><em>Set the cluster id of an instr_header container.</em> <a href="#a20"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a21">snd_instr_header_set_cmd</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, unsigned int cmd)</td></tr> <tr><td> </td><td><font size=-1><em>Set the command of an instr_header container.</em> <a href="#a21"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a22">snd_instr_header_set_len</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, size_t len)</td></tr> <tr><td> </td><td><font size=-1><em>Set the length of extra data of an instr_header container.</em> <a href="#a22"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a23">snd_instr_header_set_name</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, const char *name)</td></tr> <tr><td> </td><td><font size=-1><em>Set the data name of an instr_header container.</em> <a href="#a23"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a24">snd_instr_header_set_type</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, int type)</td></tr> <tr><td> </td><td><font size=-1><em>Set the data type of an instr_header container.</em> <a href="#a24"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a25">snd_instr_header_set_format</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, const char *format)</td></tr> <tr><td> </td><td><font size=-1><em>Set the data format of an instr_header container.</em> <a href="#a25"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a26">snd_instr_header_set_alias</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> *instr)</td></tr> <tr><td> </td><td><font size=-1><em>Set the data alias id of an instr_header container.</em> <a href="#a26"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group___instrument.html#a27">snd_instr_header_set_follow_alias</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *info, int val)</td></tr> <tr><td> </td><td><font size=-1><em>Set the flag to follow alias of an instr_header container.</em> <a href="#a27"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a28">snd_instr_fm_convert_to_stream</a> (<a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> *fm, const char *name, <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> **put, size_t *size)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the FM instrument to byte stream.</em> <a href="#a28"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a29">snd_instr_fm_convert_from_stream</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> **fm)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the byte stream to FM instrument.</em> <a href="#a29"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a30">snd_instr_fm_free</a> (<a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> *fm)</td></tr> <tr><td> </td><td><font size=-1><em>Free the FM instrument handle.</em> <a href="#a30"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a31">snd_instr_simple_convert_to_stream</a> (<a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> *simple, const char *name, <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> **put, size_t *size)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the simple instrument to byte stream.</em> <a href="#a31"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a32">snd_instr_simple_convert_from_stream</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> **simple)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the byte stream to simple instrument.</em> <a href="#a32"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a33">snd_instr_simple_free</a> (<a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> *simple)</td></tr> <tr><td> </td><td><font size=-1><em>Free simple instrument.</em> <a href="#a33"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a34">snd_instr_iwffff_open</a> (<a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, const char *name_fff, const char *name_dta)</td></tr> <tr><td> </td><td><font size=-1><em>Open IWFFFF files.</em> <a href="#a34"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a35">snd_instr_iwffff_open_rom</a> (<a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, int card, int bank, int file)</td></tr> <tr><td> </td><td><font size=-1><em>Open IWFFFF ROM.</em> <a href="#a35"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a36">snd_instr_iwffff_open_rom_file</a> (<a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, const char *name, int bank, int file)</td></tr> <tr><td> </td><td><font size=-1><em>Open IWFFFF ROM file.</em> <a href="#a36"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a37">snd_instr_iwffff_close</a> (<a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> *handle)</td></tr> <tr><td> </td><td><font size=-1><em>Close and free IWFFFF handle.</em> <a href="#a37"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a38">snd_instr_iwffff_load</a> (<a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> *handle, int bank, int prg, <a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> **iwffff)</td></tr> <tr><td> </td><td><font size=-1><em>Load IWFFFF instrument.</em> <a href="#a38"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a39">snd_instr_iwffff_convert_to_stream</a> (<a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> *iwffff, const char *name, <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> **data, size_t *size)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the IWFFFF instrument to byte stream.</em> <a href="#a39"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a40">snd_instr_iwffff_convert_from_stream</a> (<a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> **iwffff)</td></tr> <tr><td> </td><td><font size=-1><em>Convert the byte stream to IWFFFF instrument.</em> <a href="#a40"></a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group___instrument.html#a41">snd_instr_iwffff_free</a> (<a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> *iwffff)</td></tr> <tr><td> </td><td><font size=-1><em>Free IWFFFF instrument.</em> <a href="#a41"></a><em></em></font><br><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The Instrument Interface. <hr><h2>Define Documentation</h2> <a name="a42" doxytag="instr.h::snd_instr_header_alloca"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define snd_instr_header_alloca</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">ptr </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Value:</b><div class="fragment"><pre><span class="keywordflow">do</span> {\ assert(ptr);\ *ptr = (<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *)alloca(<a class="code" href="group___instrument.html#a5">snd_instr_header_sizeof</a>());\ memset(*ptr, 0, <a class="code" href="group___instrument.html#a5">snd_instr_header_sizeof</a>());\ } <span class="keywordflow">while</span> (0)</pre></div>allocate instrument header on stack </td> </tr> </table> <a name="a44" doxytag="instr.h::SND_SEQ_INSTR_ATYPE_ALIAS"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ATYPE_ALIAS 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> instrument alias </td> </tr> </table> <a name="a43" doxytag="instr.h::SND_SEQ_INSTR_ATYPE_DATA"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ATYPE_DATA 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> instrument data </td> </tr> </table> <a name="a69" doxytag="instr.h::SND_SEQ_INSTR_FREE_CMD_ALL"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_FREE_CMD_ALL 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> remove all matching instruments </td> </tr> </table> <a name="a71" doxytag="instr.h::SND_SEQ_INSTR_FREE_CMD_CLUSTER"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_FREE_CMD_CLUSTER 2 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> remove only cluster instruments </td> </tr> </table> <a name="a70" doxytag="instr.h::SND_SEQ_INSTR_FREE_CMD_PRIVATE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_FREE_CMD_PRIVATE 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> remove only private instruments </td> </tr> </table> <a name="a72" doxytag="instr.h::SND_SEQ_INSTR_FREE_CMD_SINGLE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_FREE_CMD_SINGLE 3 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> remove single instrument </td> </tr> </table> <a name="a66" doxytag="instr.h::SND_SEQ_INSTR_GET_CMD_FULL"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_GET_CMD_FULL 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get the full data stream </td> </tr> </table> <a name="a67" doxytag="instr.h::SND_SEQ_INSTR_GET_CMD_PARTIAL"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_GET_CMD_PARTIAL 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get the partial data stream </td> </tr> </table> <a name="a45" doxytag="instr.h::SND_SEQ_INSTR_ID_DLS1"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_DLS1 "DLS1" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> DLS1 </td> </tr> </table> <a name="a46" doxytag="instr.h::SND_SEQ_INSTR_ID_DLS2"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_DLS2 "DLS2" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> DLS2 </td> </tr> </table> <a name="a49" doxytag="instr.h::SND_SEQ_INSTR_ID_GUS_PATCH"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_GUS_PATCH "GUS Patch" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Gravis Patch </td> </tr> </table> <a name="a50" doxytag="instr.h::SND_SEQ_INSTR_ID_INTERWAVE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_INTERWAVE "Interwave FFFF" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> InterWave FFFF </td> </tr> </table> <a name="a51" doxytag="instr.h::SND_SEQ_INSTR_ID_OPL2_3"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_OPL2_3 "OPL2/3 FM" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> OPL2/3 FM </td> </tr> </table> <a name="a52" doxytag="instr.h::SND_SEQ_INSTR_ID_OPL4"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_OPL4 "OPL4" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> OPL4 </td> </tr> </table> <a name="a47" doxytag="instr.h::SND_SEQ_INSTR_ID_SIMPLE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_SIMPLE "Simple Wave" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Simple Wave </td> </tr> </table> <a name="a48" doxytag="instr.h::SND_SEQ_INSTR_ID_SOUNDFONT"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_ID_SOUNDFONT "SoundFont" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> SoundFont </td> </tr> </table> <a name="a64" doxytag="instr.h::SND_SEQ_INSTR_PUT_CMD_ADD"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_PUT_CMD_ADD 3 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> add one to the existing layer </td> </tr> </table> <a name="a61" doxytag="instr.h::SND_SEQ_INSTR_PUT_CMD_CREATE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_PUT_CMD_CREATE 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> create a new layer </td> </tr> </table> <a name="a63" doxytag="instr.h::SND_SEQ_INSTR_PUT_CMD_MODIFY"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_PUT_CMD_MODIFY 2 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> modify the existing layer </td> </tr> </table> <a name="a65" doxytag="instr.h::SND_SEQ_INSTR_PUT_CMD_REMOVE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_PUT_CMD_REMOVE 4 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> remove the layer </td> </tr> </table> <a name="a62" doxytag="instr.h::SND_SEQ_INSTR_PUT_CMD_REPLACE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_PUT_CMD_REPLACE 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> replace the old layer with new one </td> </tr> </table> <a name="a68" doxytag="instr.h::SND_SEQ_INSTR_QUERY_FOLLOW_ALIAS"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_QUERY_FOLLOW_ALIAS (1<<0) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> follow alias to get the instrument data </td> </tr> </table> <a name="a53" doxytag="instr.h::SND_SEQ_INSTR_TYPE0_DLS1"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE0_DLS1 (1<<0) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> MIDI DLS v1 </td> </tr> </table> <a name="a54" doxytag="instr.h::SND_SEQ_INSTR_TYPE0_DLS2"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE0_DLS2 (1<<1) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> MIDI DLS v2 </td> </tr> </table> <a name="a57" doxytag="instr.h::SND_SEQ_INSTR_TYPE1_GUS_PATCH"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE1_GUS_PATCH (1<<2) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Gravis UltraSound Patch </td> </tr> </table> <a name="a58" doxytag="instr.h::SND_SEQ_INSTR_TYPE1_INTERWAVE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE1_INTERWAVE (1<<3) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> InterWave FFFF </td> </tr> </table> <a name="a55" doxytag="instr.h::SND_SEQ_INSTR_TYPE1_SIMPLE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE1_SIMPLE (1<<0) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Simple Wave </td> </tr> </table> <a name="a56" doxytag="instr.h::SND_SEQ_INSTR_TYPE1_SOUNDFONT"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE1_SOUNDFONT (1<<1) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> EMU SoundFont </td> </tr> </table> <a name="a59" doxytag="instr.h::SND_SEQ_INSTR_TYPE2_OPL2_3"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE2_OPL2_3 (1<<0) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Yamaha OPL2/3 FM </td> </tr> </table> <a name="a60" doxytag="instr.h::SND_SEQ_INSTR_TYPE2_OPL4"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define SND_SEQ_INSTR_TYPE2_OPL4 (1<<1) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Yamaha OPL4 </td> </tr> </table> <hr><h2>Typedef Documentation</h2> <a name="a1" doxytag="instr.h::snd_instr_fm_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef void snd_instr_fm_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> FM instrument data structure </td> </tr> </table> <a name="a0" doxytag="instr.h::snd_instr_header_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct _snd_instr_header snd_instr_header_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> container for sequencer instrument header </td> </tr> </table> <a name="a3" doxytag="instr.h::snd_instr_iwffff_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef void snd_instr_iwffff_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> IW FFFF instrument data structure </td> </tr> </table> <a name="a2" doxytag="instr.h::snd_instr_simple_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef void snd_instr_simple_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> simple instrument data structure </td> </tr> </table> <a name="a4" doxytag="instr.h::snd_iwffff_handle_t"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct _snd_iwffff_handle snd_iwffff_handle_t </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> IW FFFF handler </td> </tr> </table> <hr><h2>Function Documentation</h2> <a name="a29" doxytag="instr.h::snd_instr_fm_convert_from_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_fm_convert_from_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>__data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>size</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> ** </td> <td class="mdname" nowrap> <em>simple</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the byte stream to FM instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>__data</em> </td><td> Input - byte stream containing FM instrument definition </td></tr> <tr><td valign=top><em>size</em> </td><td> Input - size of byte stream </td></tr> <tr><td valign=top><em>simple</em> </td><td> Result - allocated FM instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a28" doxytag="instr.h::snd_instr_fm_convert_to_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_fm_convert_to_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> * </td> <td class="mdname" nowrap> <em>fm</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> ** </td> <td class="mdname" nowrap> <em>__data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t * </td> <td class="mdname" nowrap> <em>__size</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the FM instrument to byte stream. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>fm</em> </td><td> FM instrument handle </td></tr> <tr><td valign=top><em>name</em> </td><td> FM instrument name </td></tr> <tr><td valign=top><em>__data</em> </td><td> Result - allocated byte stream </td></tr> <tr><td valign=top><em>__size</em> </td><td> Result - size of allocated byte stream </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a30" doxytag="instr.h::snd_instr_fm_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_fm_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a1">snd_instr_fm_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>fm</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Free the FM instrument handle. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>fm</em> </td><td> FM instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a8" doxytag="instr.h::snd_instr_header_copy"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_copy </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>dst</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>src</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> copy one <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> to another <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>dst</em> </td><td> pointer to destination </td></tr> <tr><td valign=top><em>src</em> </td><td> pointer to source </td></tr> </table> </dl> </td> </tr> </table> <a name="a7" doxytag="instr.h::snd_instr_header_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>obj</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> frees a previously allocated <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>pointer</em> </td><td> to object to free </td></tr> </table> </dl> </td> </tr> </table> <a name="a16" doxytag="instr.h::snd_instr_header_get_alias"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a>* snd_instr_header_get_alias </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the data alias of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the data alias id </dl> </td> </tr> </table> <a name="a10" doxytag="instr.h::snd_instr_header_get_cluster"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> snd_instr_header_get_cluster </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the cluster id of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> cluster id </dl> </td> </tr> </table> <a name="a11" doxytag="instr.h::snd_instr_header_get_cmd"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> unsigned int snd_instr_header_get_cmd </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the command of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> command type </dl> </td> </tr> </table> <a name="a17" doxytag="instr.h::snd_instr_header_get_data"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void* snd_instr_header_get_data </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the extra data pointer of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the extra data pointer </dl> </td> </tr> </table> <a name="a18" doxytag="instr.h::snd_instr_header_get_follow_alias"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_header_get_follow_alias </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the flag to follow alias of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 1 if follow alias </dl> </td> </tr> </table> <a name="a15" doxytag="instr.h::snd_instr_header_get_format"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const char* snd_instr_header_get_format </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the data format of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the data format string </dl> </td> </tr> </table> <a name="a9" doxytag="instr.h::snd_instr_header_get_id"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a>* snd_instr_header_get_id </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the instrument id of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> instrument id pointer </dl> </td> </tr> </table> <a name="a12" doxytag="instr.h::snd_instr_header_get_len"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> size_t snd_instr_header_get_len </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the length of extra data of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the length in bytes </dl> </td> </tr> </table> <a name="a13" doxytag="instr.h::snd_instr_header_get_name"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> const char* snd_instr_header_get_name </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the data name of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the name string </dl> </td> </tr> </table> <a name="a14" doxytag="instr.h::snd_instr_header_get_type"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_header_get_type </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>info</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Get the data type of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> the data type </dl> </td> </tr> </table> <a name="a6" doxytag="instr.h::snd_instr_header_malloc"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_header_malloc </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> ** </td> <td class="mdname" nowrap> <em>ptr</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>len</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> allocate an empty <a class="el" href="group___instrument.html#a0">snd_instr_header_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><em>ptr</em> </td><td> returned pointer </td></tr> <tr><td valign=top><em>len</em> </td><td> additional data length </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise negative error code </dl> </td> </tr> </table> <a name="a26" doxytag="instr.h::snd_instr_header_set_alias"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_alias </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> * </td> <td class="mdname" nowrap> <em>instr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the data alias id of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>instr</em> </td><td> alias instrument id </td></tr> </table> </dl> </td> </tr> </table> <a name="a20" doxytag="instr.h::snd_instr_header_set_cluster"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_cluster </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> </td> <td class="mdname" nowrap> <em>cluster</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the cluster id of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>cluster</em> </td><td> cluster id </td></tr> </table> </dl> </td> </tr> </table> <a name="a21" doxytag="instr.h::snd_instr_header_set_cmd"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_cmd </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>unsigned int </td> <td class="mdname" nowrap> <em>cmd</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the command of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>cmd</em> </td><td> command type </td></tr> </table> </dl> </td> </tr> </table> <a name="a27" doxytag="instr.h::snd_instr_header_set_follow_alias"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_follow_alias </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>val</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the flag to follow alias of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>val</em> </td><td> 1 if follow alias </td></tr> </table> </dl> </td> </tr> </table> <a name="a25" doxytag="instr.h::snd_instr_header_set_format"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_format </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>format</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the data format of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>format</em> </td><td> the data format string </td></tr> </table> </dl> </td> </tr> </table> <a name="a19" doxytag="instr.h::snd_instr_header_set_id"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_id </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="group___seq_events.html#a12">snd_seq_instr_t</a> * </td> <td class="mdname" nowrap> <em>id</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the instrument id of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>id</em> </td><td> instrument id pointer </td></tr> </table> </dl> </td> </tr> </table> <a name="a22" doxytag="instr.h::snd_instr_header_set_len"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_len </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>len</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the length of extra data of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>len</em> </td><td> size of extra data in bytes </td></tr> </table> </dl> </td> </tr> </table> <a name="a23" doxytag="instr.h::snd_instr_header_set_name"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_name </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the data name of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>name</em> </td><td> the name string </td></tr> </table> </dl> </td> </tr> </table> <a name="a24" doxytag="instr.h::snd_instr_header_set_type"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void snd_instr_header_set_type </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>info</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>type</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the data type of an instr_header container. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>info</em> </td><td> instr_header container </td></tr> <tr><td valign=top><em>type</em> </td><td> the data type </td></tr> </table> </dl> </td> </tr> </table> <a name="a5" doxytag="instr.h::snd_instr_header_sizeof"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> size_t snd_instr_header_sizeof </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> get size of <a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> <p> <dl compact><dt><b>Returns: </b></dt><dd> size in bytes </dl> </td> </tr> </table> <a name="a37" doxytag="instr.h::snd_instr_iwffff_close"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_close </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>handle</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Close and free IWFFFF handle. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>handle</em> </td><td> IWFFFF handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a40" doxytag="instr.h::snd_instr_iwffff_convert_from_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_convert_from_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>size</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> ** </td> <td class="mdname" nowrap> <em>iwffff</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the byte stream to IWFFFF instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>data</em> </td><td> Input - byte stream </td></tr> <tr><td valign=top><em>size</em> </td><td> Input - size of byte stream </td></tr> <tr><td valign=top><em>iwffff</em> </td><td> Result - allocated IWFFFF instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a39" doxytag="instr.h::snd_instr_iwffff_convert_to_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_convert_to_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> * </td> <td class="mdname" nowrap> <em>iwffff</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> ** </td> <td class="mdname" nowrap> <em>__data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t * </td> <td class="mdname" nowrap> <em>__size</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the IWFFFF instrument to byte stream. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>iwffff</em> </td><td> IWFFFF instrument handle </td></tr> <tr><td valign=top><em>name</em> </td><td> instrument name </td></tr> <tr><td valign=top><em>__data</em> </td><td> Result - allocated byte stream </td></tr> <tr><td valign=top><em>__size</em> </td><td> Result - size of allocated byte stream </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a41" doxytag="instr.h::snd_instr_iwffff_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>__instr</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Free IWFFFF instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>__instr</em> </td><td> IWFFFF instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a38" doxytag="instr.h::snd_instr_iwffff_load"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_load </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> * </td> <td class="mdname" nowrap> <em>iwf</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>bank</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>prg</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a3">snd_instr_iwffff_t</a> ** </td> <td class="mdname" nowrap> <em>__iwffff</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Load IWFFFF instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>iwf</em> </td><td> IWFFFF handle </td></tr> <tr><td valign=top><em>bank</em> </td><td> program bank number </td></tr> <tr><td valign=top><em>prg</em> </td><td> program number </td></tr> <tr><td valign=top><em>__iwffff</em> </td><td> allocated IWFFFF instrument </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a34" doxytag="instr.h::snd_instr_iwffff_open"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_open </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> ** </td> <td class="mdname" nowrap> <em>handle</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name_fff</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name_dat</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Open IWFFFF files. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>handle</em> </td><td> IWFFFF handle </td></tr> <tr><td valign=top><em>name_fff</em> </td><td> filename of an FFF (header) file </td></tr> <tr><td valign=top><em>name_dat</em> </td><td> filename of an DAT (data) file </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a35" doxytag="instr.h::snd_instr_iwffff_open_rom"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_open_rom </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> ** </td> <td class="mdname" nowrap> <em>handle</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>card</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>bank</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>file</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Open IWFFFF ROM. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>handle</em> </td><td> IWFFFF handle </td></tr> <tr><td valign=top><em>card</em> </td><td> card number </td></tr> <tr><td valign=top><em>bank</em> </td><td> ROM bank number (0-3) </td></tr> <tr><td valign=top><em>file</em> </td><td> ROM file number </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative <code>errno</code> code</dl>Opens <em>file</em> in <em>bank</em> in the ROM image of card <em>card</em>, and writes a handle pointer into <em>*handle</em>. </td> </tr> </table> <a name="a36" doxytag="instr.h::snd_instr_iwffff_open_rom_file"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_iwffff_open_rom_file </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a4">snd_iwffff_handle_t</a> ** </td> <td class="mdname" nowrap> <em>handle</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>bank</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>file</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Open IWFFFF ROM file. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>handle</em> </td><td> IWFFFF handle </td></tr> <tr><td valign=top><em>name</em> </td><td> IWFFFF ROM filename </td></tr> <tr><td valign=top><em>bank</em> </td><td> ROM bank number (0-3) </td></tr> <tr><td valign=top><em>file</em> </td><td> ROM file number </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a32" doxytag="instr.h::snd_instr_simple_convert_from_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_simple_convert_from_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> * </td> <td class="mdname" nowrap> <em>__data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t </td> <td class="mdname" nowrap> <em>size</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> ** </td> <td class="mdname" nowrap> <em>simple</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the byte stream to simple instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>__data</em> </td><td> byte stream </td></tr> <tr><td valign=top><em>size</em> </td><td> size of byte stream </td></tr> <tr><td valign=top><em>simple</em> </td><td> Result - simple instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a31" doxytag="instr.h::snd_instr_simple_convert_to_stream"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_simple_convert_to_stream </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> * </td> <td class="mdname" nowrap> <em>simple</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>name</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="group___instrument.html#a0">snd_instr_header_t</a> ** </td> <td class="mdname" nowrap> <em>__data</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>size_t * </td> <td class="mdname" nowrap> <em>__size</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Convert the simple instrument to byte stream. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>simple</em> </td><td> Simple instrument handle </td></tr> <tr><td valign=top><em>name</em> </td><td> Simple instrument name </td></tr> <tr><td valign=top><em>__data</em> </td><td> Result - allocated byte stream </td></tr> <tr><td valign=top><em>__size</em> </td><td> Result - size of allocated byte stream </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <a name="a33" doxytag="instr.h::snd_instr_simple_free"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int snd_instr_simple_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group___instrument.html#a2">snd_instr_simple_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>simple</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Free simple instrument. <p> <dl compact><dt><b>Parameters: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>simple</em> </td><td> Simple instrument handle </td></tr> </table> </dl><dl compact><dt><b>Returns: </b></dt><dd> 0 on success otherwise a negative error code </dl> </td> </tr> </table> <hr><address style="align: right;"><small>Generated on Wed Apr 2 16:06:39 2003 for ALSA project - the C library reference by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address> </body> </html>