\hypertarget{group__liblo}{
\section{High-level OSC API}
\label{group__liblo}\index{High-level OSC API@{High-level OSC API}}
}
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{structlo__timetag}{lo\_\-timetag}
\begin{CompactList}\small\item\em A structure to store OSC Time\-Tag values. \item\end{CompactList}\item 
union \hyperlink{unionlo__arg}{lo\_\-arg}
\begin{CompactList}\small\item\em Union used to read values from incoming messages. \item\end{CompactList}\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{group__liblo_g53d007f057c3fc6d267c7f57a20b6599}{LO\_\-TT\_\-IMMEDIATE}~((\hyperlink{structlo__timetag}{lo\_\-timetag})\{0U,0U\})
\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{group__liblo_ge5c777847d7951c06ea4a216ce63c524}{lo\_\-type} \{ \par
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524bc6cd9992fabc7c714864adda7cd70e2}{LO\_\-INT32} =  'i', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c5249681b2e130a48619b610db1769dc5a72}{LO\_\-FLOAT} =  'f', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524f874a59b4d348932132c79351fbaf3b3}{LO\_\-STRING} =  's', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c5246e174b8a57672517cd58392e36196d94}{LO\_\-BLOB} =  'b', 
\par
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524b2529c6b6158b4a00921c769e547de90}{LO\_\-INT64} =  'h', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c5248a5e4c26dca9076e20da7c70a4f61689}{LO\_\-TIMETAG} =  't', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c52449cbddbcccace529815df2592e792632}{LO\_\-DOUBLE} =  'd', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524a72d0aa6ea5a0a311bc8426a23b8951e}{LO\_\-SYMBOL} =  'S', 
\par
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524126c4095d1acc67063428c6dec1379c1}{LO\_\-CHAR} =  'c', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c52404f796a095ec5947401a134d55879a1b}{LO\_\-MIDI} =  'm', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524e9a303f6de370326340a16f9d2da160f}{LO\_\-TRUE} =  'T', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524283c1581c2eff6545da55899b6de92ff}{LO\_\-FALSE} =  'F', 
\par
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c52426973c7d971772a4db9849e760270a7a}{LO\_\-NIL} =  'N', 
\hyperlink{group__liblo_gge5c777847d7951c06ea4a216ce63c524656baee07d8372abef1207326f2cbb27}{LO\_\-INFINITUM} =  'I'
 \}
