\hypertarget{types_8h}{
\section{types.h File Reference}
\label{types_8h}\index{types.h@{types.h}}
}
{\tt \#include $<$inttypes.h$>$}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{types_8h_b360f8cdcf49c0cf42f76b5a879f5721}{JACK\_\-MAX\_\-FRAMES}~(4294967295U)
\item 
\#define \hyperlink{types_8h_193d7a204698de86a2e5ea14b88ddac4}{JACK\_\-LOAD\_\-INIT\_\-LIMIT}~1024
\item 
\#define \hyperlink{types_8h_d8ab954e2d71db20c4485841bd4a30a5}{JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE}~\char`\"{}32 bit float mono audio\char`\"{}
\item 
\#define \hyperlink{types_8h_0c80f780ae0a5e675079d71ba03f9651}{JACK\_\-DEFAULT\_\-MIDI\_\-TYPE}~\char`\"{}8 bit raw midi\char`\"{}
\item 
\#define \hyperlink{types_8h_b46c35ce4c556ad26c9e8ee4fc3e70e6}{Jack\-Open\-Options}~(Jack\-Server\-Name$|$Jack\-No\-Start\-Server$|$Jack\-Use\-Exact\-Name)
\item 
\#define \hyperlink{types_8h_4a7fbce515f38b3280fe3399eaa68736}{Jack\-Load\-Options}~(Jack\-Load\-Init$|$Jack\-Load\-Name$|$Jack\-Use\-Exact\-Name)
\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef int32\_\-t \hyperlink{types_8h_bd5323605c2e8cf0b1bd6997699fc87a}{jack\_\-shmsize\_\-t}
\item 
typedef uint32\_\-t \hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t}
\item 
typedef uint64\_\-t \hyperlink{types_8h_71d1a1356a36ae1f9e60b4361e21905e}{jack\_\-time\_\-t}
\item 
typedef uint64\_\-t \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t}
\item 
typedef \_\-jack\_\-port \hyperlink{types_8h_fcd71bfba86b3023634d3bb97a454648}{jack\_\-port\_\-t}
\item 
typedef \_\-jack\_\-client \hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t}
\item 
typedef uint32\_\-t \hyperlink{types_8h_638b3ebbced47d1cb913f4b522699401}{jack\_\-port\_\-id\_\-t}
\item 
typedef int($\ast$ \hyperlink{types_8h_7d29408cae0f836271aab41c2db20074}{Jack\-Process\-Callback} )(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)
\item 
typedef void($\ast$ \hyperlink{types_8h_0695aa8ed5357cde844d6db73ec54fd7}{Jack\-Thread\-Init\-Callback} )(void $\ast$arg)
\item 
typedef int($\ast$ \hyperlink{types_8h_0e57e4ff80dd55c7856c14b38bfacd96}{Jack\-Graph\-Order\-Callback} )(void $\ast$arg)
\item 
typedef int($\ast$ \hyperlink{types_8h_e78bd2ac540e7adb7bacf04578bd3a94}{Jack\-XRun\-Callback} )(void $\ast$arg)
\item 
typedef int($\ast$ \hyperlink{types_8h_f1c94e59c710631aa33a2dee86cd5cef}{Jack\-Buffer\-Size\-Callback} )(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)
\item 
typedef int($\ast$ \hyperlink{types_8h_6c12926f10031285cf7b851bbd9410f2}{Jack\-Sample\-Rate\-Callback} )(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)
\item 
typedef void($\ast$ \hyperlink{types_8h_35ed48b4e8b6574b35764d67165db1e6}{Jack\-Port\-Registration\-Callback} )(\hyperlink{types_8h_638b3ebbced47d1cb913f4b522699401}{jack\_\-port\_\-id\_\-t} port, int, void $\ast$arg)
\item 
typedef void($\ast$ \hyperlink{types_8h_f0979883756fe8c04b837efd603ab1fb}{Jack\-Freewheel\-Callback} )(int starting, void $\ast$arg)
\item 
typedef float \hyperlink{types_8h_8266601cbeb526978158534eaaba352e}{jack\_\-default\_\-audio\_\-sample\_\-t}
\item 
typedef enum \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options} \hyperlink{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{jack\_\-options\_\-t}
\item 
typedef enum \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t}
\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b9744}{Jack\-Port\-Flags} \{ \par
\hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b97441d848ea4dc6d0b58dc8c8f874b243fd5}{Jack\-Port\-Is\-Input} =  0x1, 
\hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b9744ebee5c5154713c0f5257e5d7ac45ca3b}{Jack\-Port\-Is\-Output} =  0x2, 
\hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b97448fb66400bb60e7595a9fbba374bedaf2}{Jack\-Port\-Is\-Physical} =  0x4, 
\hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b974438c12a9ceb2654edb1a1e169938031a9}{Jack\-Port\-Can\-Monitor} =  0x8, 
\par
\hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b97444acc7e43759142b42084e9817ff5c86a}{Jack\-Port\-Is\-Terminal} =  0x10
 \}
