\hypertarget{intclient_8h}{
\section{intclient.h File Reference}
\label{intclient_8h}\index{intclient.h@{intclient.h}}
}
{\tt \#include $<$jack/types.h$>$}\par
\subsection*{Functions}
\begin{CompactItemize}
\item 
char $\ast$ \hyperlink{intclient_8h_8e43a6f04827393dc5d3a0397b706e6d}{jack\_\-get\_\-internal\_\-client\_\-name} (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$\hyperlink{simple__client_8c_62608e08adc29a8d6dbc9754e659f125}{client}, \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} intclient)
\item 
\hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} \hyperlink{intclient_8h_f98a61b5e203e7b328e6ee62f02cc8dd}{jack\_\-internal\_\-client\_\-handle} (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$\hyperlink{simple__client_8c_62608e08adc29a8d6dbc9754e659f125}{client}, const char $\ast$client\_\-name, \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} $\ast$status)
\item 
\hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} \hyperlink{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{jack\_\-internal\_\-client\_\-load} (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$\hyperlink{simple__client_8c_62608e08adc29a8d6dbc9754e659f125}{client}, const char $\ast$client\_\-name, \hyperlink{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{jack\_\-options\_\-t} options, \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} $\ast$status,...)
\item 
\hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} \hyperlink{intclient_8h_c7b3a7b9d3a93bbd0c82a833deeb0ce2}{jack\_\-internal\_\-client\_\-unload} (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$\hyperlink{simple__client_8c_62608e08adc29a8d6dbc9754e659f125}{client}, \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} intclient)
\end{CompactItemize}


\subsection{Function Documentation}
\hypertarget{intclient_8h_8e43a6f04827393dc5d3a0397b706e6d}{
\index{intclient.h@{intclient.h}!jack_get_internal_client_name@{jack\_\-get\_\-internal\_\-client\_\-name}}
\index{jack_get_internal_client_name@{jack\_\-get\_\-internal\_\-client\_\-name}!intclient.h@{intclient.h}}
\subsubsection[jack\_\-get\_\-internal\_\-client\_\-name]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ jack\_\-get\_\-internal\_\-client\_\-name (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$ {\em client}, \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} {\em intclient})}}
\label{intclient_8h_8e43a6f04827393dc5d3a0397b706e6d}


Get an internal client's name. This is useful when \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085366dd9fdfc4bce02f158ef6d3a5c4807}{Jack\-Use\-Exact\-Name} was not specified on \hyperlink{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{jack\_\-internal\_\-client\_\-load()} and \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e4b3acf57d2db65ea9cf56005e51f717b}{Jack\-Name\-Not\-Unique} status was returned. In that case, the actual name will differ from the {\em client\_\-name\/} requested.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em client}]requesting JACK client's handle.\item[{\em intclient}]handle returned from \hyperlink{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{jack\_\-internal\_\-client\_\-load()} or \hyperlink{intclient_8h_f98a61b5e203e7b328e6ee62f02cc8dd}{jack\_\-internal\_\-client\_\-handle()}.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]NULL if unsuccessful, otherwise pointer to the internal client name obtained from the heap via malloc(). The caller should free() this storage when no longer needed. \end{Desc}
\hypertarget{intclient_8h_f98a61b5e203e7b328e6ee62f02cc8dd}{
\index{intclient.h@{intclient.h}!jack_internal_client_handle@{jack\_\-internal\_\-client\_\-handle}}
\index{jack_internal_client_handle@{jack\_\-internal\_\-client\_\-handle}!intclient.h@{intclient.h}}
\subsubsection[jack\_\-internal\_\-client\_\-handle]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} jack\_\-internal\_\-client\_\-handle (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$ {\em client}, const char $\ast$ {\em client\_\-name}, \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} $\ast$ {\em status})}}
\label{intclient_8h_f98a61b5e203e7b328e6ee62f02cc8dd}


Return the \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} handle for an internal client running in the JACK server.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em client}]requesting JACK client's handle.\item[{\em client\_\-name}]for the internal client of no more than \hyperlink{jack_8h_a52218c212c1a64bb9c5cfea01749ce9}{jack\_\-client\_\-name\_\-size()} characters. The name scope is local to the current server.\item[{\em status}](if non-NULL) an address for JACK to return information from this operation. This status word is formed by OR-ing together the relevant \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} bits.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Opaque internal client handle if successful. If 0, the internal client was not found, and {\em $\ast$status\/} includes the \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ec2d87ba09f1ae77becb995fb6b2fce7d}{Jack\-No\-Such\-Client} and \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ef10c22d5a067cbc568d942ff3f181587}{Jack\-Failure} bits. \end{Desc}
\hypertarget{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{
\index{intclient.h@{intclient.h}!jack_internal_client_load@{jack\_\-internal\_\-client\_\-load}}
\index{jack_internal_client_load@{jack\_\-internal\_\-client\_\-load}!intclient.h@{intclient.h}}
\subsubsection[jack\_\-internal\_\-client\_\-load]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} jack\_\-internal\_\-client\_\-load (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$ {\em client}, const char $\ast$ {\em client\_\-name}, \hyperlink{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{jack\_\-options\_\-t} {\em options}, \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} $\ast$ {\em status},  {\em ...})}}
\label{intclient_8h_03ffbdaae16521490f39230acbaf65c0}