\begin{CompactList}\small\item\em An enumeration of the OSC types liblo can send and receive. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} \hyperlink{group__liblo_ge19a6ef567d8ed9786fa2b5fd8f25e6a}{lo\_\-address\_\-new} (const char $\ast$host, const char $\ast$port)
\begin{CompactList}\small\item\em Declare an OSC destination, given IP address and port number. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} \hyperlink{group__liblo_g11eff481830b7e424ed5f289fc854cec}{lo\_\-address\_\-new\_\-from\_\-url} (const char $\ast$url)
\begin{CompactList}\small\item\em Create a lo\_\-address object from an OSC URL. \item\end{CompactList}\item 
void \hyperlink{group__liblo_g4a932a7ef085fc54d2a4a428549bac38}{lo\_\-address\_\-free} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} t)
\begin{CompactList}\small\item\em Free the memory used by the lo\_\-address object. \item\end{CompactList}\item 
int \hyperlink{group__liblo_g980666e4501626b8ed4868df424ee998}{lo\_\-send} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} targ, const char $\ast$path, const char $\ast$type,...)
\begin{CompactList}\small\item\em Send a OSC formatted message to the address specified. \item\end{CompactList}\item 
int \hyperlink{group__liblo_gf83288e495ef7c5ee80e26ab7b00987f}{lo\_\-send\_\-from} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} targ, \hyperlink{lo__types_8h_7cdce9677087f0b2190ebbc496105f67}{lo\_\-server} from, \hyperlink{structlo__timetag}{lo\_\-timetag} ts, const char $\ast$path, const char $\ast$type,...)
\begin{CompactList}\small\item\em Send a OSC formatted message to the address specified, from the same socket as the specificied server. \item\end{CompactList}\item 
int \hyperlink{group__liblo_g2022c4300294742f54da17472a479612}{lo\_\-send\_\-timestamped} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} targ, \hyperlink{structlo__timetag}{lo\_\-timetag} ts, const char $\ast$path, const char $\ast$type,...)
\begin{CompactList}\small\item\em Send a OSC formatted message to the address specified, scheduled to be dispatch at some time in the future. \item\end{CompactList}\item 
int \hyperlink{group__liblo_g4dda68463fb8910c519305754d021a03}{lo\_\-address\_\-errno} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} a)
\begin{CompactList}\small\item\em Return the error number from the last failed lo\_\-send or lo\_\-address\_\-new call. \item\end{CompactList}\item 
const char $\ast$ \hyperlink{group__liblo_gdfa8717d94febf3152051cca079826b0}{lo\_\-address\_\-errstr} (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} a)
\begin{CompactList}\small\item\em Return the error string from the last failed lo\_\-send or lo\_\-address\_\-new call. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} \hyperlink{group__liblo_g58a89fab646a5dc4e528691c26508f7a}{lo\_\-server\_\-thread\_\-new} (const char $\ast$port, \hyperlink{lo__types_8h_bcd092cb4b0beee857552b44a0f01834}{lo\_\-err\_\-handler} err\_\-h)
\begin{CompactList}\small\item\em Create a new server thread to handle incoming OSC messages. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} \hyperlink{group__liblo_ga4ddd9b09f103e4cd085c0170a81de79}{lo\_\-server\_\-thread\_\-new\_\-with\_\-proto} (const char $\ast$port, int proto, \hyperlink{lo__types_8h_bcd092cb4b0beee857552b44a0f01834}{lo\_\-err\_\-handler} err\_\-h)
\begin{CompactList}\small\item\em Create a new server thread to handle incoming OSC messages, specifying protocol. \item\end{CompactList}\item 
void \hyperlink{group__liblo_g0027ad36c6794aee4c94d54de7298624}{lo\_\-server\_\-thread\_\-free} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Free memory taken by a server thread. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_982bf0cf76b6b57712200b989e0084b7}{lo\_\-method} \hyperlink{group__liblo_ge41e272c7d7571a88226cab965e6d27f}{lo\_\-server\_\-thread\_\-add\_\-method} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st, const char $\ast$path, const char $\ast$typespec, \hyperlink{lo__types_8h_033f5fd40f269f513056ea27f15239c8}{lo\_\-method\_\-handler} h, void $\ast$user\_\-data)
\begin{CompactList}\small\item\em Add an OSC method to the specifed server thread. \item\end{CompactList}\item 
void \hyperlink{group__liblo_g4f1847afcb1010f93236678ca1f01bc8}{lo\_\-server\_\-thread\_\-del\_\-method} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st, const char $\ast$path, const char $\ast$typespec)
\begin{CompactList}\small\item\em Delete an OSC method from the specifed server thread. \item\end{CompactList}\item 
void \hyperlink{group__liblo_gc540e25a3f6d04ce0cb980ed6c484322}{lo\_\-server\_\-thread\_\-start} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Start the server thread. \item\end{CompactList}\item 
void \hyperlink{group__liblo_g889628c53d87584f542e2958f440d4c5}{lo\_\-server\_\-thread\_\-stop} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Stop the server thread. \item\end{CompactList}\item 
int \hyperlink{group__liblo_gb80532114f3afd3bc6545b7631675d17}{lo\_\-server\_\-thread\_\-get\_\-port} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Return the port number that the server thread has bound to. \item\end{CompactList}\item 
char $\ast$ \hyperlink{group__liblo_gfa0c5b17e28fa2b54fadde56f68f5426}{lo\_\-server\_\-thread\_\-get\_\-url} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Return a URL describing the address of the server thread. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_7cdce9677087f0b2190ebbc496105f67}{lo\_\-server} \hyperlink{group__liblo_g493a966c36d86e29d25b6adbcea9f408}{lo\_\-server\_\-thread\_\-get\_\-server} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Return the lo\_\-server for a lo\_\-server\_\-thread. \item\end{CompactList}\item 
int \hyperlink{group__liblo_ge402c7975b9f89519f03ace3e391b68c}{lo\_\-server\_\-thread\_\-events\_\-pending} (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} st)
\begin{CompactList}\small\item\em Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the thread. \item\end{CompactList}\item 
\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} \hyperlink{group__liblo_g0a1623c98f6fa85985a16b51175b5762}{lo\_\-blob\_\-new} (int32\_\-t size, const void $\ast$data)
\begin{CompactList}\small\item\em Create a new OSC blob type. \item\end{CompactList}\item 
void \hyperlink{group__liblo_gb3bb5c801d6cb551e330442b679c135d}{lo\_\-blob\_\-free} (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} b)
\begin{CompactList}\small\item\em Free the memory taken by a blob. \item\end{CompactList}\item 
uint32\_\-t \hyperlink{group__liblo_g0744d79bfac4bd2a0755a5477776439d}{lo\_\-blob\_\-datasize} (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} b)
\begin{CompactList}\small\item\em Return the ammount of valid data in a lo blob object. \item\end{CompactList}\item 
void $\ast$ \hyperlink{group__liblo_g1c17298375fa544924b72569f9974ba0}{lo\_\-blob\_\-dataptr} (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} b)
\begin{CompactList}\small\item\em Return a pointer to the start of the blob data to allow contents to be changed. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Defines the high-level API functions neccesary to implement OSC support. Should be adequate for most applications, but ig you require lower level control you can use the functions defined in \hyperlink{lo__lowlevel_8h}{lo\_\-lowlevel.h}. 