\item 
enum \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options} \{ \par
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b77720853bcb59a96d51d44799d47cd3f11f56e9}{Jack\-Null\-Option} =  0x00, 
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085568b18aa3b7344bff4037029e2892c72}{Jack\-No\-Start\-Server} =  0x01, 
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085366dd9fdfc4bce02f158ef6d3a5c4807}{Jack\-Use\-Exact\-Name} =  0x02, 
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085ff94dd4ecb97fa8802285a6b53c488d3}{Jack\-Server\-Name} =  0x04, 
\par
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085e3188f8f50937a43524931b4bb350143}{Jack\-Load\-Name} =  0x08, 
\hyperlink{types_8h_ef3dd2cdf802563454c817f0b777208541ab200edf3cb4be602d7ccd57d2861f}{Jack\-Load\-Init} =  0x10
 \}
\item 
enum \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} \{ \par
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ef10c22d5a067cbc568d942ff3f181587}{Jack\-Failure} =  0x01, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e66cd9e6ea501d7df16d1055dfce9e078}{Jack\-Invalid\-Option} =  0x02, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e4b3acf57d2db65ea9cf56005e51f717b}{Jack\-Name\-Not\-Unique} =  0x04, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e73af37eb263c8710e36299b9a5454f8b}{Jack\-Server\-Started} =  0x08, 
\par
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ea755e332e3e21ee47ad26e409a686a59}{Jack\-Server\-Failed} =  0x10, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148eaca7a0f32c8cc91645347e96460c0014}{Jack\-Server\-Error} =  0x20, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ec2d87ba09f1ae77becb995fb6b2fce7d}{Jack\-No\-Such\-Client} =  0x40, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e146dfe0fe13cd36d2638a8c8876e39a2}{Jack\-Load\-Failure} =  0x80, 
\par
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e073aa51f49ba98277a31917b8a1e43df}{Jack\-Init\-Failure} =  0x100, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148ec079e46fa2515777f9f4f90d3f1b25ea}{Jack\-Shm\-Failure} =  0x200, 
\hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e710aa3cdc27ccaae816a4ded38a9d34d}{Jack\-Version\-Error} =  0x400
 \}
\end{CompactItemize}


