<!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>Jack: types.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.2 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</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></div> <h1>types.h File Reference</h1><code>#include <limits.h></code><br> <p> <a href="types_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a0">JACK_MAX_FRAMES</a> ULONG_MAX;</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a1">JACK_DEFAULT_AUDIO_TYPE</a> "32 bit float mono audio"</td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef char </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a2">shm_name_t</a> [32]</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a3">jack_nframes_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef unsigned long long </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a4">jack_time_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef _jack_port </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a5">jack_port_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef _jack_client </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a6">jack_client_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a7">jack_port_id_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a8">JackProcessCallback</a> )(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a9">JackGraphOrderCallback</a> )(void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a10">JackXRunCallback</a> )(void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a11">JackBufferSizeCallback</a> )(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a12">JackSampleRateCallback</a> )(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef void(* </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a13">JackPortRegistrationCallback</a> )(<a class="el" href="types_8h.html#a7">jack_port_id_t</a> port, int, void *arg)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef float </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a14">jack_default_audio_sample_t</a></td></tr> <tr><td colspan=2><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="types_8h.html#a20">JackPortFlags</a> { <br> <a class="el" href="types_8h.html#a20a15">JackPortIsInput</a> = 0x1, <a class="el" href="types_8h.html#a20a16">JackPortIsOutput</a> = 0x2, <a class="el" href="types_8h.html#a20a17">JackPortIsPhysical</a> = 0x4, <a class="el" href="types_8h.html#a20a18">JackPortCanMonitor</a> = 0x8, <br> <a class="el" href="types_8h.html#a20a19">JackPortIsTerminal</a> = 0x10 <br> }</td></tr> </table> <hr><h2>Define Documentation</h2> <a name="a1" doxytag="types.h::JACK_DEFAULT_AUDIO_TYPE"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio" </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Used for the type argument of <a class="el" href="jack_8h.html#a15">jack_port_register()</a>. </td> </tr> </table> <a name="a0" doxytag="types.h::JACK_MAX_FRAMES"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define JACK_MAX_FRAMES ULONG_MAX; </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Maximum value that can be stored in jack_nframes_t </td> </tr> </table> <hr><h2>Typedef Documentation</h2> <a name="a6" doxytag="types.h::jack_client_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct _jack_client <a class="el" href="types_8h.html#a6">jack_client_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> jack_client_t is an opaque type. You may only access it using the API provided. </td> </tr> </table> <a name="a14" doxytag="types.h::jack_default_audio_sample_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef float <a class="el" href="types_8h.html#a14">jack_default_audio_sample_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> For convenience, use this typedef if you want to be able to change between float and double. You may want to typedef sample_t to jack_default_audio_sample_t in your application. </td> </tr> </table> <a name="a3" doxytag="types.h::jack_nframes_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef unsigned long <a class="el" href="types_8h.html#a3">jack_nframes_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Type used to represent sample frame counts. </td> </tr> </table> <a name="a7" doxytag="types.h::jack_port_id_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef unsigned long <a class="el" href="types_8h.html#a7">jack_port_id_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Ports have unique ids. A port registration callback is the only place you ever need to know their value. </td> </tr> </table> <a name="a5" doxytag="types.h::jack_port_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct _jack_port <a class="el" href="types_8h.html#a5">jack_port_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> jack_port_t is an opaque type. You may only access it using the API provided. </td> </tr> </table> <a name="a4" doxytag="types.h::jack_time_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef unsigned long long <a class="el" href="types_8h.html#a4">jack_time_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Type used to represent the value of free running monotonic clock with units of microseconds. </td> </tr> </table> <a name="a11" doxytag="types.h::JackBufferSizeCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="types_8h.html#a11">JackBufferSizeCallback</a>)(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called when the engine buffersize changes.<p> Note! Use of this callback function is deprecated!<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>nframes</em> </td><td>new engine buffer size </td></tr> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>zero on success, non-zero on error </dd></dl> </td> </tr> </table> <a name="a9" doxytag="types.h::JackGraphOrderCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="types_8h.html#a9">JackGraphOrderCallback</a>)(void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called whenever the processing graph is reordered.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>zero on success, non-zero on error </dd></dl> </td> </tr> </table> <a name="a13" doxytag="types.h::JackPortRegistrationCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef void(* <a class="el" href="types_8h.html#a13">JackPortRegistrationCallback</a>)(<a class="el" href="types_8h.html#a7">jack_port_id_t</a> port, int, void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called whenever a port is registered or unregistered.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure </td></tr> </table> </dl> </td> </tr> </table> <a name="a8" doxytag="types.h::JackProcessCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="types_8h.html#a8">JackProcessCallback</a>)(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called by the engine anytime there is work to be done.<p> <dl compact><dt><b>Precondition:</b></dt><dd>nframes == <a class="el" href="jack_8h.html#a48">jack_get_buffer_size()</a> <p> nframes == pow(2,x)</dd></dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>nframes</em> </td><td>number of frames to process </td></tr> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>zero on success, non-zero on error </dd></dl> </td> </tr> </table> <a name="a12" doxytag="types.h::JackSampleRateCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="types_8h.html#a12">JackSampleRateCallback</a>)(<a class="el" href="types_8h.html#a3">jack_nframes_t</a> nframes, void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called when the engine sample rate changes.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>nframes</em> </td><td>new engine sample rate </td></tr> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>zero on success, non-zero on error </dd></dl> </td> </tr> </table> <a name="a10" doxytag="types.h::JackXRunCallback"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="types_8h.html#a10">JackXRunCallback</a>)(void *arg) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Prototype for the client supplied function that is called whenever an xrun has occured.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>arg</em> </td><td>pointer to a client supplied structure</td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>zero on success, non-zero on error </dd></dl> </td> </tr> </table> <a name="a2" doxytag="types.h::shm_name_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef char <a class="el" href="types_8h.html#a2">shm_name_t</a>[32] </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Enumeration Type Documentation</h2> <a name="a20" doxytag="types.h::JackPortFlags"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum <a class="el" href="types_8h.html#a20">JackPortFlags</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> A port has a set of flags that are formed by AND-ing together the desired values from the list below. The flags "JackPortIsInput" and "JackPortIsOutput" are mutually exclusive and it is an error to use them both. <dl compact><dt><b>Enumeration values: </b></dt><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em><a name="a20a15" doxytag="JackPortIsInput"></a><em>JackPortIsInput</em></em> </td><td> if JackPortIsInput is set, then the port can receive data. </td></tr> <tr><td valign=top><em><a name="a20a16" doxytag="JackPortIsOutput"></a><em>JackPortIsOutput</em></em> </td><td> if JackPortIsOutput is set, then data can be read from the port. </td></tr> <tr><td valign=top><em><a name="a20a17" doxytag="JackPortIsPhysical"></a><em>JackPortIsPhysical</em></em> </td><td> if JackPortIsPhysical is set, then the port corresponds to some kind of physical I/O connector. </td></tr> <tr><td valign=top><em><a name="a20a18" doxytag="JackPortCanMonitor"></a><em>JackPortCanMonitor</em></em> </td><td> if JackPortCanMonitor is set, then a call to <a class="el" href="jack_8h.html#a39">jack_port_request_monitor()</a> makes sense.<p> Precisely what this means is dependent on the client. A typical result of it being called with TRUE as the second argument is that data that would be available from an output port (with JackPortIsPhysical set) is sent to a physical output connector as well, so that it can be heard/seen/whatever.<p> Clients that do not control physical interfaces should never create ports with this bit set. </td></tr> <tr><td valign=top><em><a name="a20a19" doxytag="JackPortIsTerminal"></a><em>JackPortIsTerminal</em></em> </td><td> JackPortIsTerminal means:<p> for an input port: the data received by the port will not be passed on or made available at any other port<p> for an output port: the data available at the port does not originate from any other port<p> Audio synthesizers, i/o h/w interface clients, HDR systems are examples of things that would set this flag for their ports. </td></tr> </table> </dl> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Wed Aug 6 04:09:58 2003 for Jack by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address> </body> </html>