\subsection{Define Documentation}
\hypertarget{group__liblo_g53d007f057c3fc6d267c7f57a20b6599}{
\index{liblo@{liblo}!LO_TT_IMMEDIATE@{LO\_\-TT\_\-IMMEDIATE}}
\index{LO_TT_IMMEDIATE@{LO\_\-TT\_\-IMMEDIATE}!liblo@{liblo}}
\subsubsection[LO\_\-TT\_\-IMMEDIATE]{\setlength{\rightskip}{0pt plus 5cm}\#define LO\_\-TT\_\-IMMEDIATE~((\hyperlink{structlo__timetag}{lo\_\-timetag})\{0U,0U\})}}
\label{group__liblo_g53d007f057c3fc6d267c7f57a20b6599}




\subsection{Enumeration Type Documentation}
\hypertarget{group__liblo_ge5c777847d7951c06ea4a216ce63c524}{
\index{liblo@{liblo}!lo_type@{lo\_\-type}}
\index{lo_type@{lo\_\-type}!liblo@{liblo}}
\subsubsection[lo\_\-type]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{group__liblo_ge5c777847d7951c06ea4a216ce63c524}{lo\_\-type}}}
\label{group__liblo_ge5c777847d7951c06ea4a216ce63c524}


An enumeration of the OSC types liblo can send and receive. 

The value of the enumeration is the typechar used to tag messages and to specify arguemnts with \hyperlink{group__liblo_g980666e4501626b8ed4868df424ee998}{lo\_\-send()}. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LO_INT32@{LO\_\-INT32}!liblo@{liblo}}\index{liblo@{liblo}!LO_INT32@{LO\_\-INT32}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524bc6cd9992fabc7c714864adda7cd70e2}{
LO\_\-INT32}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524bc6cd9992fabc7c714864adda7cd70e2}
}]32 bit signed integer. \index{LO_FLOAT@{LO\_\-FLOAT}!liblo@{liblo}}\index{liblo@{liblo}!LO_FLOAT@{LO\_\-FLOAT}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c5249681b2e130a48619b610db1769dc5a72}{
LO\_\-FLOAT}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c5249681b2e130a48619b610db1769dc5a72}
}]32 bit IEEE-754 float. \index{LO_STRING@{LO\_\-STRING}!liblo@{liblo}}\index{liblo@{liblo}!LO_STRING@{LO\_\-STRING}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524f874a59b4d348932132c79351fbaf3b3}{
LO\_\-STRING}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524f874a59b4d348932132c79351fbaf3b3}
}]Standard C, NULL terminated string. \index{LO_BLOB@{LO\_\-BLOB}!liblo@{liblo}}\index{liblo@{liblo}!LO_BLOB@{LO\_\-BLOB}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c5246e174b8a57672517cd58392e36196d94}{
LO\_\-BLOB}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c5246e174b8a57672517cd58392e36196d94}
}]OSC binary blob type. Accessed using the lo\_\-blob\_\-$\ast$() functions. \index{LO_INT64@{LO\_\-INT64}!liblo@{liblo}}\index{liblo@{liblo}!LO_INT64@{LO\_\-INT64}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524b2529c6b6158b4a00921c769e547de90}{
LO\_\-INT64}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524b2529c6b6158b4a00921c769e547de90}
}]64 bit signed integer. \index{LO_TIMETAG@{LO\_\-TIMETAG}!liblo@{liblo}}\index{liblo@{liblo}!LO_TIMETAG@{LO\_\-TIMETAG}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c5248a5e4c26dca9076e20da7c70a4f61689}{
LO\_\-TIMETAG}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c5248a5e4c26dca9076e20da7c70a4f61689}
}]OSC Time\-Tag type, represented by the \hyperlink{structlo__timetag}{lo\_\-timetag} structure. \index{LO_DOUBLE@{LO\_\-DOUBLE}!liblo@{liblo}}\index{liblo@{liblo}!LO_DOUBLE@{LO\_\-DOUBLE}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c52449cbddbcccace529815df2592e792632}{
LO\_\-DOUBLE}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c52449cbddbcccace529815df2592e792632}
}]64 bit IEEE-754 double. \index{LO_SYMBOL@{LO\_\-SYMBOL}!liblo@{liblo}}\index{liblo@{liblo}!LO_SYMBOL@{LO\_\-SYMBOL}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524a72d0aa6ea5a0a311bc8426a23b8951e}{
LO\_\-SYMBOL}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524a72d0aa6ea5a0a311bc8426a23b8951e}
}]Standard C, NULL terminated, string. Used in systems which distinguish strings and symbols. \index{LO_CHAR@{LO\_\-CHAR}!liblo@{liblo}}\index{liblo@{liblo}!LO_CHAR@{LO\_\-CHAR}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524126c4095d1acc67063428c6dec1379c1}{
LO\_\-CHAR}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524126c4095d1acc67063428c6dec1379c1}
}]Standard C, 8 bit, char variable. \index{LO_MIDI@{LO\_\-MIDI}!liblo@{liblo}}\index{liblo@{liblo}!LO_MIDI@{LO\_\-MIDI}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c52404f796a095ec5947401a134d55879a1b}{
LO\_\-MIDI}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c52404f796a095ec5947401a134d55879a1b}
}]A 4 byte MIDI packet. \index{LO_TRUE@{LO\_\-TRUE}!liblo@{liblo}}\index{liblo@{liblo}!LO_TRUE@{LO\_\-TRUE}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524e9a303f6de370326340a16f9d2da160f}{
LO\_\-TRUE}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524e9a303f6de370326340a16f9d2da160f}
}]Sybol representing the value True. \index{LO_FALSE@{LO\_\-FALSE}!liblo@{liblo}}\index{liblo@{liblo}!LO_FALSE@{LO\_\-FALSE}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524283c1581c2eff6545da55899b6de92ff}{
LO\_\-FALSE}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524283c1581c2eff6545da55899b6de92ff}
}]Sybol representing the value False. \index{LO_NIL@{LO\_\-NIL}!liblo@{liblo}}\index{liblo@{liblo}!LO_NIL@{LO\_\-NIL}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c52426973c7d971772a4db9849e760270a7a}{
LO\_\-NIL}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c52426973c7d971772a4db9849e760270a7a}
}]Sybol representing the value Nil. \index{LO_INFINITUM@{LO\_\-INFINITUM}!liblo@{liblo}}\index{liblo@{liblo}!LO_INFINITUM@{LO\_\-INFINITUM}}\item[{\em 
\hypertarget{group__liblo_gge5c777847d7951c06ea4a216ce63c524656baee07d8372abef1207326f2cbb27}{
LO\_\-INFINITUM}
\label{group__liblo_gge5c777847d7951c06ea4a216ce63c524656baee07d8372abef1207326f2cbb27}
}]Sybol representing the value Infinitum. \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{group__liblo_g4dda68463fb8910c519305754d021a03}{
\index{liblo@{liblo}!lo_address_errno@{lo\_\-address\_\-errno}}
\index{lo_address_errno@{lo\_\-address\_\-errno}!liblo@{liblo}}
\subsubsection[lo\_\-address\_\-errno]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-address\_\-errno (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em a})}}
\label{group__liblo_g4dda68463fb8910c519305754d021a03}