\subsection{Define Documentation}
\hypertarget{types_8h_d8ab954e2d71db20c4485841bd4a30a5}{
\index{types.h@{types.h}!JACK_DEFAULT_AUDIO_TYPE@{JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE}}
\index{JACK_DEFAULT_AUDIO_TYPE@{JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE}!types.h@{types.h}}
\subsubsection[JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE]{\setlength{\rightskip}{0pt plus 5cm}\#define JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE~\char`\"{}32 bit float mono audio\char`\"{}}}
\label{types_8h_d8ab954e2d71db20c4485841bd4a30a5}


Used for the type argument of \hyperlink{jack_8h_7b92816a9bfcfdcaefefd196a1945bea}{jack\_\-port\_\-register()} for default audio and midi ports. \hypertarget{types_8h_0c80f780ae0a5e675079d71ba03f9651}{
\index{types.h@{types.h}!JACK_DEFAULT_MIDI_TYPE@{JACK\_\-DEFAULT\_\-MIDI\_\-TYPE}}
\index{JACK_DEFAULT_MIDI_TYPE@{JACK\_\-DEFAULT\_\-MIDI\_\-TYPE}!types.h@{types.h}}
\subsubsection[JACK\_\-DEFAULT\_\-MIDI\_\-TYPE]{\setlength{\rightskip}{0pt plus 5cm}\#define JACK\_\-DEFAULT\_\-MIDI\_\-TYPE~\char`\"{}8 bit raw midi\char`\"{}}}
\label{types_8h_0c80f780ae0a5e675079d71ba03f9651}


\hypertarget{types_8h_193d7a204698de86a2e5ea14b88ddac4}{
\index{types.h@{types.h}!JACK_LOAD_INIT_LIMIT@{JACK\_\-LOAD\_\-INIT\_\-LIMIT}}
\index{JACK_LOAD_INIT_LIMIT@{JACK\_\-LOAD\_\-INIT\_\-LIMIT}!types.h@{types.h}}
\subsubsection[JACK\_\-LOAD\_\-INIT\_\-LIMIT]{\setlength{\rightskip}{0pt plus 5cm}\#define JACK\_\-LOAD\_\-INIT\_\-LIMIT~1024}}
\label{types_8h_193d7a204698de86a2e5ea14b88ddac4}


Maximum size of {\em load\_\-init\/} string passed to an internal client \hyperlink{inprocess_8c_89b5a6403e3862e0c9e4fa83c5c6c914}{jack\_\-initialize()} function via \hyperlink{intclient_8h_03ffbdaae16521490f39230acbaf65c0}{jack\_\-internal\_\-client\_\-load()}. \hypertarget{types_8h_b360f8cdcf49c0cf42f76b5a879f5721}{
\index{types.h@{types.h}!JACK_MAX_FRAMES@{JACK\_\-MAX\_\-FRAMES}}
\index{JACK_MAX_FRAMES@{JACK\_\-MAX\_\-FRAMES}!types.h@{types.h}}
\subsubsection[JACK\_\-MAX\_\-FRAMES]{\setlength{\rightskip}{0pt plus 5cm}\#define JACK\_\-MAX\_\-FRAMES~(4294967295U)}}
\label{types_8h_b360f8cdcf49c0cf42f76b5a879f5721}


Maximum value that can be stored in jack\_\-nframes\_\-t \hypertarget{types_8h_4a7fbce515f38b3280fe3399eaa68736}{
\index{types.h@{types.h}!JackLoadOptions@{JackLoadOptions}}
\index{JackLoadOptions@{JackLoadOptions}!types.h@{types.h}}
\subsubsection[JackLoadOptions]{\setlength{\rightskip}{0pt plus 5cm}\#define Jack\-Load\-Options~(Jack\-Load\-Init$|$Jack\-Load\-Name$|$Jack\-Use\-Exact\-Name)}}
\label{types_8h_4a7fbce515f38b3280fe3399eaa68736}


Valid options for loading an internal client. \hypertarget{types_8h_b46c35ce4c556ad26c9e8ee4fc3e70e6}{
\index{types.h@{types.h}!JackOpenOptions@{JackOpenOptions}}
\index{JackOpenOptions@{JackOpenOptions}!types.h@{types.h}}
\subsubsection[JackOpenOptions]{\setlength{\rightskip}{0pt plus 5cm}\#define Jack\-Open\-Options~(Jack\-Server\-Name$|$Jack\-No\-Start\-Server$|$Jack\-Use\-Exact\-Name)}}
\label{types_8h_b46c35ce4c556ad26c9e8ee4fc3e70e6}


Valid options for opening an external client. 

\subsection{Typedef Documentation}
\hypertarget{types_8h_44245b219e977ef0a840ee16dbd95b50}{
\index{types.h@{types.h}!jack_client_t@{jack\_\-client\_\-t}}
\index{jack_client_t@{jack\_\-client\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-client\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-jack\_\-client \hyperlink{types_8h_44245b219e977ef0a840ee16dbd95b50}{jack\_\-client\_\-t}}}
\label{types_8h_44245b219e977ef0a840ee16dbd95b50}


jack\_\-client\_\-t is an opaque type. You may only access it using the API provided. \hypertarget{types_8h_8266601cbeb526978158534eaaba352e}{
\index{types.h@{types.h}!jack_default_audio_sample_t@{jack\_\-default\_\-audio\_\-sample\_\-t}}
\index{jack_default_audio_sample_t@{jack\_\-default\_\-audio\_\-sample\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-default\_\-audio\_\-sample\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef float \hyperlink{types_8h_8266601cbeb526978158534eaaba352e}{jack\_\-default\_\-audio\_\-sample\_\-t}}}
\label{types_8h_8266601cbeb526978158534eaaba352e}


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. \hypertarget{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{
\index{types.h@{types.h}!jack_intclient_t@{jack\_\-intclient\_\-t}}
\index{jack_intclient_t@{jack\_\-intclient\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-intclient\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef uint64\_\-t \hyperlink{types_8h_67cbd2f3ad0e17908eff01e67c21e221}{jack\_\-intclient\_\-t}}}
\label{types_8h_67cbd2f3ad0e17908eff01e67c21e221}


jack\_\-intclient\_\-t is an opaque type representing a loaded internal client. You may only access it using the API provided in \hyperlink{intclient_8h}{$<$jack/intclient.h$>$}. \hypertarget{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{
\index{types.h@{types.h}!jack_nframes_t@{jack\_\-nframes\_\-t}}
\index{jack_nframes_t@{jack\_\-nframes\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-nframes\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef uint32\_\-t \hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t}}}
\label{types_8h_fe9972a13782c1e282747fdb4bc46f9c}


Type used to represent sample frame counts. \hypertarget{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{
\index{types.h@{types.h}!jack_options_t@{jack\_\-options\_\-t}}
\index{jack_options_t@{jack\_\-options\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-options\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef enum \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options} \hyperlink{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{jack\_\-options\_\-t}}}
\label{types_8h_bfea9d8c60520b8962bfbff21ec9b324}


Options for several JACK operations, formed by OR-ing together the relevant \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options} bits. \hypertarget{types_8h_638b3ebbced47d1cb913f4b522699401}{
\index{types.h@{types.h}!jack_port_id_t@{jack\_\-port\_\-id\_\-t}}
\index{jack_port_id_t@{jack\_\-port\_\-id\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-port\_\-id\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef uint32\_\-t \hyperlink{types_8h_638b3ebbced47d1cb913f4b522699401}{jack\_\-port\_\-id\_\-t}}}
\label{types_8h_638b3ebbced47d1cb913f4b522699401}


Ports have unique ids. A port registration callback is the only place you ever need to know their value. \hypertarget{types_8h_fcd71bfba86b3023634d3bb97a454648}{
\index{types.h@{types.h}!jack_port_t@{jack\_\-port\_\-t}}
\index{jack_port_t@{jack\_\-port\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-port\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-jack\_\-port \hyperlink{types_8h_fcd71bfba86b3023634d3bb97a454648}{jack\_\-port\_\-t}}}
\label{types_8h_fcd71bfba86b3023634d3bb97a454648}


jack\_\-port\_\-t is an opaque type. You may only access it using the API provided. \hypertarget{types_8h_bd5323605c2e8cf0b1bd6997699fc87a}{
\index{types.h@{types.h}!jack_shmsize_t@{jack\_\-shmsize\_\-t}}
\index{jack_shmsize_t@{jack\_\-shmsize\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-shmsize\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef int32\_\-t \hyperlink{types_8h_bd5323605c2e8cf0b1bd6997699fc87a}{jack\_\-shmsize\_\-t}}}
\label{types_8h_bd5323605c2e8cf0b1bd6997699fc87a}


\hypertarget{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{
\index{types.h@{types.h}!jack_status_t@{jack\_\-status\_\-t}}
\index{jack_status_t@{jack\_\-status\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-status\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef enum \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} \hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t}}}
\label{types_8h_b2c415ccde58eeccb2a74f25abf7e003}


Status word returned from several JACK operations, formed by OR-ing together the relevant \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status} bits. \hypertarget{types_8h_71d1a1356a36ae1f9e60b4361e21905e}{
\index{types.h@{types.h}!jack_time_t@{jack\_\-time\_\-t}}
\index{jack_time_t@{jack\_\-time\_\-t}!types.h@{types.h}}
\subsubsection[jack\_\-time\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef uint64\_\-t \hyperlink{types_8h_71d1a1356a36ae1f9e60b4361e21905e}{jack\_\-time\_\-t}}}
\label{types_8h_71d1a1356a36ae1f9e60b4361e21905e}


Type used to represent the value of free running monotonic clock with units of microseconds. \hypertarget{types_8h_f1c94e59c710631aa33a2dee86cd5cef}{
\index{types.h@{types.h}!JackBufferSizeCallback@{JackBufferSizeCallback}}
\index{JackBufferSizeCallback@{JackBufferSizeCallback}!types.h@{types.h}}
\subsubsection[JackBufferSizeCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ \hyperlink{types_8h_f1c94e59c710631aa33a2dee86cd5cef}{Jack\-Buffer\-Size\-Callback})(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}}
\label{types_8h_f1c94e59c710631aa33a2dee86cd5cef}


Prototype for the {\em bufsize\_\-callback\/} that is invoked whenever the JACK engine buffer size changes. Although this function is called in the JACK process thread, the normal process cycle is suspended during its operation, causing a gap in the audio flow. So, the {\em bufsize\_\-callback\/} can allocate storage, touch memory not previously referenced, and perform other operations that are not realtime safe.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em nframes}]buffer size \item[{\em arg}]pointer supplied by \hyperlink{jack_8h_dabe854313f1bfc17a01994d42ddec8d}{jack\_\-set\_\-buffer\_\-size\_\-callback()}.\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]zero on success, non-zero on error \end{Desc}
\hypertarget{types_8h_f0979883756fe8c04b837efd603ab1fb}{
\index{types.h@{types.h}!JackFreewheelCallback@{JackFreewheelCallback}}
\index{JackFreewheelCallback@{JackFreewheelCallback}!types.h@{types.h}}
\subsubsection[JackFreewheelCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ \hyperlink{types_8h_f0979883756fe8c04b837efd603ab1fb}{Jack\-Freewheel\-Callback})(int starting, void $\ast$arg)}}
\label{types_8h_f0979883756fe8c04b837efd603ab1fb}


Prototype for the client supplied function that is called whenever jackd starts or stops freewheeling.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em starting}]non-zero if we start starting to freewheel, zero otherwise \item[{\em arg}]pointer to a client supplied structure \end{description}
\end{Desc}
\hypertarget{types_8h_0e57e4ff80dd55c7856c14b38bfacd96}{
\index{types.h@{types.h}!JackGraphOrderCallback@{JackGraphOrderCallback}}
\index{JackGraphOrderCallback@{JackGraphOrderCallback}!types.h@{types.h}}
\subsubsection[JackGraphOrderCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ \hyperlink{types_8h_0e57e4ff80dd55c7856c14b38bfacd96}{Jack\-Graph\-Order\-Callback})(void $\ast$arg)}}
\label{types_8h_0e57e4ff80dd55c7856c14b38bfacd96}


Prototype for the client supplied function that is called whenever the processing graph is reordered.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em arg}]pointer to a client supplied structure\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]zero on success, non-zero on error \end{Desc}
\hypertarget{types_8h_35ed48b4e8b6574b35764d67165db1e6}{
\index{types.h@{types.h}!JackPortRegistrationCallback@{JackPortRegistrationCallback}}
\index{JackPortRegistrationCallback@{JackPortRegistrationCallback}!types.h@{types.h}}
\subsubsection[JackPortRegistrationCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ \hyperlink{types_8h_35ed48b4e8b6574b35764d67165db1e6}{Jack\-Port\-Registration\-Callback})(\hyperlink{types_8h_638b3ebbced47d1cb913f4b522699401}{jack\_\-port\_\-id\_\-t} port, int, void $\ast$arg)}}
\label{types_8h_35ed48b4e8b6574b35764d67165db1e6}


Prototype for the client supplied function that is called whenever a port is registered or unregistered.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em arg}]pointer to a client supplied structure \end{description}
\end{Desc}
\hypertarget{types_8h_7d29408cae0f836271aab41c2db20074}{
\index{types.h@{types.h}!JackProcessCallback@{JackProcessCallback}}
\index{JackProcessCallback@{JackProcessCallback}!types.h@{types.h}}
\subsubsection[JackProcessCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ \hyperlink{types_8h_7d29408cae0f836271aab41c2db20074}{Jack\-Process\-Callback})(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}}
\label{types_8h_7d29408cae0f836271aab41c2db20074}


Prototype for the client supplied function that is called by the engine anytime there is work to be done.

\begin{Desc}
\item[Precondition:]nframes == \hyperlink{jack_8h_2bc7521ab43763fdbc95fe242a94639d}{jack\_\-get\_\-buffer\_\-size()} 

nframes == pow(2,x)\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em nframes}]number of frames to process \item[{\em arg}]pointer to a client supplied structure\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]zero on success, non-zero on error \end{Desc}
\hypertarget{types_8h_6c12926f10031285cf7b851bbd9410f2}{
\index{types.h@{types.h}!JackSampleRateCallback@{JackSampleRateCallback}}
\index{JackSampleRateCallback@{JackSampleRateCallback}!types.h@{types.h}}
\subsubsection[JackSampleRateCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ \hyperlink{types_8h_6c12926f10031285cf7b851bbd9410f2}{Jack\-Sample\-Rate\-Callback})(\hyperlink{types_8h_fe9972a13782c1e282747fdb4bc46f9c}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}}
\label{types_8h_6c12926f10031285cf7b851bbd9410f2}


Prototype for the client supplied function that is called when the engine sample rate changes.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em nframes}]new engine sample rate \item[{\em arg}]pointer to a client supplied structure\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]zero on success, non-zero on error \end{Desc}
\hypertarget{types_8h_0695aa8ed5357cde844d6db73ec54fd7}{
\index{types.h@{types.h}!JackThreadInitCallback@{JackThreadInitCallback}}
\index{JackThreadInitCallback@{JackThreadInitCallback}!types.h@{types.h}}
\subsubsection[JackThreadInitCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ \hyperlink{types_8h_0695aa8ed5357cde844d6db73ec54fd7}{Jack\-Thread\-Init\-Callback})(void $\ast$arg)}}
\label{types_8h_0695aa8ed5357cde844d6db73ec54fd7}