Load an internal client into the JACK server.

Internal clients run inside the JACK server process. They can use most of the same functions as external clients. Each internal client is built as a shared object module, which must declare \hyperlink{inprocess_8c_89b5a6403e3862e0c9e4fa83c5c6c914}{jack\_\-initialize()} and \hyperlink{inprocess_8c_f3db3e200607bd673b8dd39c8a4111a9}{jack\_\-finish()} entry points called at load and unload times. See \hyperlink{inprocess_8c}{inprocess.c} for an example.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em client}]loading JACK client's handle.\item[{\em client\_\-name}]of at most \hyperlink{jack_8h_a52218c212c1a64bb9c5cfea01749ce9}{jack\_\-client\_\-name\_\-size()} characters for the internal client to load. The name scope is local to the current server.\item[{\em options}]formed by OR-ing together \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options} bits. Only the \hyperlink{types_8h_4a7fbce515f38b3280fe3399eaa68736}{Jack\-Load\-Options} bits are valid.\item[{\em status}](if non-NULL) an address for JACK to return information from the load operation. This status word is formed by OR-ing together the relevant \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} bits.\end{description}
\end{Desc}
{\bf Optional parameters:} depending on corresponding \mbox{[}{\em options\/} bits\mbox{]} additional parameters may follow {\em status\/} (in this order).

\begin{itemize}
\item \mbox{[}\hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085e3188f8f50937a43524931b4bb350143}{Jack\-Load\-Name}\mbox{]} {\em (char $\ast$) load\_\-name\/} is the shared object file from which to load the new internal client (otherwise use the {\em client\_\-name\/}).\end{itemize}
\begin{itemize}
\item \mbox{[}\hyperlink{types_8h_ef3dd2cdf802563454c817f0b777208541ab200edf3cb4be602d7ccd57d2861f}{Jack\-Load\-Init}\mbox{]} {\em (char $\ast$) load\_\-init\/} an arbitary string passed to the internal client's \hyperlink{inprocess_8c_89b5a6403e3862e0c9e4fa83c5c6c914}{jack\_\-initialize()} routine (otherwise NULL), of no more than \hyperlink{types_8h_193d7a204698de86a2e5ea14b88ddac4}{JACK\_\-LOAD\_\-INIT\_\-LIMIT} bytes.\end{itemize}
\begin{Desc}
\item[Returns:]Opaque internal client handle if successful. If this is 0, the load operation failed, the internal client was not loaded, and {\em $\ast$status\/} includes the \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ef10c22d5a067cbc568d942ff3f181587}{Jack\-Failure} bit. \end{Desc}
\hypertarget{intclient_8h_c7b3a7b9d3a93bbd0c82a833deeb0ce2}{
\index{intclient.h@{intclient.h}!jack_internal_client_unload@{jack\_\-internal\_\-client\_\-unload}}
\index{jack_internal_client_unload@{jack\_\-internal\_\-client\_\-unload}!intclient.h@{intclient.h}}
\subsubsection[jack\_\-internal\_\-client\_\-unload]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} jack\_\-internal\_\-client\_\-unload (\hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t} $\ast$ {\em client}, \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t} {\em intclient})}}
\label{intclient_8h_c7b3a7b9d3a93bbd0c82a833deeb0ce2}


Unload an internal client from a JACK server. This calls the intclient's \hyperlink{inprocess_8c_f3db3e200607bd673b8dd39c8a4111a9}{jack\_\-finish()} entry point then removes it. See \hyperlink{inprocess_8c}{inprocess.c} for an example.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em client}]unloading JACK client's handle.\item[{\em intclient}]handle returned from \hyperlink{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{jack\_\-internal\_\-client\_\-load()} or \hyperlink{intclient_8h_f98a61b5e203e7b328e6ee62f02cc8dd}{jack\_\-internal\_\-client\_\-handle()}.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]0 if successful, otherwise \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} bits. \end{Desc}
