<!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>instr.h Source File</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>instr.h</h1><div class="fragment"><pre>00001 00028 <span class="preprocessor">#ifndef __ALSA_INSTR_H</span> 00029 <span class="preprocessor"></span><span class="preprocessor">#define __ALSA_INSTR_H</span> 00030 <span class="preprocessor"></span> 00031 <span class="preprocessor">#ifdef __cplusplus</span> 00032 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { 00033 <span class="preprocessor">#endif</span> 00034 <span class="preprocessor"></span> 00041 <span class="comment">/* instrument get/put */</span> 00042 <a name="l00044"></a><a class="code" href="group___instrument.html#a0">00044</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_instr_header <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a>; 00045 00046 size_t <a class="code" href="group___instrument.html#a5">snd_instr_header_sizeof</a>(<span class="keywordtype">void</span>); <a name="l00047"></a><a class="code" href="group___instrument.html#a42">00047</a> <span class="preprocessor">#define snd_instr_header_alloca(ptr) \</span> 00048 <span class="preprocessor">do {\</span> 00049 <span class="preprocessor"> assert(ptr);\</span> 00050 <span class="preprocessor"> *ptr = (snd_instr_header_t *)alloca(snd_instr_header_sizeof());\</span> 00051 <span class="preprocessor"> memset(*ptr, 0, snd_instr_header_sizeof());\</span> 00052 <span class="preprocessor">} while (0) </span> 00053 <span class="preprocessor">int snd_instr_header_malloc(snd_instr_header_t **ptr, size_t len);</span> 00054 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a241">snd_instr_header_free</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *ptr); 00055 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a242">snd_instr_header_copy</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *dst, <span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *src); 00056 00057 <span class="keyword">const</span> <a class="code" href="structsnd__seq__instr.html">snd_seq_instr_t</a> *<a class="code" href="seq_8c.html#a243">snd_instr_header_get_id</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00058 <a class="code" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> <a class="code" href="seq_8c.html#a244">snd_instr_header_get_cluster</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00059 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="seq_8c.html#a245">snd_instr_header_get_cmd</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00060 size_t <a class="code" href="seq_8c.html#a246">snd_instr_header_get_len</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00061 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="seq_8c.html#a247">snd_instr_header_get_name</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00062 <span class="keywordtype">int</span> <a class="code" href="seq_8c.html#a248">snd_instr_header_get_type</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00063 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="seq_8c.html#a249">snd_instr_header_get_format</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00064 <span class="keyword">const</span> <a class="code" href="structsnd__seq__instr.html">snd_seq_instr_t</a> *<a class="code" href="seq_8c.html#a250">snd_instr_header_get_alias</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00065 <span class="keywordtype">void</span> *<a class="code" href="seq_8c.html#a251">snd_instr_header_get_data</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00066 <span class="keywordtype">int</span> <a class="code" href="seq_8c.html#a252">snd_instr_header_get_follow_alias</a>(<span class="keyword">const</span> <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info); 00067 00068 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a253">snd_instr_header_set_id</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keyword">const</span> <a class="code" href="structsnd__seq__instr.html">snd_seq_instr_t</a> *id); 00069 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a254">snd_instr_header_set_cluster</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <a class="code" href="group___seq_events.html#a11">snd_seq_instr_cluster_t</a> cluster); 00070 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a255">snd_instr_header_set_cmd</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cmd); 00071 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a256">snd_instr_header_set_len</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, size_t len); 00072 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a257">snd_instr_header_set_name</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *name); 00073 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a258">snd_instr_header_set_type</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keywordtype">int</span> type); 00074 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a259">snd_instr_header_set_format</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keyword">const</span> <span class="keywordtype">char</span> *format); 00075 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a260">snd_instr_header_set_alias</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keyword">const</span> <a class="code" href="structsnd__seq__instr.html">snd_seq_instr_t</a> *instr); 00076 <span class="keywordtype">void</span> <a class="code" href="seq_8c.html#a261">snd_instr_header_set_follow_alias</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *info, <span class="keywordtype">int</span> val); 00077 00084 <span class="preprocessor">#define SND_SEQ_INSTR_ATYPE_DATA 0 </span> 00085 <span class="preprocessor">#define SND_SEQ_INSTR_ATYPE_ALIAS 1 </span> 00088 <span class="preprocessor">#define SND_SEQ_INSTR_ID_DLS1 "DLS1" </span> <a name="l00089"></a><a class="code" href="group___instrument.html#a43">00089</a> <span class="preprocessor">#define SND_SEQ_INSTR_ID_DLS2 "DLS2" </span> <a name="l00090"></a><a class="code" href="group___instrument.html#a44">00090</a> <span class="preprocessor">#define SND_SEQ_INSTR_ID_SIMPLE "Simple Wave" </span> 00091 <span class="preprocessor">#define SND_SEQ_INSTR_ID_SOUNDFONT "SoundFont" </span> 00092 <span class="preprocessor">#define SND_SEQ_INSTR_ID_GUS_PATCH "GUS Patch" </span> <a name="l00093"></a><a class="code" href="group___instrument.html#a45">00093</a> <span class="preprocessor">#define SND_SEQ_INSTR_ID_INTERWAVE "Interwave FFFF" </span> <a name="l00094"></a><a class="code" href="group___instrument.html#a46">00094</a> <span class="preprocessor">#define SND_SEQ_INSTR_ID_OPL2_3 "OPL2/3 FM" </span> <a name="l00095"></a><a class="code" href="group___instrument.html#a47">00095</a> <span class="preprocessor">#define SND_SEQ_INSTR_ID_OPL4 "OPL4" </span> <a name="l00098"></a><a class="code" href="group___instrument.html#a50">00098</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE0_DLS1 (1<<0) </span> <a name="l00099"></a><a class="code" href="group___instrument.html#a51">00099</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE0_DLS2 (1<<1) </span> <a name="l00100"></a><a class="code" href="group___instrument.html#a52">00100</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE1_SIMPLE (1<<0) </span> 00101 <span class="preprocessor">#define SND_SEQ_INSTR_TYPE1_SOUNDFONT (1<<1) </span> 00102 <span class="preprocessor">#define SND_SEQ_INSTR_TYPE1_GUS_PATCH (1<<2) </span> <a name="l00103"></a><a class="code" href="group___instrument.html#a53">00103</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE1_INTERWAVE (1<<3) </span> <a name="l00104"></a><a class="code" href="group___instrument.html#a54">00104</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE2_OPL2_3 (1<<0) </span> <a name="l00105"></a><a class="code" href="group___instrument.html#a55">00105</a> <span class="preprocessor">#define SND_SEQ_INSTR_TYPE2_OPL4 (1<<1) </span> <a name="l00108"></a><a class="code" href="group___instrument.html#a58">00108</a> <span class="preprocessor">#define SND_SEQ_INSTR_PUT_CMD_CREATE 0 </span> <a name="l00109"></a><a class="code" href="group___instrument.html#a59">00109</a> <span class="preprocessor">#define SND_SEQ_INSTR_PUT_CMD_REPLACE 1 </span> <a name="l00110"></a><a class="code" href="group___instrument.html#a60">00110</a> <span class="preprocessor">#define SND_SEQ_INSTR_PUT_CMD_MODIFY 2 </span> 00111 <span class="preprocessor">#define SND_SEQ_INSTR_PUT_CMD_ADD 3 </span> 00112 <span class="preprocessor">#define SND_SEQ_INSTR_PUT_CMD_REMOVE 4 </span> <a name="l00115"></a><a class="code" href="group___instrument.html#a63">00115</a> <span class="preprocessor">#define SND_SEQ_INSTR_GET_CMD_FULL 0 </span> <a name="l00116"></a><a class="code" href="group___instrument.html#a64">00116</a> <span class="preprocessor">#define SND_SEQ_INSTR_GET_CMD_PARTIAL 1 </span> 00118 <span class="preprocessor"></span><span class="comment">/* query flags */</span> 00119 <span class="preprocessor">#define SND_SEQ_INSTR_QUERY_FOLLOW_ALIAS (1<<0) </span> 00122 <span class="preprocessor">#define SND_SEQ_INSTR_FREE_CMD_ALL 0 </span> 00123 <span class="preprocessor">#define SND_SEQ_INSTR_FREE_CMD_PRIVATE 1 </span> <a name="l00124"></a><a class="code" href="group___instrument.html#a68">00124</a> <span class="preprocessor">#define SND_SEQ_INSTR_FREE_CMD_CLUSTER 2 </span> 00125 <span class="preprocessor">#define SND_SEQ_INSTR_FREE_CMD_SINGLE 3 </span> 00133 <span class="preprocessor">typedef void snd_instr_fm_t;</span> 00134 <span class="preprocessor"></span> 00135 <span class="keywordtype">int</span> <a class="code" href="fm_8c.html#a1">snd_instr_fm_convert_to_stream</a>(<a class="code" href="group___instrument.html#a1">snd_instr_fm_t</a> *fm, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> **put, size_t *size); 00136 <span class="keywordtype">int</span> <a class="code" href="fm_8c.html#a2">snd_instr_fm_convert_from_stream</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="code" href="group___instrument.html#a1">snd_instr_fm_t</a> **fm); 00137 <span class="keywordtype">int</span> <a class="code" href="fm_8c.html#a0">snd_instr_fm_free</a>(<a class="code" href="group___instrument.html#a1">snd_instr_fm_t</a> *fm); <a name="l00138"></a><a class="code" href="group___instrument.html#a1">00138</a> 00139 00145 <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="group___instrument.html#a2">snd_instr_simple_t</a>; 00146 00147 <span class="keywordtype">int</span> <a class="code" href="instr_2simple_8c.html#a2">snd_instr_simple_convert_to_stream</a>(<a class="code" href="group___instrument.html#a2">snd_instr_simple_t</a> *simple, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> **put, size_t *size); 00148 <span class="keywordtype">int</span> <a class="code" href="instr_2simple_8c.html#a3">snd_instr_simple_convert_from_stream</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="code" href="group___instrument.html#a2">snd_instr_simple_t</a> **simple); 00149 <span class="keywordtype">int</span> <a class="code" href="instr_2simple_8c.html#a0">snd_instr_simple_free</a>(<a class="code" href="group___instrument.html#a2">snd_instr_simple_t</a> *simple); <a name="l00150"></a><a class="code" href="group___instrument.html#a2">00150</a> 00151 00157 <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="group___instrument.html#a3">snd_instr_iwffff_t</a>; 00159 <span class="keyword">typedef</span> <span class="keyword">struct </span>_snd_iwffff_handle <a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a>; 00160 00161 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a1">snd_instr_iwffff_open</a>(<a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name_fff, <span class="keyword">const</span> <span class="keywordtype">char</span> *name_dta); <a name="l00162"></a><a class="code" href="group___instrument.html#a3">00162</a> <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a2">snd_instr_iwffff_open_rom</a>(<a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, <span class="keywordtype">int</span> card, <span class="keywordtype">int</span> bank, <span class="keywordtype">int</span> file); 00163 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a3">snd_instr_iwffff_open_rom_file</a>(<a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a> **handle, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> bank, <span class="keywordtype">int</span> file); <a name="l00164"></a><a class="code" href="group___instrument.html#a4">00164</a> <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a4">snd_instr_iwffff_close</a>(<a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a> *handle); 00165 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a14">snd_instr_iwffff_load</a>(<a class="code" href="group___instrument.html#a4">snd_iwffff_handle_t</a> *handle, <span class="keywordtype">int</span> bank, <span class="keywordtype">int</span> prg, <a class="code" href="group___instrument.html#a3">snd_instr_iwffff_t</a> **iwffff); 00166 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a19">snd_instr_iwffff_convert_to_stream</a>(<a class="code" href="group___instrument.html#a3">snd_instr_iwffff_t</a> *iwffff, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> **data, size_t *size); 00167 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a20">snd_instr_iwffff_convert_from_stream</a>(<a class="code" href="group___instrument.html#a0">snd_instr_header_t</a> *data, size_t size, <a class="code" href="group___instrument.html#a3">snd_instr_iwffff_t</a> **iwffff); 00168 <span class="keywordtype">int</span> <a class="code" href="iwffff_8c.html#a8">snd_instr_iwffff_free</a>(<a class="code" href="group___instrument.html#a3">snd_instr_iwffff_t</a> *iwffff); 00169 00172 <span class="preprocessor">#ifdef __cplusplus</span> 00173 <span class="preprocessor"></span>} 00174 <span class="preprocessor">#endif</span> 00175 <span class="preprocessor"></span> 00176 <span class="preprocessor">#endif </span><span class="comment">/* __ALSA_INSTR_H */</span> 00177 </pre></div><hr><address style="align: right;"><small>Generated on Wed Apr 2 16:06:31 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>