Prototype for the client supplied function that is called once after the creation of the thread in which other callbacks will be made. Special thread characteristics can be set from this callback, for example. This is a highly specialized callback and most clients will not and should not use it.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em arg}]pointer to a client supplied structure\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]void \end{Desc}
\hypertarget{types_8h_e78bd2ac540e7adb7bacf04578bd3a94}{
\index{types.h@{types.h}!JackXRunCallback@{JackXRunCallback}}
\index{JackXRunCallback@{JackXRunCallback}!types.h@{types.h}}
\subsubsection[JackXRunCallback]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ \hyperlink{types_8h_e78bd2ac540e7adb7bacf04578bd3a94}{Jack\-XRun\-Callback})(void $\ast$arg)}}
\label{types_8h_e78bd2ac540e7adb7bacf04578bd3a94}


Prototype for the client-supplied function that is called whenever an xrun has occured.

\begin{Desc}
\item[See also:]\hyperlink{statistics_8h_b2c91a937f3e6aef58182a850396ce5a}{jack\_\-get\_\-xrun\_\-delayed\_\-usecs()}\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em arg}]pointer to a client supplied structure\end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]zero on success, non-zero on error \end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b7772085}{
\index{types.h@{types.h}!JackOptions@{JackOptions}}
\index{JackOptions@{JackOptions}!types.h@{types.h}}
\subsubsection[JackOptions]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085}{Jack\-Options}}}
\label{types_8h_ef3dd2cdf802563454c817f0b7772085}