Return the error number from the last failed lo\_\-send or lo\_\-address\_\-new call. 

\hypertarget{group__liblo_gdfa8717d94febf3152051cca079826b0}{
\index{liblo@{liblo}!lo_address_errstr@{lo\_\-address\_\-errstr}}
\index{lo_address_errstr@{lo\_\-address\_\-errstr}!liblo@{liblo}}
\subsubsection[lo\_\-address\_\-errstr]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ lo\_\-address\_\-errstr (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em a})}}
\label{group__liblo_gdfa8717d94febf3152051cca079826b0}


Return the error string from the last failed lo\_\-send or lo\_\-address\_\-new call. 

\hypertarget{group__liblo_g4a932a7ef085fc54d2a4a428549bac38}{
\index{liblo@{liblo}!lo_address_free@{lo\_\-address\_\-free}}
\index{lo_address_free@{lo\_\-address\_\-free}!liblo@{liblo}}
\subsubsection[lo\_\-address\_\-free]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-address\_\-free (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em t})}}
\label{group__liblo_g4a932a7ef085fc54d2a4a428549bac38}


Free the memory used by the lo\_\-address object. 

\hypertarget{group__liblo_ge19a6ef567d8ed9786fa2b5fd8f25e6a}{
\index{liblo@{liblo}!lo_address_new@{lo\_\-address\_\-new}}
\index{lo_address_new@{lo\_\-address\_\-new}!liblo@{liblo}}
\subsubsection[lo\_\-address\_\-new]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} lo\_\-address\_\-new (const char $\ast$ {\em host}, const char $\ast$ {\em port})}}
\label{group__liblo_ge19a6ef567d8ed9786fa2b5fd8f25e6a}


