<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libfluidsynth: shell.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <script type="text/javascript"> function hasClass(ele,cls) { return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); } function addClass(ele,cls) { if (!this.hasClass(ele,cls)) ele.className += " "+cls; } function removeClass(ele,cls) { if (hasClass(ele,cls)) { var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); ele.className=ele.className.replace(reg,' '); } } function toggleVisibility(linkObj) { var base = linkObj.getAttribute('id'); var summary = document.getElementById(base + '-summary'); var content = document.getElementById(base + '-content'); var trigger = document.getElementById(base + '-trigger'); if ( hasClass(linkObj,'closed') ) { summary.style.display = 'none'; content.style.display = 'block'; trigger.src = 'open.png'; removeClass(linkObj,'closed'); addClass(linkObj,'opened'); } else if ( hasClass(linkObj,'opened') ) { summary.style.display = 'block'; content.style.display = 'none'; trigger.src = 'closed.png'; removeClass(linkObj,'opened'); addClass(linkObj,'closed'); } return false; } </script> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>shell.h File Reference</h1> </div> </div> <div class="contents"> <p>Command shell interface. <a href="#_details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structfluid__cmd__t.html">fluid_cmd_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Shell command information structure. <a href="structfluid__cmd__t.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#ae64d5cbd0f810f56d971161c2b9ab6f0">fluid_cmd_func_t</a> )(void *data, int ac, char **av, <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> out)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Command handler function prototype. <a href="#ae64d5cbd0f810f56d971161c2b9ab6f0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#aa5eb4c4c2c9919e5fc13f32c5ab9ac3c">fluid_server_newclient_func_t</a> )(void *data, char *addr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Callback function which is executed for new server connections. <a href="#aa5eb4c4c2c9919e5fc13f32c5ab9ac3c"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#a436fa1df8d13a21321d39902b0d60208">fluid_istream_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a44ee5db5579f3aceac67eebbdc51e704">fluid_get_stdin</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get standard in stream handle. <a href="#a44ee5db5579f3aceac67eebbdc51e704"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a89b28d584a8b2b70dc15fd47743f55bb">fluid_get_stdout</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get standard output stream handle. <a href="#a89b28d584a8b2b70dc15fd47743f55bb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API char * </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a48045b619289754c5b4e4133b4fd8970">fluid_get_userconf</a> (char *buf, int len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the user specific FluidSynth command file name. <a href="#a48045b619289754c5b4e4133b4fd8970"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API char * </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#ac178bb25ddc28994932dd100e6b7ff3d">fluid_get_sysconf</a> (char *buf, int len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the system FluidSynth command file name. <a href="#ac178bb25ddc28994932dd100e6b7ff3d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <br class="typebreak"/> <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a1cd700a632702d6ec4abe41e03df9b37">new_fluid_cmd_handler</a> (<a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> *synth)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new command handler. <a href="#a1cd700a632702d6ec4abe41e03df9b37"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#ada6fe905ea5a045b1fce387d8731a5d9">delete_fluid_cmd_handler</a> (<a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Delete a command handler. <a href="#ada6fe905ea5a045b1fce387d8731a5d9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a521d1561adcc91a316ee64960e886685">fluid_cmd_handler_register</a> (<a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler, <a class="el" href="structfluid__cmd__t.html">fluid_cmd_t</a> *cmd)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Register a new command to the handler. <a href="#a521d1561adcc91a316ee64960e886685"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a3da48544192a6ad8c7d4a1389d12b501">fluid_cmd_handler_unregister</a> (<a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler, const char *cmd)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unregister a command from a command handler. <a href="#a3da48544192a6ad8c7d4a1389d12b501"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a1e023c46fcfca3fb0919cdd4b6a853be">fluid_command</a> (<a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler, const char *cmd, <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> out)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Process a string command. <a href="#a1e023c46fcfca3fb0919cdd4b6a853be"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#afd3bdddaa6d48706f601527d59ae6f57">fluid_source</a> (<a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler, const char *filename)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Execute shell commands in a file. <a href="#afd3bdddaa6d48706f601527d59ae6f57"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#af6007f623e52fc737fdfc51ca812aeee">fluid_usershell</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings, <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A convenience function to create a shell interfacing to standard input/output console streams. <a href="#af6007f623e52fc737fdfc51ca812aeee"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#ae711b266ae10eb6f4d4d6443f609e033">fluid_shell_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a7bee4ea6c9f9e326629d7523749bf057">new_fluid_shell</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings, <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> *handler, <a class="el" href="types_8h.html#a436fa1df8d13a21321d39902b0d60208">fluid_istream_t</a> in, <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> out, int thread)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new FluidSynth command shell. <a href="#a7bee4ea6c9f9e326629d7523749bf057"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a4b5cc4093bc65190379a73b570db03fa">delete_fluid_shell</a> (<a class="el" href="types_8h.html#ae711b266ae10eb6f4d4d6443f609e033">fluid_shell_t</a> *shell)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Delete a FluidSynth command shell. <a href="#a4b5cc4093bc65190379a73b570db03fa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API <a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a9c3112867149e88cef2e24acef57a4d3">new_fluid_server</a> (<a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> *settings, <a class="el" href="shell_8h.html#aa5eb4c4c2c9919e5fc13f32c5ab9ac3c">fluid_server_newclient_func_t</a> func, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new TCP/IP command shell server. <a href="#a9c3112867149e88cef2e24acef57a4d3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API void </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#a95a04ad85b32b96d31b0101326c166db">delete_fluid_server</a> (<a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a> *server)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Delete a TCP/IP shell server. <a href="#a95a04ad85b32b96d31b0101326c166db"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">FLUIDSYNTH_API int </td><td class="memItemRight" valign="bottom"><a class="el" href="shell_8h.html#afc66f2b19f8456f59341b8c8fa7c235f">fluid_server_join</a> (<a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a> *server)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Join a shell server thread (wait until it quits). <a href="#afc66f2b19f8456f59341b8c8fa7c235f"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Command shell interface. </p> <p>The shell interface allows you to send simple textual commands to the synthesizer, to parse a command file, or to read commands from the stdin or other input streams. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="ae64d5cbd0f810f56d971161c2b9ab6f0"></a><!-- doxytag: member="shell.h::fluid_cmd_func_t" ref="ae64d5cbd0f810f56d971161c2b9ab6f0" args=")(void *data, int ac, char **av, fluid_ostream_t out)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef int(* <a class="el" href="shell_8h.html#ae64d5cbd0f810f56d971161c2b9ab6f0">fluid_cmd_func_t</a>)(void *data, int ac, char **av, <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> out)</td> </tr> </table> </div> <div class="memdoc"> <p>Command handler function prototype. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>User defined data </td></tr> <tr><td valign="top"></td><td valign="top"><em>ac</em> </td><td>Argument count </td></tr> <tr><td valign="top"></td><td valign="top"><em>av</em> </td><td>Array of string arguments </td></tr> <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>Output stream to send response to </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Should return <a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl> </div> </div> <a class="anchor" id="aa5eb4c4c2c9919e5fc13f32c5ab9ac3c"></a><!-- doxytag: member="shell.h::fluid_server_newclient_func_t" ref="aa5eb4c4c2c9919e5fc13f32c5ab9ac3c" args=")(void *data, char *addr)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a>*(* <a class="el" href="shell_8h.html#aa5eb4c4c2c9919e5fc13f32c5ab9ac3c">fluid_server_newclient_func_t</a>)(void *data, char *addr)</td> </tr> </table> </div> <div class="memdoc"> <p>Callback function which is executed for new server connections. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>User defined data supplied in call to <a class="el" href="shell_8h.html#a9c3112867149e88cef2e24acef57a4d3" title="Create a new TCP/IP command shell server.">new_fluid_server()</a> </td></tr> <tr><td valign="top"></td><td valign="top"><em>addr</em> </td><td>The IP address of the client (can be NULL) </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Should return a new command handler for the connection (<a class="el" href="shell_8h.html#a1cd700a632702d6ec4abe41e03df9b37" title="Create a new command handler.">new_fluid_cmd_handler()</a>). </dd></dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a44ee5db5579f3aceac67eebbdc51e704"></a><!-- doxytag: member="shell.h::fluid_get_stdin" ref="a44ee5db5579f3aceac67eebbdc51e704" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a436fa1df8d13a21321d39902b0d60208">fluid_istream_t</a> fluid_get_stdin </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get standard in stream handle. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Standard in stream. </dd></dl> <p>References <a class="el" href="shell_8h.html#a44ee5db5579f3aceac67eebbdc51e704">fluid_get_stdin()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a44ee5db5579f3aceac67eebbdc51e704">fluid_get_stdin()</a>, and <a class="el" href="shell_8h.html#af6007f623e52fc737fdfc51ca812aeee">fluid_usershell()</a>.</p> </div> </div> <a class="anchor" id="a89b28d584a8b2b70dc15fd47743f55bb"></a><!-- doxytag: member="shell.h::fluid_get_stdout" ref="a89b28d584a8b2b70dc15fd47743f55bb" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> fluid_get_stdout </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get standard output stream handle. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Standard out stream. </dd></dl> <p>References <a class="el" href="shell_8h.html#a89b28d584a8b2b70dc15fd47743f55bb">fluid_get_stdout()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a89b28d584a8b2b70dc15fd47743f55bb">fluid_get_stdout()</a>, <a class="el" href="shell_8h.html#afd3bdddaa6d48706f601527d59ae6f57">fluid_source()</a>, and <a class="el" href="shell_8h.html#af6007f623e52fc737fdfc51ca812aeee">fluid_usershell()</a>.</p> </div> </div> <a class="anchor" id="a48045b619289754c5b4e4133b4fd8970"></a><!-- doxytag: member="shell.h::fluid_get_userconf" ref="a48045b619289754c5b4e4133b4fd8970" args="(char *buf, int len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API char* fluid_get_userconf </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the user specific FluidSynth command file name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>Caller supplied string buffer to store file name to. </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Length of <em>buf</em> </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Returns <em>buf</em> pointer or NULL if no user command file for this system type. </dd></dl> <p>References <a class="el" href="shell_8h.html#a48045b619289754c5b4e4133b4fd8970">fluid_get_userconf()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a48045b619289754c5b4e4133b4fd8970">fluid_get_userconf()</a>.</p> </div> </div> <a class="anchor" id="ac178bb25ddc28994932dd100e6b7ff3d"></a><!-- doxytag: member="shell.h::fluid_get_sysconf" ref="ac178bb25ddc28994932dd100e6b7ff3d" args="(char *buf, int len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API char* fluid_get_sysconf </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the system FluidSynth command file name. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>Caller supplied string buffer to store file name to. </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Length of <em>buf</em> </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Returns <em>buf</em> pointer or NULL if no system command file for this system type. </dd></dl> <p>References <a class="el" href="shell_8h.html#ac178bb25ddc28994932dd100e6b7ff3d">fluid_get_sysconf()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#ac178bb25ddc28994932dd100e6b7ff3d">fluid_get_sysconf()</a>.</p> </div> </div> <a class="anchor" id="a1cd700a632702d6ec4abe41e03df9b37"></a><!-- doxytag: member="shell.h::new_fluid_cmd_handler" ref="a1cd700a632702d6ec4abe41e03df9b37" args="(fluid_synth_t *synth)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a>* new_fluid_cmd_handler </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#ae265f10ae174a13afe010de50d87e1a4">fluid_synth_t</a> * </td> <td class="paramname"> <em>synth</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new command handler. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>synth</em> </td><td>If not NULL, all the default synthesizer commands will be added to the new handler. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>New command handler </dd></dl> <p>References <a class="el" href="structfluid__cmd__t.html#aee54db0099d96fc76a1b26f4a2a3bda7">fluid_cmd_t::data</a>, <a class="el" href="shell_8h.html#a521d1561adcc91a316ee64960e886685">fluid_cmd_handler_register()</a>, <a class="el" href="structfluid__cmd__t.html#a56b4e96adbae7d91c1d83cad7ca679c1">fluid_cmd_t::name</a>, and <a class="el" href="shell_8h.html#a1cd700a632702d6ec4abe41e03df9b37">new_fluid_cmd_handler()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a1cd700a632702d6ec4abe41e03df9b37">new_fluid_cmd_handler()</a>.</p> </div> </div> <a class="anchor" id="ada6fe905ea5a045b1fce387d8731a5d9"></a><!-- doxytag: member="shell.h::delete_fluid_cmd_handler" ref="ada6fe905ea5a045b1fce387d8731a5d9" args="(fluid_cmd_handler_t *handler)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API void delete_fluid_cmd_handler </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Delete a command handler. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler to delete </td></tr> </table> </dd> </dl> <p>References <a class="el" href="shell_8h.html#ada6fe905ea5a045b1fce387d8731a5d9">delete_fluid_cmd_handler()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#ada6fe905ea5a045b1fce387d8731a5d9">delete_fluid_cmd_handler()</a>.</p> </div> </div> <a class="anchor" id="a521d1561adcc91a316ee64960e886685"></a><!-- doxytag: member="shell.h::fluid_cmd_handler_register" ref="a521d1561adcc91a316ee64960e886685" args="(fluid_cmd_handler_t *handler, fluid_cmd_t *cmd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API int fluid_cmd_handler_register </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structfluid__cmd__t.html">fluid_cmd_t</a> * </td> <td class="paramname"> <em>cmd</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Register a new command to the handler. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler instance </td></tr> <tr><td valign="top"></td><td valign="top"><em>cmd</em> </td><td>Command info (gets copied) </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> if command was inserted, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl> <p>References <a class="el" href="shell_8h.html#a521d1561adcc91a316ee64960e886685">fluid_cmd_handler_register()</a>, and <a class="el" href="structfluid__cmd__t.html#a56b4e96adbae7d91c1d83cad7ca679c1">fluid_cmd_t::name</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a521d1561adcc91a316ee64960e886685">fluid_cmd_handler_register()</a>, and <a class="el" href="shell_8h.html#a1cd700a632702d6ec4abe41e03df9b37">new_fluid_cmd_handler()</a>.</p> </div> </div> <a class="anchor" id="a3da48544192a6ad8c7d4a1389d12b501"></a><!-- doxytag: member="shell.h::fluid_cmd_handler_unregister" ref="a3da48544192a6ad8c7d4a1389d12b501" args="(fluid_cmd_handler_t *handler, const char *cmd)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API int fluid_cmd_handler_unregister </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>cmd</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Unregister a command from a command handler. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler instance </td></tr> <tr><td valign="top"></td><td valign="top"><em>cmd</em> </td><td>Name of the command </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if command was found and unregistered, FALSE otherwise </dd></dl> <p>References <a class="el" href="shell_8h.html#a3da48544192a6ad8c7d4a1389d12b501">fluid_cmd_handler_unregister()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a3da48544192a6ad8c7d4a1389d12b501">fluid_cmd_handler_unregister()</a>.</p> </div> </div> <a class="anchor" id="a1e023c46fcfca3fb0919cdd4b6a853be"></a><!-- doxytag: member="shell.h::fluid_command" ref="a1e023c46fcfca3fb0919cdd4b6a853be" args="(fluid_cmd_handler_t *handler, const char *cmd, fluid_ostream_t out)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API int fluid_command </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>cmd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> </td> <td class="paramname"> <em>out</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Process a string command. </p> <p>NOTE: FluidSynth 1.0.8 and above no longer modifies the 'cmd' string. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>FluidSynth command handler </td></tr> <tr><td valign="top"></td><td valign="top"><em>cmd</em> </td><td>Command string (NOTE: Gets modified by FluidSynth prior to 1.0.8) </td></tr> <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>Output stream to display command response to </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Integer value corresponding to: -1 on command error, 0 on success, 1 if 'cmd' is a comment or is empty and -2 if quit was issued </dd></dl> <p>References <a class="el" href="shell_8h.html#a1e023c46fcfca3fb0919cdd4b6a853be">fluid_command()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a1e023c46fcfca3fb0919cdd4b6a853be">fluid_command()</a>.</p> </div> </div> <a class="anchor" id="afd3bdddaa6d48706f601527d59ae6f57"></a><!-- doxytag: member="shell.h::fluid_source" ref="afd3bdddaa6d48706f601527d59ae6f57" args="(fluid_cmd_handler_t *handler, const char *filename)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API int fluid_source </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>filename</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Execute shell commands in a file. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler callback </td></tr> <tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>File name </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on success, a value >1 on error </dd></dl> <p>References <a class="el" href="shell_8h.html#a89b28d584a8b2b70dc15fd47743f55bb">fluid_get_stdout()</a>, and <a class="el" href="shell_8h.html#afd3bdddaa6d48706f601527d59ae6f57">fluid_source()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#afd3bdddaa6d48706f601527d59ae6f57">fluid_source()</a>.</p> </div> </div> <a class="anchor" id="af6007f623e52fc737fdfc51ca812aeee"></a><!-- doxytag: member="shell.h::fluid_usershell" ref="af6007f623e52fc737fdfc51ca812aeee" args="(fluid_settings_t *settings, fluid_cmd_handler_t *handler)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API void fluid_usershell </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> * </td> <td class="paramname"> <em>settings</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>A convenience function to create a shell interfacing to standard input/output console streams. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>settings</em> </td><td>Settings instance for the shell </td></tr> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler callback </td></tr> </table> </dd> </dl> <p>References <a class="el" href="shell_8h.html#a44ee5db5579f3aceac67eebbdc51e704">fluid_get_stdin()</a>, <a class="el" href="shell_8h.html#a89b28d584a8b2b70dc15fd47743f55bb">fluid_get_stdout()</a>, and <a class="el" href="shell_8h.html#af6007f623e52fc737fdfc51ca812aeee">fluid_usershell()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#af6007f623e52fc737fdfc51ca812aeee">fluid_usershell()</a>.</p> </div> </div> <a class="anchor" id="a7bee4ea6c9f9e326629d7523749bf057"></a><!-- doxytag: member="shell.h::new_fluid_shell" ref="a7bee4ea6c9f9e326629d7523749bf057" args="(fluid_settings_t *settings, fluid_cmd_handler_t *handler, fluid_istream_t in, fluid_ostream_t out, int thread)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#ae711b266ae10eb6f4d4d6443f609e033">fluid_shell_t</a>* new_fluid_shell </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> * </td> <td class="paramname"> <em>settings</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a2fd4a191f31693538cbfb678b1797a3a">fluid_cmd_handler_t</a> * </td> <td class="paramname"> <em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a436fa1df8d13a21321d39902b0d60208">fluid_istream_t</a> </td> <td class="paramname"> <em>in</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#a6d8c441b84ab0430e358438cee876c69">fluid_ostream_t</a> </td> <td class="paramname"> <em>out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>thread</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new FluidSynth command shell. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>settings</em> </td><td>Setting parameters to use with the shell </td></tr> <tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>Command handler </td></tr> <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>Input stream </td></tr> <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>Output stream </td></tr> <tr><td valign="top"></td><td valign="top"><em>thread</em> </td><td>TRUE if shell should be run in a separate thread, FALSE to run it in the current thread (function blocks until "quit") </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>New shell instance or NULL on error </dd></dl> <p>References <a class="el" href="shell_8h.html#a4b5cc4093bc65190379a73b570db03fa">delete_fluid_shell()</a>, <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9ea62d9ddd89d0a853606ce38d195daa99a">FLUID_PANIC</a>, and <a class="el" href="shell_8h.html#a7bee4ea6c9f9e326629d7523749bf057">new_fluid_shell()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a7bee4ea6c9f9e326629d7523749bf057">new_fluid_shell()</a>.</p> </div> </div> <a class="anchor" id="a4b5cc4093bc65190379a73b570db03fa"></a><!-- doxytag: member="shell.h::delete_fluid_shell" ref="a4b5cc4093bc65190379a73b570db03fa" args="(fluid_shell_t *shell)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API void delete_fluid_shell </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#ae711b266ae10eb6f4d4d6443f609e033">fluid_shell_t</a> * </td> <td class="paramname"> <em>shell</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Delete a FluidSynth command shell. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>shell</em> </td><td>Command shell instance </td></tr> </table> </dd> </dl> <p>References <a class="el" href="shell_8h.html#a4b5cc4093bc65190379a73b570db03fa">delete_fluid_shell()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a4b5cc4093bc65190379a73b570db03fa">delete_fluid_shell()</a>, and <a class="el" href="shell_8h.html#a7bee4ea6c9f9e326629d7523749bf057">new_fluid_shell()</a>.</p> </div> </div> <a class="anchor" id="a9c3112867149e88cef2e24acef57a4d3"></a><!-- doxytag: member="shell.h::new_fluid_server" ref="a9c3112867149e88cef2e24acef57a4d3" args="(fluid_settings_t *settings, fluid_server_newclient_func_t func, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API <a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a>* new_fluid_server </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#aa363402d3c77333b0f070ba531d034ba">fluid_settings_t</a> * </td> <td class="paramname"> <em>settings</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="shell_8h.html#aa5eb4c4c2c9919e5fc13f32c5ab9ac3c">fluid_server_newclient_func_t</a> </td> <td class="paramname"> <em>newclient</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new TCP/IP command shell server. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>settings</em> </td><td>Settings instance to use for the shell </td></tr> <tr><td valign="top"></td><td valign="top"><em>newclient</em> </td><td>Callback function to call for each new client connection </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>User defined data to pass to <em>newclient</em> callback </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>New shell server instance or NULL on error </dd></dl> <p>References <a class="el" href="log_8h.html#aa341232c15addd9c336131984840ed9eabc0ff48d192b3b0fc721946ccf095d25">FLUID_ERR</a>, <a class="el" href="settings_8h.html#a4a570095ef3de25e77f4dd9c574bc56c">fluid_settings_getint()</a>, and <a class="el" href="shell_8h.html#a9c3112867149e88cef2e24acef57a4d3">new_fluid_server()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a9c3112867149e88cef2e24acef57a4d3">new_fluid_server()</a>.</p> </div> </div> <a class="anchor" id="a95a04ad85b32b96d31b0101326c166db"></a><!-- doxytag: member="shell.h::delete_fluid_server" ref="a95a04ad85b32b96d31b0101326c166db" args="(fluid_server_t *server)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API void delete_fluid_server </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a> * </td> <td class="paramname"> <em>server</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Delete a TCP/IP shell server. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>server</em> </td><td>Shell server instance </td></tr> </table> </dd> </dl> <p>References <a class="el" href="shell_8h.html#a95a04ad85b32b96d31b0101326c166db">delete_fluid_server()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#a95a04ad85b32b96d31b0101326c166db">delete_fluid_server()</a>.</p> </div> </div> <a class="anchor" id="afc66f2b19f8456f59341b8c8fa7c235f"></a><!-- doxytag: member="shell.h::fluid_server_join" ref="afc66f2b19f8456f59341b8c8fa7c235f" args="(fluid_server_t *server)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">FLUIDSYNTH_API int fluid_server_join </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#a314a569c9a9ae8f99831472efda31141">fluid_server_t</a> * </td> <td class="paramname"> <em>server</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Join a shell server thread (wait until it quits). </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>server</em> </td><td>Shell server instance </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="misc_8h.html#ae4efb1c3ce0d550c922504adfb0fb886" title="Value that indicates success, used by most libfluidsynth functions.">FLUID_OK</a> on success, <a class="el" href="misc_8h.html#a90e8bdbc5a507bbfa5c45bac85a63a61" title="Value that indicates failure, used by most libfluidsynth functions.">FLUID_FAILED</a> otherwise </dd></dl> <p>References <a class="el" href="shell_8h.html#afc66f2b19f8456f59341b8c8fa7c235f">fluid_server_join()</a>.</p> <p>Referenced by <a class="el" href="shell_8h.html#afc66f2b19f8456f59341b8c8fa7c235f">fluid_server_join()</a>.</p> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Oct 12 2010 for libfluidsynth by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>