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: inprocess.c File Reference</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>inprocess.c File Reference</h1>This demonstrates the basic concepts for writing a client that runs within the JACK server process. <a href="#_details">More...</a>
11
<code>#include <stdlib.h></code><br>
12
<code>#include <stdio.h></code><br>
13
<code>#include <memory.h></code><br>
14
<code>#include <<a class="el" href="jack_8h-source.html">jack/jack.h</a>></code><br>
15
<table border="0" cellpadding="0" cellspacing="0">
17
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
18
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structport__pair__t.html">port_pair_t</a></td></tr>
20
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
21
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="inprocess_8c.html#244f7325de6ebc7c003d808fb7c78b72">inprocess</a> (<a class="el" href="types_8h.html#a954df532e901ae5172e68a23f3da9b6">jack_nframes_t</a> nframes, void *arg)</td></tr>
23
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize</a> (<a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> *<a class="el" href="simple__client_8c.html#fed7053cd7bdd1cce33dec7213f340ea">client</a>, const char *load_init)</td></tr>
25
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="inprocess_8c.html#1343309803bc07aacba7f4fd8f46b0a3">jack_finish</a> (void *arg)</td></tr>
28
<hr><a name="_details"></a><h2>Detailed Description</h2>
29
This demonstrates the basic concepts for writing a client that runs within the JACK server process.
31
For the sake of example, a <a class="el" href="structport__pair__t.html">port_pair_t</a> is allocated in <a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize()</a>, passed to <a class="el" href="inprocess_8c.html#244f7325de6ebc7c003d808fb7c78b72">inprocess()</a> as an argument, then freed in <a class="el" href="inprocess_8c.html#1343309803bc07aacba7f4fd8f46b0a3">jack_finish()</a>. <hr><h2>Function Documentation</h2>
32
<a class="anchor" name="244f7325de6ebc7c003d808fb7c78b72"></a><!-- doxytag: member="inprocess.c::inprocess" ref="244f7325de6ebc7c003d808fb7c78b72" args="(jack_nframes_t nframes, void *arg)" -->
34
<div class="memproto">
35
<table class="memname">
37
<td class="memname">int inprocess </td>
39
<td class="paramtype"><a class="el" href="types_8h.html#a954df532e901ae5172e68a23f3da9b6">jack_nframes_t</a> </td>
40
<td class="paramname"> <em>nframes</em>, </td>
43
<td class="paramkey"></td>
45
<td class="paramtype">void * </td>
46
<td class="paramname"> <em>arg</em></td><td> </td>
51
<td></td><td></td><td></td>
58
Called in the realtime thread on every process cycle. The entry point name was passed to <a class="el" href="group__ClientCallbacks.html#g62351a5803421b6c21b9ffb9124801ef">jack_set_process_callback()</a> from <a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize()</a>. Although this is an internal client, its <a class="el" href="simple__client_8c.html#01271cc6cf692278ae35d0062935d7ae">process()</a> interface is identical to <a class="el" href="simple__client_8c.html">simple_client.c</a>.<p>
59
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful; otherwise <a class="el" href="inprocess_8c.html#1343309803bc07aacba7f4fd8f46b0a3">jack_finish()</a> will be called and the client terminated immediately. </dd></dl>
61
<p>References <a class="el" href="inprocess_8c-source.html#l00022">port_pair_t::input_port</a>, <a class="el" href="group__PortFunctions.html#gd0dcf2703cc45c1b7fbb1f31155fa721">jack_port_get_buffer()</a>, and <a class="el" href="inprocess_8c-source.html#l00023">port_pair_t::output_port</a>.</p>
63
<p>Referenced by <a class="el" href="inprocess_8c-source.html#l00060">jack_initialize()</a>.</p>
67
<a class="anchor" name="1343309803bc07aacba7f4fd8f46b0a3"></a><!-- doxytag: member="inprocess.c::jack_finish" ref="1343309803bc07aacba7f4fd8f46b0a3" args="(void *arg)" -->
69
<div class="memproto">
70
<table class="memname">
72
<td class="memname">void jack_finish </td>
74
<td class="paramtype">void * </td>
75
<td class="paramname"> <em>arg</em> </td>
76
<td> ) </td>
84
This required entry point is called immediately before the client is unloaded, which could happen due to a call to <a class="el" href="intclient_8h.html#0cb5e85d41c1d0fd0163a64859ba3672">jack_internal_client_unload()</a>, or a nonzero return from either <a class="el" href="inprocess_8c.html#872c1ad15ec7ba35574b0bafc91212c9">jack_initialize()</a> or <a class="el" href="inprocess_8c.html#244f7325de6ebc7c003d808fb7c78b72">inprocess()</a>.<p>
85
<dl compact><dt><b>Parameters:</b></dt><dd>
86
<table border="0" cellspacing="2" cellpadding="0">
87
<tr><td valign="top"></td><td valign="top"><em>arg</em> </td><td>the same parameter provided to <a class="el" href="inprocess_8c.html#244f7325de6ebc7c003d808fb7c78b72">inprocess()</a>. </td></tr>
93
<a class="anchor" name="872c1ad15ec7ba35574b0bafc91212c9"></a><!-- doxytag: member="inprocess.c::jack_initialize" ref="872c1ad15ec7ba35574b0bafc91212c9" args="(jack_client_t *client, const char *load_init)" -->
95
<div class="memproto">
96
<table class="memname">
98
<td class="memname">int jack_initialize </td>
100
<td class="paramtype"><a class="el" href="types_8h.html#96cf103940d2ee71b141d4b9d0c116bf">jack_client_t</a> * </td>
101
<td class="paramname"> <em>client</em>, </td>
104
<td class="paramkey"></td>
106
<td class="paramtype">const char * </td>
107
<td class="paramname"> <em>load_init</em></td><td> </td>
112
<td></td><td></td><td></td>
119
This required entry point is called after the client is loaded by <a class="el" href="intclient_8h.html#dca1931231a03563544281cda1530ca6">jack_internal_client_load()</a>.<p>
120
<dl compact><dt><b>Parameters:</b></dt><dd>
121
<table border="0" cellspacing="2" cellpadding="0">
122
<tr><td valign="top"></td><td valign="top"><em>client</em> </td><td>pointer to JACK client structure. </td></tr>
123
<tr><td valign="top"></td><td valign="top"><em>load_init</em> </td><td>character string passed to the load operation.</td></tr>
126
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful; otherwise <a class="el" href="inprocess_8c.html#1343309803bc07aacba7f4fd8f46b0a3">jack_finish()</a> will be called and the client terminated immediately. </dd></dl>
128
<p>References <a class="el" href="inprocess_8c-source.html#l00036">inprocess()</a>, <a class="el" href="inprocess_8c-source.html#l00022">port_pair_t::input_port</a>, <a class="el" href="group__ClientFunctions.html#g0033c673e8583f3166ca334b3e3dc751">jack_activate()</a>, <a class="el" href="group__PortFunctions.html#g462cfb7d50a41ed7a2c0e8ae303312b6">jack_connect()</a>, <a class="el" href="types_8h-source.html#l00202">JACK_DEFAULT_AUDIO_TYPE</a>, <a class="el" href="group__PortFunctions.html#gd91c438ebc4e4a3dcd780cb458725647">jack_port_name()</a>, <a class="el" href="group__PortFunctions.html#gb6fd42ee3b80fe9259400343f0fa6c2d">jack_port_register()</a>, <a class="el" href="group__ClientCallbacks.html#g62351a5803421b6c21b9ffb9124801ef">jack_set_process_callback()</a>, <a class="el" href="types_8h-source.html#l00224">JackPortIsInput</a>, <a class="el" href="types_8h-source.html#l00230">JackPortIsOutput</a>, and <a class="el" href="inprocess_8c-source.html#l00023">port_pair_t::output_port</a>.</p>
133
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Nov 28 14:29:16 2008 for JACK-AUDIO-CONNECTION-KIT by
134
<a href="http://www.doxygen.org/index.html">
135
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>