Declare an OSC destination, given IP address and port number. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em host}]An IP address or number, or NULL for the local machine. \item[{\em port}]a decimal port number or service name.\end{description}
\end{Desc}
The lo\_\-address object may be used as the target of OSC messages.

Note: if you wish to receive replies from the target of this address, you must first create a lo\_\-server\_\-thread or lo\_\-server object which will receive the replies. The last lo\_\-server(\_\-thread) object creted will be the receiver. \hypertarget{group__liblo_g11eff481830b7e424ed5f289fc854cec}{
\index{liblo@{liblo}!lo_address_new_from_url@{lo\_\-address\_\-new\_\-from\_\-url}}
\index{lo_address_new_from_url@{lo\_\-address\_\-new\_\-from\_\-url}!liblo@{liblo}}
\subsubsection[lo\_\-address\_\-new\_\-from\_\-url]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} lo\_\-address\_\-new\_\-from\_\-url (const char $\ast$ {\em url})}}
\label{group__liblo_g11eff481830b7e424ed5f289fc854cec}


Create a lo\_\-address object from an OSC URL. 

example: osc.udp://localhost:4444/my/path/ \hypertarget{group__liblo_g1c17298375fa544924b72569f9974ba0}{
\index{liblo@{liblo}!lo_blob_dataptr@{lo\_\-blob\_\-dataptr}}
\index{lo_blob_dataptr@{lo\_\-blob\_\-dataptr}!liblo@{liblo}}
\subsubsection[lo\_\-blob\_\-dataptr]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ lo\_\-blob\_\-dataptr (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} {\em b})}}
\label{group__liblo_g1c17298375fa544924b72569f9974ba0}


Return a pointer to the start of the blob data to allow contents to be changed. 

\hypertarget{group__liblo_g0744d79bfac4bd2a0755a5477776439d}{
\index{liblo@{liblo}!lo_blob_datasize@{lo\_\-blob\_\-datasize}}
\index{lo_blob_datasize@{lo\_\-blob\_\-datasize}!liblo@{liblo}}
\subsubsection[lo\_\-blob\_\-datasize]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t lo\_\-blob\_\-datasize (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} {\em b})}}
\label{group__liblo_g0744d79bfac4bd2a0755a5477776439d}


Return the ammount of valid data in a lo blob object. 

If you want to know the storage size, use \hyperlink{group__liblolowlevel_geb001ab46bd8a8ba3c76bde7b67c10d7}{lo\_\-arg\_\-size()}. \hypertarget{group__liblo_gb3bb5c801d6cb551e330442b679c135d}{
\index{liblo@{liblo}!lo_blob_free@{lo\_\-blob\_\-free}}
\index{lo_blob_free@{lo\_\-blob\_\-free}!liblo@{liblo}}
\subsubsection[lo\_\-blob\_\-free]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-blob\_\-free (\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} {\em b})}}
\label{group__liblo_gb3bb5c801d6cb551e330442b679c135d}


Free the memory taken by a blob. 

\hypertarget{group__liblo_g0a1623c98f6fa85985a16b51175b5762}{
\index{liblo@{liblo}!lo_blob_new@{lo\_\-blob\_\-new}}
\index{lo_blob_new@{lo\_\-blob\_\-new}!liblo@{liblo}}
\subsubsection[lo\_\-blob\_\-new]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_75b79a38c4ca89ff3c7d350683f59425}{lo\_\-blob} lo\_\-blob\_\-new (int32\_\-t {\em size}, const void $\ast$ {\em data})}}
\label{group__liblo_g0a1623c98f6fa85985a16b51175b5762}


Create a new OSC blob type. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em size}]The ammount of space to allocate in the blob structure. \item[{\em data}]The data that will be used to initialise the blob, should be size bytes long. \end{description}
\end{Desc}
\hypertarget{group__liblo_g980666e4501626b8ed4868df424ee998}{
\index{liblo@{liblo}!lo_send@{lo\_\-send}}
\index{lo_send@{lo\_\-send}!liblo@{liblo}}
\subsubsection[lo\_\-send]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-send (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em targ}, const char $\ast$ {\em path}, const char $\ast$ {\em type},  {\em ...})}}
\label{group__liblo_g980666e4501626b8ed4868df424ee998}


