1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>JACK-AUDIO-CONNECTION-KIT: Creating & manipulating clients</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.6 -->
9
<h1>Creating & manipulating clients</h1><table border="0" cellpadding="0" cellspacing="0">
11
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
12
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g28977ad0cccf08cd600dd220e2b1c880">jack_client_open</a> (const char *client_name, <a class="el" href="types_8h.html#0ef5011e5aab7655ad0d64babf7d91f0">jack_options_t</a> options, <a class="el" href="types_8h.html#49053418570427a7a99d1bb45fb43f38">jack_status_t</a> *status,...)</td></tr>
14
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g705aa8159e65464dc7e9cf65fc451b90">jack_client_new</a> (const char *client_name)</td></tr>
16
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g1a7d19cde344c471ff9a2ac946dc4407">jack_client_close</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *<a class="el" href="simple__client_8c.html#fed7053cd7bdd1cce33dec7213f340ea">client</a>)</td></tr>
18
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g841193e023f92f0bcde9f0ee1c9444e5">jack_client_name_size</a> (void)</td></tr>
20
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#gbece75a6af78b08cae1bc11ab70c51c1">jack_get_client_name</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *<a class="el" href="simple__client_8c.html#fed7053cd7bdd1cce33dec7213f340ea">client</a>)</td></tr>
22
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g6a908a02427cdffb215d71a53ea74be3">jack_internal_client_new</a> (const char *client_name, const char *load_name, const char *load_init)</td></tr>
24
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g434a3fd1a07651586cbf77c3e1bf3ac7">jack_internal_client_close</a> (const char *client_name)</td></tr>
26
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g0033c673e8583f3166ca334b3e3dc751">jack_activate</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *<a class="el" href="simple__client_8c.html#fed7053cd7bdd1cce33dec7213f340ea">client</a>)</td></tr>
28
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g8ed6f653cf1a30bf22dc5a1b2c3c9144">jack_deactivate</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *<a class="el" href="simple__client_8c.html#fed7053cd7bdd1cce33dec7213f340ea">client</a>)</td></tr>
30
<tr><td class="memItemLeft" nowrap align="right" valign="top">pthread_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ClientFunctions.html#g66fa94a9d91d9acd75a7947a503ffd2a">jack_client_thread_id</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *)</td></tr>
33
<hr><a name="_details"></a><h2>Detailed Description</h2>
34
Note: More documentation can be found in <a class="el" href="types_8h.html">jack/types.h</a>. <hr><h2>Function Documentation</h2>
35
<a class="anchor" name="g0033c673e8583f3166ca334b3e3dc751"></a><!-- doxytag: member="jack.h::jack_activate" ref="g0033c673e8583f3166ca334b3e3dc751" args="(jack_client_t *client)" -->
37
<div class="memproto">
38
<table class="memname">
40
<td class="memname">int jack_activate </td>
42
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
43
<td class="paramname"> <em>client</em> </td>
44
<td> ) </td>
52
Tell the Jack server that the program is ready to start processing audio.<p>
53
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, otherwise a non-zero error code </dd></dl>
55
<p>Referenced by <a class="el" href="inprocess_8c-source.html#l00060">jack_initialize()</a>, and <a class="el" href="simple__client_8c-source.html#l00051">main()</a>.</p>
59
<a class="anchor" name="g1a7d19cde344c471ff9a2ac946dc4407"></a><!-- doxytag: member="jack.h::jack_client_close" ref="g1a7d19cde344c471ff9a2ac946dc4407" args="(jack_client_t *client)" -->
61
<div class="memproto">
62
<table class="memname">
64
<td class="memname">int jack_client_close </td>
66
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
67
<td class="paramname"> <em>client</em> </td>
68
<td> ) </td>
76
Disconnects an external client from a JACK server.<p>
77
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, otherwise a non-zero error code </dd></dl>
79
<p>Referenced by <a class="el" href="simple__client_8c-source.html#l00051">main()</a>.</p>
83
<a class="anchor" name="g841193e023f92f0bcde9f0ee1c9444e5"></a><!-- doxytag: member="jack.h::jack_client_name_size" ref="g841193e023f92f0bcde9f0ee1c9444e5" args="(void)" -->
85
<div class="memproto">
86
<table class="memname">
88
<td class="memname">int jack_client_name_size </td>
90
<td class="paramtype">void </td>
91
<td class="paramname"> </td>
92
<td> ) </td>
100
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the maximum number of characters in a JACK client name including the final NULL character. This value is a constant. </dd></dl>
104
<a class="anchor" name="g705aa8159e65464dc7e9cf65fc451b90"></a><!-- doxytag: member="jack.h::jack_client_new" ref="g705aa8159e65464dc7e9cf65fc451b90" args="(const char *client_name)" -->
105
<div class="memitem">
106
<div class="memproto">
107
<table class="memname">
109
<td class="memname"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a>* jack_client_new </td>
111
<td class="paramtype">const char * </td>
112
<td class="paramname"> <em>client_name</em> </td>
113
<td> ) </td>
121
<b>THIS FUNCTION IS DEPRECATED AND SHOULD NOT BE USED IN NEW JACK CLIENTS</b>
124
<a class="anchor" name="g28977ad0cccf08cd600dd220e2b1c880"></a><!-- doxytag: member="jack.h::jack_client_open" ref="g28977ad0cccf08cd600dd220e2b1c880" args="(const char *client_name, jack_options_t options, jack_status_t *status,...)" -->
125
<div class="memitem">
126
<div class="memproto">
127
<table class="memname">
129
<td class="memname"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a>* jack_client_open </td>
131
<td class="paramtype">const char * </td>
132
<td class="paramname"> <em>client_name</em>, </td>
135
<td class="paramkey"></td>
137
<td class="paramtype"><a class="el" href="types_8h.html#0ef5011e5aab7655ad0d64babf7d91f0">jack_options_t</a> </td>
138
<td class="paramname"> <em>options</em>, </td>
141
<td class="paramkey"></td>
143
<td class="paramtype"><a class="el" href="types_8h.html#49053418570427a7a99d1bb45fb43f38">jack_status_t</a> * </td>
144
<td class="paramname"> <em>status</em>, </td>
147
<td class="paramkey"></td>
149
<td class="paramtype"> </td>
150
<td class="paramname"> <em>...</em></td><td> </td>
155
<td></td><td></td><td></td>
162
Open an external client session with a JACK server. This interface is more complex but more powerful than <a class="el" href="group__ClientFunctions.html#g705aa8159e65464dc7e9cf65fc451b90">jack_client_new()</a>. With it, clients may choose which of several servers to connect, and control whether and how to start the server automatically, if it was not already running. There is also an option for JACK to generate a unique client name, when necessary.<p>
163
<dl compact><dt><b>Parameters:</b></dt><dd>
164
<table border="0" cellspacing="2" cellpadding="0">
165
<tr><td valign="top"></td><td valign="top"><em>client_name</em> </td><td>of at most <a class="el" href="group__ClientFunctions.html#g841193e023f92f0bcde9f0ee1c9444e5">jack_client_name_size()</a> characters. The name scope is local to each server. Unless forbidden by the <a class="el" href="types_8h.html#396617de2ef101891c51346f408a375e352b176ffa092ec946a06b707f6aa21b">JackUseExactName</a> option, the server will modify this name to create a unique variant, if needed.</td></tr>
166
<tr><td valign="top"></td><td valign="top"><em>options</em> </td><td>formed by OR-ing together <a class="el" href="types_8h.html#396617de2ef101891c51346f408a375e">JackOptions</a> bits. Only the <a class="el" href="types_8h.html#b39e7f78dba631f3c0d34ac4cddcf80f">JackOpenOptions</a> bits are allowed.</td></tr>
167
<tr><td valign="top"></td><td valign="top"><em>status</em> </td><td>(if non-NULL) an address for JACK to return information from the open operation. This status word is formed by OR-ing together the relevant <a class="el" href="types_8h.html#af80297bce18297403b99e3d320ac8a8">JackStatus</a> bits.</td></tr>
170
<b>Optional parameters:</b> depending on corresponding [<em>options</em> bits] additional parameters may follow <em>status</em> (in this order).<p>
172
<li>[<a class="el" href="types_8h.html#396617de2ef101891c51346f408a375e348557bfdc579daed2e35cc41c4f09c7">JackServerName</a>] <em>(char *) server_name</em> selects from among several possible concurrent server instances. Server names are unique to each user. If unspecified, use "default" unless $JACK_DEFAULT_SERVER is defined in the process environment.</li>
174
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Opaque client handle if successful. If this is NULL, the open operation failed, <em>*status</em> includes <a class="el" href="types_8h.html#af80297bce18297403b99e3d320ac8a8354fbb027d989173f50921d239f3812b">JackFailure</a> and the caller is not a JACK client. </dd></dl>
176
<p>Referenced by <a class="el" href="simple__client_8c-source.html#l00051">main()</a>.</p>
180
<a class="anchor" name="g66fa94a9d91d9acd75a7947a503ffd2a"></a><!-- doxytag: member="jack.h::jack_client_thread_id" ref="g66fa94a9d91d9acd75a7947a503ffd2a" args="(jack_client_t *)" -->
181
<div class="memitem">
182
<div class="memproto">
183
<table class="memname">
185
<td class="memname">pthread_t jack_client_thread_id </td>
187
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
188
<td class="paramname"> </td>
189
<td> ) </td>
197
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the pthread ID of the thread running the JACK client side code. </dd></dl>
201
<a class="anchor" name="g8ed6f653cf1a30bf22dc5a1b2c3c9144"></a><!-- doxytag: member="jack.h::jack_deactivate" ref="g8ed6f653cf1a30bf22dc5a1b2c3c9144" args="(jack_client_t *client)" -->
202
<div class="memitem">
203
<div class="memproto">
204
<table class="memname">
206
<td class="memname">int jack_deactivate </td>
208
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
209
<td class="paramname"> <em>client</em> </td>
210
<td> ) </td>
218
Tell the Jack server to remove this <em>client</em> from the process graph. Also, disconnect all ports belonging to it, since inactive clients have no port connections.<p>
219
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, otherwise a non-zero error code </dd></dl>
223
<a class="anchor" name="gbece75a6af78b08cae1bc11ab70c51c1"></a><!-- doxytag: member="jack.h::jack_get_client_name" ref="gbece75a6af78b08cae1bc11ab70c51c1" args="(jack_client_t *client)" -->
224
<div class="memitem">
225
<div class="memproto">
226
<table class="memname">
228
<td class="memname">char* jack_get_client_name </td>
230
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
231
<td class="paramname"> <em>client</em> </td>
232
<td> ) </td>
240
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to actual client name. This is useful when <a class="el" href="types_8h.html#396617de2ef101891c51346f408a375e352b176ffa092ec946a06b707f6aa21b">JackUseExactName</a> is not specified on open and <a class="el" href="types_8h.html#af80297bce18297403b99e3d320ac8a809a73b951f3601ae9436bd3429ac0691">JackNameNotUnique</a> status was returned. In that case, the actual name will differ from the <em>client_name</em> requested. </dd></dl>
242
<p>Referenced by <a class="el" href="simple__client_8c-source.html#l00051">main()</a>.</p>
246
<a class="anchor" name="g434a3fd1a07651586cbf77c3e1bf3ac7"></a><!-- doxytag: member="jack.h::jack_internal_client_close" ref="g434a3fd1a07651586cbf77c3e1bf3ac7" args="(const char *client_name)" -->
247
<div class="memitem">
248
<div class="memproto">
249
<table class="memname">
251
<td class="memname">void jack_internal_client_close </td>
253
<td class="paramtype">const char * </td>
254
<td class="paramname"> <em>client_name</em> </td>
255
<td> ) </td>
263
Remove an internal client from a JACK server.<p>
264
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Please use <a class="el" href="intclient_8h.html#dca1931231a03563544281cda1530ca6">jack_internal_client_load()</a>. </dd></dl>
268
<a class="anchor" name="g6a908a02427cdffb215d71a53ea74be3"></a><!-- doxytag: member="jack.h::jack_internal_client_new" ref="g6a908a02427cdffb215d71a53ea74be3" args="(const char *client_name, const char *load_name, const char *load_init)" -->
269
<div class="memitem">
270
<div class="memproto">
271
<table class="memname">
273
<td class="memname">int jack_internal_client_new </td>
275
<td class="paramtype">const char * </td>
276
<td class="paramname"> <em>client_name</em>, </td>
279
<td class="paramkey"></td>
281
<td class="paramtype">const char * </td>
282
<td class="paramname"> <em>load_name</em>, </td>
285
<td class="paramkey"></td>
287
<td class="paramtype">const char * </td>
288
<td class="paramname"> <em>load_init</em></td><td> </td>
293
<td></td><td></td><td></td>
300
Load an internal client into the Jack server.<p>
301
Internal clients run inside the JACK server process. They can use most of the same functions as external clients. Each internal client must declare <a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize()</a> and <a class="el" href="inprocess_8c.html#1343309803bc07aacba7f4fd8f46b0a3">jack_finish()</a> entry points, called at load and unload times. See <a class="el" href="inprocess_8c.html" title="This demonstrates the basic concepts for writing a client that runs within the JACK...">inprocess.c</a> for an example of how to write an internal client.<p>
302
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Please use <a class="el" href="intclient_8h.html#dca1931231a03563544281cda1530ca6">jack_internal_client_load()</a>.</dd></dl>
303
<dl compact><dt><b>Parameters:</b></dt><dd>
304
<table border="0" cellspacing="2" cellpadding="0">
305
<tr><td valign="top"></td><td valign="top"><em>client_name</em> </td><td>of at most <a class="el" href="group__ClientFunctions.html#g841193e023f92f0bcde9f0ee1c9444e5">jack_client_name_size()</a> characters.</td></tr>
306
<tr><td valign="top"></td><td valign="top"><em>load_name</em> </td><td>of a shared object file containing the code for the new client.</td></tr>
307
<tr><td valign="top"></td><td valign="top"><em>load_init</em> </td><td>an arbitary string passed to the <a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize()</a> routine of the new client (may be NULL).</td></tr>
310
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful. </dd></dl>
315
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Nov 28 14:29:17 2008 for JACK-AUDIO-CONNECTION-KIT by
316
<a href="http://www.doxygen.org/index.html">
317
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>