\hypertarget{types_8h}{ \section{types.h File Reference} \label{types_8h}\index{types.h@{types.h}} } {\tt \#include $<$limits.h$>$}\par \subsection*{Defines} \begin{CompactItemize} \item \#define \hyperlink{types_8h_a0}{JACK\_\-MAX\_\-FRAMES}\ ULONG\_\-MAX; \item \#define \hyperlink{types_8h_a1}{JACK\_\-DEFAULT\_\-AUDIO\_\-TYPE}\ \char`\"{}32 bit float mono audio\char`\"{} \end{CompactItemize} \subsection*{Typedefs} \begin{CompactItemize} \item typedef char \hyperlink{types_8h_a2}{shm\_\-name\_\-t} \mbox{[}32\mbox{]} \item typedef unsigned long \hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} \item typedef unsigned long long \hyperlink{types_8h_a4}{jack\_\-time\_\-t} \item typedef \_\-jack\_\-port \hyperlink{types_8h_a5}{jack\_\-port\_\-t} \item typedef \_\-jack\_\-client \hyperlink{types_8h_a6}{jack\_\-client\_\-t} \item typedef unsigned long \hyperlink{types_8h_a7}{jack\_\-port\_\-id\_\-t} \item typedef int($\ast$ \hyperlink{types_8h_a8}{Jack\-Process\-Callback} )(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg) \item typedef int($\ast$ \hyperlink{types_8h_a9}{Jack\-Graph\-Order\-Callback} )(void $\ast$arg) \item typedef int($\ast$ \hyperlink{types_8h_a10}{Jack\-XRun\-Callback} )(void $\ast$arg) \item typedef int($\ast$ \hyperlink{types_8h_a11}{Jack\-Buffer\-Size\-Callback} )(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg) \item typedef int($\ast$ \hyperlink{types_8h_a12}{Jack\-Sample\-Rate\-Callback} )(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg) \item typedef void($\ast$ \hyperlink{types_8h_a13}{Jack\-Port\-Registration\-Callback} )(\hyperlink{types_8h_a7}{jack\_\-port\_\-id\_\-t} port, int, void $\ast$arg) \item typedef float \hyperlink{types_8h_a14}{jack\_\-default\_\-audio\_\-sample\_\-t} \end{CompactItemize} \subsection*{Enumerations} \begin{CompactItemize} \item enum \hyperlink{types_8h_a20}{Jack\-Port\-Flags} \{ \par \hyperlink{types_8h_a20a15}{Jack\-Port\-Is\-Input} = 0x1, \hyperlink{types_8h_a20a16}{Jack\-Port\-Is\-Output} = 0x2, \hyperlink{types_8h_a20a17}{Jack\-Port\-Is\-Physical} = 0x4, \hyperlink{types_8h_a20a18}{Jack\-Port\-Can\-Monitor} = 0x8, \par \hyperlink{types_8h_a20a19}{Jack\-Port\-Is\-Terminal} = 0x10 \} \end{CompactItemize} \subsection{Define Documentation} \hypertarget{types_8h_a1}{ \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_a1} Used for the type argument of \hyperlink{jack_8h_a15}{jack\_\-port\_\-register()}. \hypertarget{types_8h_a0}{ \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\ ULONG\_\-MAX;}} \label{types_8h_a0} Maximum value that can be stored in jack\_\-nframes\_\-t \subsection{Typedef Documentation} \hypertarget{types_8h_a6}{ \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_a6}{jack\_\-client\_\-t}}} \label{types_8h_a6} jack\_\-client\_\-t is an opaque type. You may only access it using the API provided. \hypertarget{types_8h_a14}{ \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_a14}{jack\_\-default\_\-audio\_\-sample\_\-t}}} \label{types_8h_a14} 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_a3}{ \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 unsigned long \hyperlink{types_8h_a3}{jack\_\-nframes\_\-t}}} \label{types_8h_a3} Type used to represent sample frame counts. \hypertarget{types_8h_a7}{ \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 unsigned long \hyperlink{types_8h_a7}{jack\_\-port\_\-id\_\-t}}} \label{types_8h_a7} Ports have unique ids. A port registration callback is the only place you ever need to know their value. \hypertarget{types_8h_a5}{ \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_a5}{jack\_\-port\_\-t}}} \label{types_8h_a5} jack\_\-port\_\-t is an opaque type. You may only access it using the API provided. \hypertarget{types_8h_a4}{ \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 unsigned long long \hyperlink{types_8h_a4}{jack\_\-time\_\-t}}} \label{types_8h_a4} Type used to represent the value of free running monotonic clock with units of microseconds. \hypertarget{types_8h_a11}{ \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_a11}{Jack\-Buffer\-Size\-Callback})(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}} \label{types_8h_a11} Prototype for the client supplied function that is called when the engine buffersize changes. Note! Use of this callback function is deprecated! \begin{Desc} \item[Parameters:] \begin{description} \item[{\em nframes}]new engine buffer size \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_a9}{ \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_a9}{Jack\-Graph\-Order\-Callback})(void $\ast$arg)}} \label{types_8h_a9} 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_a13}{ \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_a13}{Jack\-Port\-Registration\-Callback})(\hyperlink{types_8h_a7}{jack\_\-port\_\-id\_\-t} port, int, void $\ast$arg)}} \label{types_8h_a13} 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_a8}{ \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_a8}{Jack\-Process\-Callback})(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}} \label{types_8h_a8} 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_a48}{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_a12}{ \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_a12}{Jack\-Sample\-Rate\-Callback})(\hyperlink{types_8h_a3}{jack\_\-nframes\_\-t} nframes, void $\ast$arg)}} \label{types_8h_a12} 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_a10}{ \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_a10}{Jack\-XRun\-Callback})(void $\ast$arg)}} \label{types_8h_a10} Prototype for the client supplied function that is called whenever an xrun has occured. \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_a2}{ \index{types.h@{types.h}!shm_name_t@{shm\_\-name\_\-t}} \index{shm_name_t@{shm\_\-name\_\-t}!types.h@{types.h}} \subsubsection[shm\_\-name\_\-t]{\setlength{\rightskip}{0pt plus 5cm}typedef char \hyperlink{types_8h_a2}{shm\_\-name\_\-t}\mbox{[}32\mbox{]}}} \label{types_8h_a2} \subsection{Enumeration Type Documentation} \hypertarget{types_8h_a20}{ \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_a20}{Jack\-Port\-Flags}}} \label{types_8h_a20} 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[Enumeration values: ]\par \begin{description} \index{JackPortIsInput@{JackPortIsInput}!types.h@{types.h}}\index{types.h@{types.h}!JackPortIsInput@{JackPortIsInput}}\item[{\em \hypertarget{types_8h_a20a15}{ {\em Jack\-Port\-Is\-Input}} \label{types_8h_a20a15} }]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_a20a16}{ {\em Jack\-Port\-Is\-Output}} \label{types_8h_a20a16} }]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_a20a17}{ {\em Jack\-Port\-Is\-Physical}} \label{types_8h_a20a17} }]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_a20a18}{ {\em Jack\-Port\-Can\-Monitor}} \label{types_8h_a20a18} }]if Jack\-Port\-Can\-Monitor is set, then a call to \hyperlink{jack_8h_a39}{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_a20a19}{ {\em Jack\-Port\-Is\-Terminal}} \label{types_8h_a20a19} }]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 h/w interface clients, HDR systems are examples of things that would set this flag for their ports. \end{description} \end{Desc}