Send a OSC formatted message to the address specified. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em targ}]The target OSC address \item[{\em path}]The OSC path the message will be delivered to \item[{\em type}]The types of the data items in the message, types are defined in lo\_\-types\_\-common.h \item[{\em ...}]The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\end{description}
\end{Desc}
example:\par
 lo\_\-send(t, \char`\"{}/foo/bar\char`\"{}, \char`\"{}ff\char`\"{}, 0.1f, 23.0f);

returns -1 on failure. \hypertarget{group__liblo_gf83288e495ef7c5ee80e26ab7b00987f}{
\index{liblo@{liblo}!lo_send_from@{lo\_\-send\_\-from}}
\index{lo_send_from@{lo\_\-send\_\-from}!liblo@{liblo}}
\subsubsection[lo\_\-send\_\-from]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-send\_\-from (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em targ}, \hyperlink{lo__types_8h_7cdce9677087f0b2190ebbc496105f67}{lo\_\-server} {\em from}, \hyperlink{structlo__timetag}{lo\_\-timetag} {\em ts}, const char $\ast$ {\em path}, const char $\ast$ {\em type},  {\em ...})}}
\label{group__liblo_gf83288e495ef7c5ee80e26ab7b00987f}


Send a OSC formatted message to the address specified, from the same socket as the specificied server. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em targ}]The target OSC address \item[{\em from}]The server to send message from (can be NULL to use new socket) \item[{\em ts}]The OSC timetag timestamp at which the message will be processed (can be LO\_\-TT\_\-IMMEDIATE if you don't want to attach a timetag) \item[{\em path}]The OSC path the message will be delivered to \item[{\em type}]The types of the data items in the message, types are defined in lo\_\-types\_\-common.h \item[{\em ...}]The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\end{description}
\end{Desc}
example:\par
 serv = lo\_\-server\_\-new(NULL, err);\par
 lo\_\-server\_\-add\_\-method(serv, \char`\"{}/reply\char`\"{}, \char`\"{}ss\char`\"{}, reply\_\-handler, NULL); lo\_\-send\_\-from(t, serv, LO\_\-TT\_\-IMMEDIATE, \char`\"{}/foo/bar\char`\"{}, \char`\"{}ff\char`\"{}, 0.1f, 23.0f);

on success returns the number of bytes sent, returns -1 on failure. \hypertarget{group__liblo_g2022c4300294742f54da17472a479612}{
\index{liblo@{liblo}!lo_send_timestamped@{lo\_\-send\_\-timestamped}}
\index{lo_send_timestamped@{lo\_\-send\_\-timestamped}!liblo@{liblo}}
\subsubsection[lo\_\-send\_\-timestamped]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-send\_\-timestamped (\hyperlink{lo__types_8h_2683bc4beedb94b18c0a4b43861bbef5}{lo\_\-address} {\em targ}, \hyperlink{structlo__timetag}{lo\_\-timetag} {\em ts}, const char $\ast$ {\em path}, const char $\ast$ {\em type},  {\em ...})}}
\label{group__liblo_g2022c4300294742f54da17472a479612}


Send a OSC formatted message to the address specified, scheduled to be dispatch at some time in the future. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em targ}]The target OSC address \item[{\em ts}]The OSC timetag timestamp at which the message will be processed \item[{\em path}]The OSC path the message will be delivered to \item[{\em type}]The types of the data items in the message, types are defined in lo\_\-types\_\-common.h \item[{\em ...}]The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\end{description}
\end{Desc}
example:\par
 \hyperlink{structlo__timetag}{lo\_\-timetag} now;\par
 lo\_\-timetag\_\-now(\&now);\par
 lo\_\-send\_\-timestamped(t, now, \char`\"{}/foo/bar\char`\"{}, \char`\"{}ff\char`\"{}, 0.1f, 23.0f);

on success returns the number of bytes sent, returns -1 on failure. \hypertarget{group__liblo_ge41e272c7d7571a88226cab965e6d27f}{
\index{liblo@{liblo}!lo_server_thread_add_method@{lo\_\-server\_\-thread\_\-add\_\-method}}
\index{lo_server_thread_add_method@{lo\_\-server\_\-thread\_\-add\_\-method}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-add\_\-method]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_982bf0cf76b6b57712200b989e0084b7}{lo\_\-method} lo\_\-server\_\-thread\_\-add\_\-method (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st}, const char $\ast$ {\em path}, const char $\ast$ {\em typespec}, \hyperlink{lo__types_8h_033f5fd40f269f513056ea27f15239c8}{lo\_\-method\_\-handler} {\em h}, void $\ast$ {\em user\_\-data})}}
\label{group__liblo_ge41e272c7d7571a88226cab965e6d27f}