\hyperlink{types_8h_bfea9d8c60520b8962bfbff21ec9b324}{jack\_\-options\_\-t} bits \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{JackNullOption@{JackNullOption}!types.h@{types.h}}\index{types.h@{types.h}!JackNullOption@{JackNullOption}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b77720853bcb59a96d51d44799d47cd3f11f56e9}{
Jack\-Null\-Option}
\label{types_8h_ef3dd2cdf802563454c817f0b77720853bcb59a96d51d44799d47cd3f11f56e9}
}]Null value to use when no option bits are needed. \index{JackNoStartServer@{JackNoStartServer}!types.h@{types.h}}\index{types.h@{types.h}!JackNoStartServer@{JackNoStartServer}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b7772085568b18aa3b7344bff4037029e2892c72}{
Jack\-No\-Start\-Server}
\label{types_8h_ef3dd2cdf802563454c817f0b7772085568b18aa3b7344bff4037029e2892c72}
}]Do not automatically start the JACK server when it is not already running. This option is always selected if \$JACK\_\-NO\_\-START\_\-SERVER is defined in the calling process environment. \index{JackUseExactName@{JackUseExactName}!types.h@{types.h}}\index{types.h@{types.h}!JackUseExactName@{JackUseExactName}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b7772085366dd9fdfc4bce02f158ef6d3a5c4807}{
Jack\-Use\-Exact\-Name}
\label{types_8h_ef3dd2cdf802563454c817f0b7772085366dd9fdfc4bce02f158ef6d3a5c4807}
}]Use the exact client name requested. Otherwise, JACK automatically generates a unique one, if needed. \index{JackServerName@{JackServerName}!types.h@{types.h}}\index{types.h@{types.h}!JackServerName@{JackServerName}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b7772085ff94dd4ecb97fa8802285a6b53c488d3}{
Jack\-Server\-Name}
\label{types_8h_ef3dd2cdf802563454c817f0b7772085ff94dd4ecb97fa8802285a6b53c488d3}
}]Open with optional {\em (char $\ast$) server\_\-name\/} parameter. \index{JackLoadName@{JackLoadName}!types.h@{types.h}}\index{types.h@{types.h}!JackLoadName@{JackLoadName}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b7772085e3188f8f50937a43524931b4bb350143}{
Jack\-Load\-Name}
\label{types_8h_ef3dd2cdf802563454c817f0b7772085e3188f8f50937a43524931b4bb350143}
}]Load internal client from optional {\em (char $\ast$) load\_\-name\/}. Otherwise use the {\em client\_\-name\/}. \index{JackLoadInit@{JackLoadInit}!types.h@{types.h}}\index{types.h@{types.h}!JackLoadInit@{JackLoadInit}}\item[{\em 
\hypertarget{types_8h_ef3dd2cdf802563454c817f0b777208541ab200edf3cb4be602d7ccd57d2861f}{
Jack\-Load\-Init}
\label{types_8h_ef3dd2cdf802563454c817f0b777208541ab200edf3cb4be602d7ccd57d2861f}
}]Pass optional {\em (char $\ast$) load\_\-init\/} string to the \hyperlink{inprocess_8c_89b5a6403e3862e0c9e4fa83c5c6c914}{jack\_\-initialize()} entry point of an internal client. \end{description}
\end{Desc}