Add an OSC method to the specifed server thread. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em st}]The server thread the method is to be added to. \item[{\em path}]The OSC path to register the method to. If NULL is passed the method will match all paths. \item[{\em typespec}]The typespec the method accepts. Incoming messages with similar typespecs (e.g. ones with numerical types in the same position) will be coerced to the typespec given here. \item[{\em h}]The method handler callback function that will be called it a matching message is received \item[{\em user\_\-data}]A value that will be passed to the callback function, h, when its invoked matching from this method. \end{description}
\end{Desc}
\hypertarget{group__liblo_g4f1847afcb1010f93236678ca1f01bc8}{
\index{liblo@{liblo}!lo_server_thread_del_method@{lo\_\-server\_\-thread\_\-del\_\-method}}
\index{lo_server_thread_del_method@{lo\_\-server\_\-thread\_\-del\_\-method}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-del\_\-method]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-server\_\-thread\_\-del\_\-method (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st}, const char $\ast$ {\em path}, const char $\ast$ {\em typespec})}}
\label{group__liblo_g4f1847afcb1010f93236678ca1f01bc8}


Delete an OSC method from the specifed server thread. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em st}]The server thread the method is to be removed from. \item[{\em path}]The OSC path of the method to delete. If NULL is passed the method will match the generic handler. \item[{\em typespec}]The typespec the method accepts. \end{description}
\end{Desc}
\hypertarget{group__liblo_ge402c7975b9f89519f03ace3e391b68c}{
\index{liblo@{liblo}!lo_server_thread_events_pending@{lo\_\-server\_\-thread\_\-events\_\-pending}}
\index{lo_server_thread_events_pending@{lo\_\-server\_\-thread\_\-events\_\-pending}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-events\_\-pending]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-server\_\-thread\_\-events\_\-pending (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_ge402c7975b9f89519f03ace3e391b68c}


Return true if there are scheduled events (eg. from bundles) waiting to be dispatched by the thread. 

\hypertarget{group__liblo_g0027ad36c6794aee4c94d54de7298624}{
\index{liblo@{liblo}!lo_server_thread_free@{lo\_\-server\_\-thread\_\-free}}
\index{lo_server_thread_free@{lo\_\-server\_\-thread\_\-free}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-free]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-server\_\-thread\_\-free (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_g0027ad36c6794aee4c94d54de7298624}


Free memory taken by a server thread. 

Frees the memory, and, if currently running will stop the associated thread. \hypertarget{group__liblo_gb80532114f3afd3bc6545b7631675d17}{
\index{liblo@{liblo}!lo_server_thread_get_port@{lo\_\-server\_\-thread\_\-get\_\-port}}
\index{lo_server_thread_get_port@{lo\_\-server\_\-thread\_\-get\_\-port}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-get\_\-port]{\setlength{\rightskip}{0pt plus 5cm}int lo\_\-server\_\-thread\_\-get\_\-port (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_gb80532114f3afd3bc6545b7631675d17}


Return the port number that the server thread has bound to. 

\hypertarget{group__liblo_g493a966c36d86e29d25b6adbcea9f408}{
\index{liblo@{liblo}!lo_server_thread_get_server@{lo\_\-server\_\-thread\_\-get\_\-server}}
\index{lo_server_thread_get_server@{lo\_\-server\_\-thread\_\-get\_\-server}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-get\_\-server]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_7cdce9677087f0b2190ebbc496105f67}{lo\_\-server} lo\_\-server\_\-thread\_\-get\_\-server (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_g493a966c36d86e29d25b6adbcea9f408}


Return the lo\_\-server for a lo\_\-server\_\-thread. 

This function is useful for passing a thread's lo\_\-server to \hyperlink{group__liblo_gf83288e495ef7c5ee80e26ab7b00987f}{lo\_\-send\_\-from()}. \hypertarget{group__liblo_gfa0c5b17e28fa2b54fadde56f68f5426}{
\index{liblo@{liblo}!lo_server_thread_get_url@{lo\_\-server\_\-thread\_\-get\_\-url}}
\index{lo_server_thread_get_url@{lo\_\-server\_\-thread\_\-get\_\-url}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-get\_\-url]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ lo\_\-server\_\-thread\_\-get\_\-url (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_gfa0c5b17e28fa2b54fadde56f68f5426}


Return a URL describing the address of the server thread. 

Return value must be free()'d to reclaim memory. \hypertarget{group__liblo_g58a89fab646a5dc4e528691c26508f7a}{
\index{liblo@{liblo}!lo_server_thread_new@{lo\_\-server\_\-thread\_\-new}}
\index{lo_server_thread_new@{lo\_\-server\_\-thread\_\-new}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-new]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} lo\_\-server\_\-thread\_\-new (const char $\ast$ {\em port}, \hyperlink{lo__types_8h_bcd092cb4b0beee857552b44a0f01834}{lo\_\-err\_\-handler} {\em err\_\-h})}}
\label{group__liblo_g58a89fab646a5dc4e528691c26508f7a}


Create a new server thread to handle incoming OSC messages. 

Server threads take care of the message reception and dispatch by transparently creating a systme thread to handle incoming messages. Use this if you do not want to handle the threading yourself.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em port}]If NULL is passed then an unused port will be chosen by the system, its number may be retreived with \hyperlink{group__liblo_gb80532114f3afd3bc6545b7631675d17}{lo\_\-server\_\-thread\_\-get\_\-port()} so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. \item[{\em err\_\-h}]A function that will be called in the event of an error being raised. The function prototype is defined in \hyperlink{lo__types_8h}{lo\_\-types.h} \end{description}
\end{Desc}
\hypertarget{group__liblo_ga4ddd9b09f103e4cd085c0170a81de79}{
\index{liblo@{liblo}!lo_server_thread_new_with_proto@{lo\_\-server\_\-thread\_\-new\_\-with\_\-proto}}
\index{lo_server_thread_new_with_proto@{lo\_\-server\_\-thread\_\-new\_\-with\_\-proto}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-new\_\-with\_\-proto]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} lo\_\-server\_\-thread\_\-new\_\-with\_\-proto (const char $\ast$ {\em port}, int {\em proto}, \hyperlink{lo__types_8h_bcd092cb4b0beee857552b44a0f01834}{lo\_\-err\_\-handler} {\em err\_\-h})}}
\label{group__liblo_ga4ddd9b09f103e4cd085c0170a81de79}