\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b9744}{
\index{types.h@{types.h}!JackPortFlags@{JackPortFlags}}
\index{JackPortFlags@{JackPortFlags}!types.h@{types.h}}
\subsubsection[JackPortFlags]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{types_8h_edaf361ba41ec2f8ac6e272daf4b9744}{Jack\-Port\-Flags}}}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b9744}


A port has a set of flags that are formed by AND-ing together the desired values from the list below. The flags \char`\"{}Jack\-Port\-Is\-Input\char`\"{} and \char`\"{}Jack\-Port\-Is\-Output\char`\"{} are mutually exclusive and it is an error to use them both. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{JackPortIsInput@{JackPortIsInput}!types.h@{types.h}}\index{types.h@{types.h}!JackPortIsInput@{JackPortIsInput}}\item[{\em 
\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b97441d848ea4dc6d0b58dc8c8f874b243fd5}{
Jack\-Port\-Is\-Input}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b97441d848ea4dc6d0b58dc8c8f874b243fd5}
}]if Jack\-Port\-Is\-Input is set, then the port can receive data. \index{JackPortIsOutput@{JackPortIsOutput}!types.h@{types.h}}\index{types.h@{types.h}!JackPortIsOutput@{JackPortIsOutput}}\item[{\em 
\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b9744ebee5c5154713c0f5257e5d7ac45ca3b}{
Jack\-Port\-Is\-Output}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b9744ebee5c5154713c0f5257e5d7ac45ca3b}
}]if Jack\-Port\-Is\-Output is set, then data can be read from the port. \index{JackPortIsPhysical@{JackPortIsPhysical}!types.h@{types.h}}\index{types.h@{types.h}!JackPortIsPhysical@{JackPortIsPhysical}}\item[{\em 
\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b97448fb66400bb60e7595a9fbba374bedaf2}{
Jack\-Port\-Is\-Physical}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b97448fb66400bb60e7595a9fbba374bedaf2}
}]if Jack\-Port\-Is\-Physical is set, then the port corresponds to some kind of physical I/O connector. \index{JackPortCanMonitor@{JackPortCanMonitor}!types.h@{types.h}}\index{types.h@{types.h}!JackPortCanMonitor@{JackPortCanMonitor}}\item[{\em 
\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b974438c12a9ceb2654edb1a1e169938031a9}{
Jack\-Port\-Can\-Monitor}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b974438c12a9ceb2654edb1a1e169938031a9}
}]if Jack\-Port\-Can\-Monitor is set, then a call to \hyperlink{jack_8h_dc11de9343cd67aa82633a26b7acb0d2}{jack\_\-port\_\-request\_\-monitor()} makes sense.

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 Jack\-Port\-Is\-Physical set) is sent to a physical output connector as well, so that it can be heard/seen/whatever.