Create a new server thread to handle incoming OSC messages, specifying protocol. 

Server threads take care of the message reception and dispatch by transparently creating a systme thread to handle incoming messages. Use this if you do not want to handle the threading yourself.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em port}]If NULL is passed then an unused port will be chosen by the system, its number may be retreived with \hyperlink{group__liblo_gb80532114f3afd3bc6545b7631675d17}{lo\_\-server\_\-thread\_\-get\_\-port()} so it can be passed to clients. Otherwise a decimal port number, service name or UNIX domain socket path may be passed. \item[{\em proto}]The protocol to use, should be one of LO\_\-UDP, LO\_\-TCP or LO\_\-UNIX. \item[{\em err\_\-h}]A function that will be called in the event of an error being raised. The function prototype is defined in \hyperlink{lo__types_8h}{lo\_\-types.h} \end{description}
\end{Desc}
\hypertarget{group__liblo_gc540e25a3f6d04ce0cb980ed6c484322}{
\index{liblo@{liblo}!lo_server_thread_start@{lo\_\-server\_\-thread\_\-start}}
\index{lo_server_thread_start@{lo\_\-server\_\-thread\_\-start}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-start]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-server\_\-thread\_\-start (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_gc540e25a3f6d04ce0cb980ed6c484322}


Start the server thread. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em st}]the server thread to start. \end{description}
\end{Desc}
\hypertarget{group__liblo_g889628c53d87584f542e2958f440d4c5}{
\index{liblo@{liblo}!lo_server_thread_stop@{lo\_\-server\_\-thread\_\-stop}}
\index{lo_server_thread_stop@{lo\_\-server\_\-thread\_\-stop}!liblo@{liblo}}
\subsubsection[lo\_\-server\_\-thread\_\-stop]{\setlength{\rightskip}{0pt plus 5cm}void lo\_\-server\_\-thread\_\-stop (\hyperlink{lo__types_8h_d87e558fb63104a78862eeee6fa7b4d7}{lo\_\-server\_\-thread} {\em st})}}
\label{group__liblo_g889628c53d87584f542e2958f440d4c5}


Stop the server thread. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em st}]the server thread to start. \end{description}
\end{Desc}