Clients that do not control physical interfaces should never create ports with this bit set. \index{JackPortIsTerminal@{JackPortIsTerminal}!types.h@{types.h}}\index{types.h@{types.h}!JackPortIsTerminal@{JackPortIsTerminal}}\item[{\em 
\hypertarget{types_8h_edaf361ba41ec2f8ac6e272daf4b97444acc7e43759142b42084e9817ff5c86a}{
Jack\-Port\-Is\-Terminal}
\label{types_8h_edaf361ba41ec2f8ac6e272daf4b97444acc7e43759142b42084e9817ff5c86a}
}]Jack\-Port\-Is\-Terminal means:

for an input port: the data received by the port will not be passed on or made available at any other port

for an output port: the data available at the port does not originate from any other port

Audio synthesizers, I/O hardware interface clients, HDR systems are examples of clients that would set this flag for their ports. \end{description}
\end{Desc}

\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e}{
\index{types.h@{types.h}!JackStatus@{JackStatus}}
\index{JackStatus@{JackStatus}!types.h@{types.h}}
\subsubsection[JackStatus]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{types_8h_77121460bd9f54fb3ac3525c3c76148e}{Jack\-Status}}}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e}


\hyperlink{types_8h_b2c415ccde58eeccb2a74f25abf7e003}{jack\_\-status\_\-t} bits \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{JackFailure@{JackFailure}!types.h@{types.h}}\index{types.h@{types.h}!JackFailure@{JackFailure}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148ef10c22d5a067cbc568d942ff3f181587}{
Jack\-Failure}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148ef10c22d5a067cbc568d942ff3f181587}
}]Overall operation failed. \index{JackInvalidOption@{JackInvalidOption}!types.h@{types.h}}\index{types.h@{types.h}!JackInvalidOption@{JackInvalidOption}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e66cd9e6ea501d7df16d1055dfce9e078}{
Jack\-Invalid\-Option}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e66cd9e6ea501d7df16d1055dfce9e078}
}]The operation contained an invalid or unsupported option. \index{JackNameNotUnique@{JackNameNotUnique}!types.h@{types.h}}\index{types.h@{types.h}!JackNameNotUnique@{JackNameNotUnique}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e4b3acf57d2db65ea9cf56005e51f717b}{
Jack\-Name\-Not\-Unique}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e4b3acf57d2db65ea9cf56005e51f717b}
}]The desired client name was not unique. With the \hyperlink{types_8h_ef3dd2cdf802563454c817f0b7772085366dd9fdfc4bce02f158ef6d3a5c4807}{Jack\-Use\-Exact\-Name} option this situation is fatal. Otherwise, the name was modified by appending a dash and a two-digit number in the range \char`\"{}-01\char`\"{} to \char`\"{}-99\char`\"{}. The \hyperlink{jack_8h_82faa1fa5a0d09ed8161e74e2370a04f}{jack\_\-get\_\-client\_\-name()} function will return the exact string that was used. If the specified {\em client\_\-name\/} plus these extra characters would be too long, the open fails instead. \index{JackServerStarted@{JackServerStarted}!types.h@{types.h}}\index{types.h@{types.h}!JackServerStarted@{JackServerStarted}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e73af37eb263c8710e36299b9a5454f8b}{
Jack\-Server\-Started}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e73af37eb263c8710e36299b9a5454f8b}
}]The JACK server was started as a result of this operation. Otherwise, it was running already. In either case the caller is now connected to jackd, so there is no race condition. When the server shuts down, the client will find out. \index{JackServerFailed@{JackServerFailed}!types.h@{types.h}}\index{types.h@{types.h}!JackServerFailed@{JackServerFailed}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148ea755e332e3e21ee47ad26e409a686a59}{
Jack\-Server\-Failed}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148ea755e332e3e21ee47ad26e409a686a59}
}]Unable to connect to the JACK server. \index{JackServerError@{JackServerError}!types.h@{types.h}}\index{types.h@{types.h}!JackServerError@{JackServerError}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148eaca7a0f32c8cc91645347e96460c0014}{
Jack\-Server\-Error}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148eaca7a0f32c8cc91645347e96460c0014}
}]Communication error with the JACK server. \index{JackNoSuchClient@{JackNoSuchClient}!types.h@{types.h}}\index{types.h@{types.h}!JackNoSuchClient@{JackNoSuchClient}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148ec2d87ba09f1ae77becb995fb6b2fce7d}{
Jack\-No\-Such\-Client}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148ec2d87ba09f1ae77becb995fb6b2fce7d}
}]Requested client does not exist. \index{JackLoadFailure@{JackLoadFailure}!types.h@{types.h}}\index{types.h@{types.h}!JackLoadFailure@{JackLoadFailure}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e146dfe0fe13cd36d2638a8c8876e39a2}{
Jack\-Load\-Failure}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e146dfe0fe13cd36d2638a8c8876e39a2}
}]Unable to load internal client \index{JackInitFailure@{JackInitFailure}!types.h@{types.h}}\index{types.h@{types.h}!JackInitFailure@{JackInitFailure}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e073aa51f49ba98277a31917b8a1e43df}{
Jack\-Init\-Failure}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e073aa51f49ba98277a31917b8a1e43df}
}]Unable to initialize client \index{JackShmFailure@{JackShmFailure}!types.h@{types.h}}\index{types.h@{types.h}!JackShmFailure@{JackShmFailure}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148ec079e46fa2515777f9f4f90d3f1b25ea}{
Jack\-Shm\-Failure}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148ec079e46fa2515777f9f4f90d3f1b25ea}
}]Unable to access shared memory \index{JackVersionError@{JackVersionError}!types.h@{types.h}}\index{types.h@{types.h}!JackVersionError@{JackVersionError}}\item[{\em 
\hypertarget{types_8h_77121460bd9f54fb3ac3525c3c76148e710aa3cdc27ccaae816a4ded38a9d34d}{
Jack\-Version\-Error}
\label{types_8h_77121460bd9f54fb3ac3525c3c76148e710aa3cdc27ccaae816a4ded38a9d34d}
}]Client's protocol version does not match \end{description}
\end{Desc}

