\doxysection{High-\/level OSC API }
\hypertarget{group__liblo}{}\label{group__liblo}\index{High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}}
\begin{DoxyCompactList}\small\item\em A structure to store OSC Time\+Tag values. \end{DoxyCompactList}\item 
union \mbox{\hyperlink{unionlo__arg}{lo\+\_\+arg}}
\begin{DoxyCompactList}\small\item\em Union used to read values from incoming messages. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\+\_\+\+TT\+\_\+\+IMMEDIATE}}~((\mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}})\{0U,1U\})
\begin{DoxyCompactList}\small\item\em A timetag constant representing "{}now"{}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28}{lo\+\_\+element\+\_\+type}} \{ \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64}{LO\+\_\+\+ELEMENT\+\_\+\+MESSAGE}} = 1
, \mbox{\hyperlink{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2}{LO\+\_\+\+ELEMENT\+\_\+\+BUNDLE}} = 2
 \}
\begin{DoxyCompactList}\small\item\em An enumeration of bundle element types liblo can handle. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__liblo_ga11838c576b0197c255ce805fd7434736}{lo\+\_\+type}} \{ \newline
\mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a4ba0490216baf238719e1200325b037d}{LO\+\_\+\+INT32}} = \textquotesingle{}i\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736ab3245e1b7edacde57f71d200840b0aa3}{LO\+\_\+\+FLOAT}} = \textquotesingle{}f\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a6121bddbedc79af47d86a8a25af47ad2}{LO\+\_\+\+STRING}} = \textquotesingle{}s\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a140f48c944b6c888846b8109ceaeb98b}{LO\+\_\+\+BLOB}} = \textquotesingle{}b\textquotesingle{}
, \newline
\mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736acfabb7d6ec1d4f9d033227de24c76b30}{LO\+\_\+\+INT64}} = \textquotesingle{}h\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a0516741a260e7109d2b0ed0c92beddbe}{LO\+\_\+\+TIMETAG}} = \textquotesingle{}t\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a0ca92c843dfb45f4edabdefd60cdeca6}{LO\+\_\+\+DOUBLE}} = \textquotesingle{}d\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a4ae18ed5170672498406c36b16e7a948}{LO\+\_\+\+SYMBOL}} = \textquotesingle{}S\textquotesingle{}
, \newline
\mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736af93c0cdf731b1edf4b9d44ad7d7dba26}{LO\+\_\+\+CHAR}} = \textquotesingle{}c\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736ad295b5f7669a7220102082e20fd14ec0}{LO\+\_\+\+MIDI}} = \textquotesingle{}m\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736ace8c12ac58d6aaee426dc41cfa609009}{LO\+\_\+\+TRUE}} = \textquotesingle{}T\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736ae85a45e7bc3999069d82da7245d172f4}{LO\+\_\+\+FALSE}} = \textquotesingle{}F\textquotesingle{}
, \newline
\mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a80fcaab02318c562b094ca407f81d2b3}{LO\+\_\+\+NIL}} = \textquotesingle{}N\textquotesingle{}
, \mbox{\hyperlink{group__liblo_gga11838c576b0197c255ce805fd7434736a9b77e96b653de1f91344549b9b9a0273}{LO\+\_\+\+INFINITUM}} = \textquotesingle{}I\textquotesingle{}
 \}
\begin{DoxyCompactList}\small\item\em An enumeration of the OSC types liblo can send and receive. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} \mbox{\hyperlink{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}{lo\+\_\+address\+\_\+new}} (const char \texorpdfstring{$\ast$}{*}host, const char \texorpdfstring{$\ast$}{*}port)
\begin{DoxyCompactList}\small\item\em Declare an OSC destination, given IP address and port number. Same as \doxylink{group__liblo_gaceb4b068bc48c2b075e790910cab3075}{lo\+\_\+address\+\_\+new\+\_\+with\+\_\+proto()}, but using UDP. \end{DoxyCompactList}\item 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} \mbox{\hyperlink{group__liblo_gaceb4b068bc48c2b075e790910cab3075}{lo\+\_\+address\+\_\+new\+\_\+with\+\_\+proto}} (int proto, const char \texorpdfstring{$\ast$}{*}host, const char \texorpdfstring{$\ast$}{*}port)
\begin{DoxyCompactList}\small\item\em Declare an OSC destination, given IP address and port number, specifying protocol. \end{DoxyCompactList}\item 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} \mbox{\hyperlink{group__liblo_ga1af2cb3c80393cba838f64dfcdc35620}{lo\+\_\+address\+\_\+new\+\_\+from\+\_\+url}} (const char \texorpdfstring{$\ast$}{*}url)
\begin{DoxyCompactList}\small\item\em Create a \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address} object from an OSC URL. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__liblo_ga82b9a2d1d30214114eb5298f43aebac5}{lo\+\_\+address\+\_\+free}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} t)
\begin{DoxyCompactList}\small\item\em Free the memory used by the \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address} object. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__liblo_gacd72097b92411db148844d89071fd281}{lo\+\_\+address\+\_\+set\+\_\+ttl}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} t, int ttl)
\begin{DoxyCompactList}\small\item\em Set the Time-\/to-\/\+Live value for a given target address. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__liblo_ga3652ba694ba3c153dc96917e7321131c}{lo\+\_\+address\+\_\+get\+\_\+ttl}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} t)
\begin{DoxyCompactList}\small\item\em Get the Time-\/to-\/\+Live value for a given target address. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} targ, const char \texorpdfstring{$\ast$}{*}path, const char \texorpdfstring{$\ast$}{*}type,...)
\begin{DoxyCompactList}\small\item\em Send a OSC formatted message to the address specified. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__liblo_gaa4a314562b09e2fd00749a5d0b4d0955}{lo\+\_\+send\+\_\+from}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} targ, \mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server}} from, \mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}} ts, const char \texorpdfstring{$\ast$}{*}path, const char \texorpdfstring{$\ast$}{*}type,...)
\begin{DoxyCompactList}\small\item\em Send a OSC formatted message to the address specified, from the same socket as the specified server. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__liblo_ga42ec6437789c7516c5b7909d8504751a}{lo\+\_\+send\+\_\+timestamped}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} targ, \mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}} ts, const char \texorpdfstring{$\ast$}{*}path, const char \texorpdfstring{$\ast$}{*}type,...)
\begin{DoxyCompactList}\small\item\em Send a OSC formatted message to the address specified, scheduled to be dispatch at some time in the future. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__liblo_ga407e1694a2ec58ee5b90c6390e0a5d53}{lo\+\_\+address\+\_\+errno}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} a)
\begin{DoxyCompactList}\small\item\em Return the error number from the last failed \doxylink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send()} or \doxylink{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}{lo\+\_\+address\+\_\+new()} call. \end{DoxyCompactList}\item 
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__liblo_gafc6f04654d86ee1ddcce471a180392bf}{lo\+\_\+address\+\_\+errstr}} (\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} a)
\begin{DoxyCompactList}\small\item\em Return the error string from the last failed \doxylink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send()} or \doxylink{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}{lo\+\_\+address\+\_\+new()} call. \end{DoxyCompactList}\item 
\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}} \mbox{\hyperlink{group__liblo_gaffb2348c70cb0e1214fd50bdc7574c39}{lo\+\_\+blob\+\_\+new}} (int32\+\_\+t size, const void \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Create a new OSC blob type. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__liblo_gaa46ef058cfdf14a16936c062ebac19b9}{lo\+\_\+blob\+\_\+free}} (\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}} b)
\begin{DoxyCompactList}\small\item\em Free the memory taken by a blob. \end{DoxyCompactList}\item 
uint32\+\_\+t \mbox{\hyperlink{group__liblo_gab6c9184f0a54f19319d8a6409487b466}{lo\+\_\+blob\+\_\+datasize}} (\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}} b)
\begin{DoxyCompactList}\small\item\em Return the amount of valid data in a \doxylink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob} object. \end{DoxyCompactList}\item 
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__liblo_gac468d3de3ae93baa4d28199b1368874d}{lo\+\_\+blob\+\_\+dataptr}} (\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}} b)
\begin{DoxyCompactList}\small\item\em Return a pointer to the start of the blob data to allow contents to be changed. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__liblo_gad9fa9a716b9df6b60357ea05e6c5f87b}{lo\+\_\+version}} (char \texorpdfstring{$\ast$}{*}verstr, int verstr\+\_\+size, int \texorpdfstring{$\ast$}{*}major, int \texorpdfstring{$\ast$}{*}minor, char \texorpdfstring{$\ast$}{*}extra, int extra\+\_\+size, int \texorpdfstring{$\ast$}{*}lt\+\_\+major, int \texorpdfstring{$\ast$}{*}lt\+\_\+minor, int \texorpdfstring{$\ast$}{*}lt\+\_\+bug)
\begin{DoxyCompactList}\small\item\em Get information on the version of liblo current in use. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Defines the high-\/level API functions necessary to implement OSC support. Should be adequate for most applications, but if you require lower level control you can use the functions defined in \doxylink{lo__lowlevel_8h}{lo\+\_\+lowlevel.\+h}

\label{doc-define-members}
\Hypertarget{group__liblo_doc-define-members}
\doxysubsection{Macro Definition Documentation}
\Hypertarget{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_TT\_IMMEDIATE@{LO\_TT\_IMMEDIATE}}
\index{LO\_TT\_IMMEDIATE@{LO\_TT\_IMMEDIATE}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{LO\_TT\_IMMEDIATE}{LO\_TT\_IMMEDIATE}}
{\footnotesize\ttfamily \label{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da} 
\#define LO\+\_\+\+TT\+\_\+\+IMMEDIATE~((\mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}})\{0U,1U\})}



A timetag constant representing "{}now"{}. 



Definition at line \mbox{\hyperlink{lo__osc__types_8h_source_l00151}{151}} of file \mbox{\hyperlink{lo__osc__types_8h_source}{lo\+\_\+osc\+\_\+types.\+h}}.



Referenced by \mbox{\hyperlink{lo__cpp_8h_source_l01114}{lo\+::immediate()}}.



\label{doc-enum-members}
\Hypertarget{group__liblo_doc-enum-members}
\doxysubsection{Enumeration Type Documentation}
\Hypertarget{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_element\_type@{lo\_element\_type}}
\index{lo\_element\_type@{lo\_element\_type}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_element\_type}{lo\_element\_type}}
{\footnotesize\ttfamily \label{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28} 
enum \mbox{\hyperlink{group__liblo_ga08432d01f2b8f4a32ffa58992a821f28}{lo\+\_\+element\+\_\+type}}}



An enumeration of bundle element types liblo can handle. 

The element of a bundle can either be a message or an other bundle. \begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_ELEMENT\_MESSAGE@{LO\_ELEMENT\_MESSAGE}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_ELEMENT\_MESSAGE@{LO\_ELEMENT\_MESSAGE}}}\Hypertarget{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64}\label{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28aef47b7b86b453d77bc37737400a2ad64} 
LO\+\_\+\+ELEMENT\+\_\+\+MESSAGE&bundle element is a message \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_ELEMENT\_BUNDLE@{LO\_ELEMENT\_BUNDLE}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_ELEMENT\_BUNDLE@{LO\_ELEMENT\_BUNDLE}}}\Hypertarget{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2}\label{group__liblo_gga08432d01f2b8f4a32ffa58992a821f28a35773b57d50789d1ac7e7e38d2b291c2} 
LO\+\_\+\+ELEMENT\+\_\+\+BUNDLE&bundle element is a bundle \\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{lo__osc__types_8h_source_l00048}{48}} of file \mbox{\hyperlink{lo__osc__types_8h_source}{lo\+\_\+osc\+\_\+types.\+h}}.

\Hypertarget{group__liblo_ga11838c576b0197c255ce805fd7434736}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_type@{lo\_type}}
\index{lo\_type@{lo\_type}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_type}{lo\_type}}
{\footnotesize\ttfamily \label{group__liblo_ga11838c576b0197c255ce805fd7434736} 
enum \mbox{\hyperlink{group__liblo_ga11838c576b0197c255ce805fd7434736}{lo\+\_\+type}}}



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 arguments with \doxylink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send()}. \begin{DoxyEnumFields}[2]{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_INT32@{LO\_INT32}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_INT32@{LO\_INT32}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a4ba0490216baf238719e1200325b037d}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a4ba0490216baf238719e1200325b037d} 
LO\+\_\+\+INT32&32 bit signed integer. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_FLOAT@{LO\_FLOAT}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_FLOAT@{LO\_FLOAT}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736ab3245e1b7edacde57f71d200840b0aa3}\label{group__liblo_gga11838c576b0197c255ce805fd7434736ab3245e1b7edacde57f71d200840b0aa3} 
LO\+\_\+\+FLOAT&32 bit IEEE-\/754 float. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_STRING@{LO\_STRING}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_STRING@{LO\_STRING}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a6121bddbedc79af47d86a8a25af47ad2}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a6121bddbedc79af47d86a8a25af47ad2} 
LO\+\_\+\+STRING&Standard C, NULL terminated string. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_BLOB@{LO\_BLOB}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_BLOB@{LO\_BLOB}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a140f48c944b6c888846b8109ceaeb98b}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a140f48c944b6c888846b8109ceaeb98b} 
LO\+\_\+\+BLOB&OSC binary blob type. Accessed using the lo\+\_\+blob\+\_\+\texorpdfstring{$\ast$}{*}() functions. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_INT64@{LO\_INT64}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_INT64@{LO\_INT64}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736acfabb7d6ec1d4f9d033227de24c76b30}\label{group__liblo_gga11838c576b0197c255ce805fd7434736acfabb7d6ec1d4f9d033227de24c76b30} 
LO\+\_\+\+INT64&64 bit signed integer. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_TIMETAG@{LO\_TIMETAG}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_TIMETAG@{LO\_TIMETAG}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a0516741a260e7109d2b0ed0c92beddbe}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a0516741a260e7109d2b0ed0c92beddbe} 
LO\+\_\+\+TIMETAG&OSC Time\+Tag type, represented by the \doxylink{structlo__timetag}{lo\+\_\+timetag} structure. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_DOUBLE@{LO\_DOUBLE}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_DOUBLE@{LO\_DOUBLE}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a0ca92c843dfb45f4edabdefd60cdeca6}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a0ca92c843dfb45f4edabdefd60cdeca6} 
LO\+\_\+\+DOUBLE&64 bit IEEE-\/754 double. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_SYMBOL@{LO\_SYMBOL}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_SYMBOL@{LO\_SYMBOL}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a4ae18ed5170672498406c36b16e7a948}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a4ae18ed5170672498406c36b16e7a948} 
LO\+\_\+\+SYMBOL&Standard C, NULL terminated, string. Used in systems which distinguish strings and symbols. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_CHAR@{LO\_CHAR}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_CHAR@{LO\_CHAR}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736af93c0cdf731b1edf4b9d44ad7d7dba26}\label{group__liblo_gga11838c576b0197c255ce805fd7434736af93c0cdf731b1edf4b9d44ad7d7dba26} 
LO\+\_\+\+CHAR&Standard C, 8 bit, char variable. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_MIDI@{LO\_MIDI}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_MIDI@{LO\_MIDI}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736ad295b5f7669a7220102082e20fd14ec0}\label{group__liblo_gga11838c576b0197c255ce805fd7434736ad295b5f7669a7220102082e20fd14ec0} 
LO\+\_\+\+MIDI&A 4 byte MIDI packet. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_TRUE@{LO\_TRUE}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_TRUE@{LO\_TRUE}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736ace8c12ac58d6aaee426dc41cfa609009}\label{group__liblo_gga11838c576b0197c255ce805fd7434736ace8c12ac58d6aaee426dc41cfa609009} 
LO\+\_\+\+TRUE&Sybol representing the value True. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_FALSE@{LO\_FALSE}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_FALSE@{LO\_FALSE}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736ae85a45e7bc3999069d82da7245d172f4}\label{group__liblo_gga11838c576b0197c255ce805fd7434736ae85a45e7bc3999069d82da7245d172f4} 
LO\+\_\+\+FALSE&Sybol representing the value False. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_NIL@{LO\_NIL}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_NIL@{LO\_NIL}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a80fcaab02318c562b094ca407f81d2b3}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a80fcaab02318c562b094ca407f81d2b3} 
LO\+\_\+\+NIL&Sybol representing the value Nil. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LO\_INFINITUM@{LO\_INFINITUM}!High-\/level OSC API@{High-\/level OSC API}}\index{High-\/level OSC API@{High-\/level OSC API}!LO\_INFINITUM@{LO\_INFINITUM}}}\Hypertarget{group__liblo_gga11838c576b0197c255ce805fd7434736a9b77e96b653de1f91344549b9b9a0273}\label{group__liblo_gga11838c576b0197c255ce805fd7434736a9b77e96b653de1f91344549b9b9a0273} 
LO\+\_\+\+INFINITUM&Sybol representing the value Infinitum. \\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{lo__osc__types_8h_source_l00061}{61}} of file \mbox{\hyperlink{lo__osc__types_8h_source}{lo\+\_\+osc\+\_\+types.\+h}}.



\label{doc-func-members}
\Hypertarget{group__liblo_doc-func-members}
\doxysubsection{Function Documentation}
\Hypertarget{group__liblo_ga407e1694a2ec58ee5b90c6390e0a5d53}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_errno@{lo\_address\_errno}}
\index{lo\_address\_errno@{lo\_address\_errno}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_errno()}{lo\_address\_errno()}}
{\footnotesize\ttfamily \label{group__liblo_ga407e1694a2ec58ee5b90c6390e0a5d53} 
int lo\+\_\+address\+\_\+errno (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{a}{}\end{DoxyParamCaption})}



Return the error number from the last failed \doxylink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send()} or \doxylink{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}{lo\+\_\+address\+\_\+new()} call. 

\Hypertarget{group__liblo_gafc6f04654d86ee1ddcce471a180392bf}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_errstr@{lo\_address\_errstr}}
\index{lo\_address\_errstr@{lo\_address\_errstr}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_errstr()}{lo\_address\_errstr()}}
{\footnotesize\ttfamily \label{group__liblo_gafc6f04654d86ee1ddcce471a180392bf} 
const char \texorpdfstring{$\ast$}{*} lo\+\_\+address\+\_\+errstr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{a}{}\end{DoxyParamCaption})}



Return the error string from the last failed \doxylink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\+\_\+send()} or \doxylink{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}{lo\+\_\+address\+\_\+new()} call. 

\Hypertarget{group__liblo_ga82b9a2d1d30214114eb5298f43aebac5}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_free@{lo\_address\_free}}
\index{lo\_address\_free@{lo\_address\_free}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_free()}{lo\_address\_free()}}
{\footnotesize\ttfamily \label{group__liblo_ga82b9a2d1d30214114eb5298f43aebac5} 
void lo\+\_\+address\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{t}{}\end{DoxyParamCaption})}



Free the memory used by the \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address} object. 

\Hypertarget{group__liblo_ga3652ba694ba3c153dc96917e7321131c}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_get\_ttl@{lo\_address\_get\_ttl}}
\index{lo\_address\_get\_ttl@{lo\_address\_get\_ttl}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_get\_ttl()}{lo\_address\_get\_ttl()}}
{\footnotesize\ttfamily \label{group__liblo_ga3652ba694ba3c153dc96917e7321131c} 
int lo\+\_\+address\+\_\+get\+\_\+ttl (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{t}{}\end{DoxyParamCaption})}



Get the Time-\/to-\/\+Live value for a given target address. 


\begin{DoxyParams}{Parameters}
{\em t} & An OSC address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An integer specifying the scope of a multicast UDP message. 
\end{DoxyReturn}
\Hypertarget{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_new@{lo\_address\_new}}
\index{lo\_address\_new@{lo\_address\_new}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_new()}{lo\_address\_new()}}
{\footnotesize\ttfamily \label{group__liblo_gae5af61a02ab08871d3ea070c8f770cfe} 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} lo\+\_\+address\+\_\+new (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{host}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{port}{}\end{DoxyParamCaption})}



Declare an OSC destination, given IP address and port number. Same as \doxylink{group__liblo_gaceb4b068bc48c2b075e790910cab3075}{lo\+\_\+address\+\_\+new\+\_\+with\+\_\+proto()}, but using UDP. 


\begin{DoxyParams}{Parameters}
{\em host} & An IP address or number, or NULL for the local machine. \\
\hline
{\em port} & a decimal port number or service name.\\
\hline
\end{DoxyParams}
The \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{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 either supply a \doxylink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server} by using \doxylink{group__liblo_gaa4a314562b09e2fd00749a5d0b4d0955}{lo\+\_\+send\+\_\+from()} or \doxylink{group__liblolowlevel_ga9d1aa7c1ee1ce60fe0cf7e3f1e5a6822}{lo\+\_\+send\+\_\+message\+\_\+from()} to send your message, otherwise the last \doxylink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server} or \doxylink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\+\_\+server\+\_\+thread} that was created will be used as the reply socket. The remote receiver may get the reply address by calling \doxylink{group__liblolowlevel_ga1f4e07e4f8b67edc98f4b300412a3dbb}{lo\+\_\+message\+\_\+get\+\_\+source()} in the message handler. See \doxylink{example__tcp__echo__server_8c_source}{example\+\_\+tcp\+\_\+echo\+\_\+server.\+c} for an example of how to establish bidirectional communication. \Hypertarget{group__liblo_ga1af2cb3c80393cba838f64dfcdc35620}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_new\_from\_url@{lo\_address\_new\_from\_url}}
\index{lo\_address\_new\_from\_url@{lo\_address\_new\_from\_url}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_new\_from\_url()}{lo\_address\_new\_from\_url()}}
{\footnotesize\ttfamily \label{group__liblo_ga1af2cb3c80393cba838f64dfcdc35620} 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} lo\+\_\+address\+\_\+new\+\_\+from\+\_\+url (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{url}{}\end{DoxyParamCaption})}



Create a \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address} object from an OSC URL. 

example\+: {\ttfamily "{}osc.\+udp\+://localhost\+:4444/my/path/"{}} \Hypertarget{group__liblo_gaceb4b068bc48c2b075e790910cab3075}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_new\_with\_proto@{lo\_address\_new\_with\_proto}}
\index{lo\_address\_new\_with\_proto@{lo\_address\_new\_with\_proto}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_new\_with\_proto()}{lo\_address\_new\_with\_proto()}}
{\footnotesize\ttfamily \label{group__liblo_gaceb4b068bc48c2b075e790910cab3075} 
\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}} lo\+\_\+address\+\_\+new\+\_\+with\+\_\+proto (\begin{DoxyParamCaption}\item[{int}]{proto}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{host}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{port}{}\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em proto} & The protocol to use, must be one of LO\+\_\+\+UDP, LO\+\_\+\+TCP or LO\+\_\+\+UNIX. \\
\hline
{\em host} & An IP address or number, or NULL for the local machine. \\
\hline
{\em port} & a decimal port number or service name.\\
\hline
\end{DoxyParams}
The \doxylink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{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 \doxylink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\+\_\+server\+\_\+thread} or \doxylink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server} object which will receive the replies. The last \doxylink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server(\+\_\+thread)} object created will be the receiver. \Hypertarget{group__liblo_gacd72097b92411db148844d89071fd281}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_address\_set\_ttl@{lo\_address\_set\_ttl}}
\index{lo\_address\_set\_ttl@{lo\_address\_set\_ttl}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_address\_set\_ttl()}{lo\_address\_set\_ttl()}}
{\footnotesize\ttfamily \label{group__liblo_gacd72097b92411db148844d89071fd281} 
void lo\+\_\+address\+\_\+set\+\_\+ttl (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{t}{, }\item[{int}]{ttl}{}\end{DoxyParamCaption})}



Set the Time-\/to-\/\+Live value for a given target address. 

This is required for sending multicast UDP messages. A value of 1 (the usual case) keeps the message within the subnet, while 255 means a global, unrestricted scope.


\begin{DoxyParams}{Parameters}
{\em t} & An OSC address. \\
\hline
{\em ttl} & An integer specifying the scope of a multicast UDP message. \\
\hline
\end{DoxyParams}
\Hypertarget{group__liblo_gac468d3de3ae93baa4d28199b1368874d}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_blob\_dataptr@{lo\_blob\_dataptr}}
\index{lo\_blob\_dataptr@{lo\_blob\_dataptr}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_blob\_dataptr()}{lo\_blob\_dataptr()}}
{\footnotesize\ttfamily \label{group__liblo_gac468d3de3ae93baa4d28199b1368874d} 
void \texorpdfstring{$\ast$}{*} lo\+\_\+blob\+\_\+dataptr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}}}]{b}{}\end{DoxyParamCaption})}



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

If the size is 0, this will return a NULL-\/pointer. \Hypertarget{group__liblo_gab6c9184f0a54f19319d8a6409487b466}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_blob\_datasize@{lo\_blob\_datasize}}
\index{lo\_blob\_datasize@{lo\_blob\_datasize}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_blob\_datasize()}{lo\_blob\_datasize()}}
{\footnotesize\ttfamily \label{group__liblo_gab6c9184f0a54f19319d8a6409487b466} 
uint32\+\_\+t lo\+\_\+blob\+\_\+datasize (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}}}]{b}{}\end{DoxyParamCaption})}



Return the amount of valid data in a \doxylink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob} object. 

If you want to know the storage size, use \doxylink{group__liblolowlevel_gaf793bbd32346a91d7d680d91ae68d1bd}{lo\+\_\+arg\+\_\+size()}. \Hypertarget{group__liblo_gaa46ef058cfdf14a16936c062ebac19b9}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_blob\_free@{lo\_blob\_free}}
\index{lo\_blob\_free@{lo\_blob\_free}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_blob\_free()}{lo\_blob\_free()}}
{\footnotesize\ttfamily \label{group__liblo_gaa46ef058cfdf14a16936c062ebac19b9} 
void lo\+\_\+blob\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}}}]{b}{}\end{DoxyParamCaption})}



Free the memory taken by a blob. 

\Hypertarget{group__liblo_gaffb2348c70cb0e1214fd50bdc7574c39}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_blob\_new@{lo\_blob\_new}}
\index{lo\_blob\_new@{lo\_blob\_new}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_blob\_new()}{lo\_blob\_new()}}
{\footnotesize\ttfamily \label{group__liblo_gaffb2348c70cb0e1214fd50bdc7574c39} 
\mbox{\hyperlink{lo__types_8h_a8f2b43f1b0709fab80bedc5a63f277f2}{lo\+\_\+blob}} lo\+\_\+blob\+\_\+new (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{size}{, }\item[{const void \texorpdfstring{$\ast$}{*}}]{data}{}\end{DoxyParamCaption})}



Create a new OSC blob type. 


\begin{DoxyParams}{Parameters}
{\em size} & The amount of space to allocate in the blob structure. \\
\hline
{\em data} & The data that will be used to initialise the blob, should be size bytes long. \\
\hline
\end{DoxyParams}
\Hypertarget{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_send@{lo\_send}}
\index{lo\_send@{lo\_send}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_send()}{lo\_send()}}
{\footnotesize\ttfamily \label{group__liblo_gafa4253874f97c2c16254ac57d2b7c987} 
int lo\+\_\+send (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{targ}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{path}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{type}{, }\item[{}]{...}{}\end{DoxyParamCaption})}



Send a OSC formatted message to the address specified. 


\begin{DoxyParams}{Parameters}
{\em targ} & The target OSC address \\
\hline
{\em path} & The OSC path the message will be delivered to \\
\hline
{\em type} & The types of the data items in the message, types are defined in \doxylink{lo__osc__types_8h}{lo\+\_\+osc\+\_\+types.\+h} \\
\hline
{\em ...} & The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\\
\hline
\end{DoxyParams}
example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group__liblo_gafa4253874f97c2c16254ac57d2b7c987}{lo\_send}}(t,\ \textcolor{stringliteral}{"{}/foo/bar"{}},\ \textcolor{stringliteral}{"{}ff"{}},\ 0.1f,\ 23.0f);}

\end{DoxyCode}


\begin{DoxyReturn}{Returns}
-\/1 on failure. 
\end{DoxyReturn}
\Hypertarget{group__liblo_gaa4a314562b09e2fd00749a5d0b4d0955}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_send\_from@{lo\_send\_from}}
\index{lo\_send\_from@{lo\_send\_from}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_send\_from()}{lo\_send\_from()}}
{\footnotesize\ttfamily \label{group__liblo_gaa4a314562b09e2fd00749a5d0b4d0955} 
int lo\+\_\+send\+\_\+from (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{targ}{, }\item[{\mbox{\hyperlink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server}}}]{from}{, }\item[{\mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}}}]{ts}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{path}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{type}{, }\item[{}]{...}{}\end{DoxyParamCaption})}



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

If a liblo server is receiving this message, it can reply by getting the server\textquotesingle{}s address by calling \doxylink{group__liblolowlevel_ga1f4e07e4f8b67edc98f4b300412a3dbb}{lo\+\_\+message\+\_\+get\+\_\+source()} in the message handler, passing the \doxylink{lo__types_8h_a50be181dde1a8d313dbc7e48d4032210}{lo\+\_\+message} provided as an argument to the \doxylink{lo__types_8h_a5b38e0822e47acaa3c7267348f50f66c}{lo\+\_\+method\+\_\+handler}. By this mechanism bidirectional communication can be established by setting up a \doxylink{lo__types_8h_a009a4f26c17bfcc1c31efc45499d09b8}{lo\+\_\+server} or \doxylink{lo__types_8h_ade4a4a955cce22c288e0b1b756e4b1cb}{lo\+\_\+server\+\_\+thread} on both sides.


\begin{DoxyParams}{Parameters}
{\em targ} & The target OSC address \\
\hline
{\em from} & The server to send message from (can be NULL to use new socket) \\
\hline
{\em ts} & The OSC timetag timestamp at which the message will be processed (can be LO\+\_\+\+TT\+\_\+\+IMMEDIATE if you don\textquotesingle{}t want to attach a timetag) \\
\hline
{\em path} & The OSC path the message will be delivered to \\
\hline
{\em type} & The types of the data items in the message, types are defined in \doxylink{lo__osc__types_8h}{lo\+\_\+osc\+\_\+types.\+h} \\
\hline
{\em ...} & The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\\
\hline
\end{DoxyParams}
example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{serv\ =\ \mbox{\hyperlink{group__liblolowlevel_ga78cfb23346e44465695293d4393447ae}{lo\_server\_new}}(NULL,\ err);}
\DoxyCodeLine{\mbox{\hyperlink{group__liblolowlevel_ga56c5f1d587c215c27e92e6436e12b1a3}{lo\_server\_add\_method}}(serv,\ \textcolor{stringliteral}{"{}/reply"{}},\ \textcolor{stringliteral}{"{}ss"{}},\ reply\_handler,\ NULL);}
\DoxyCodeLine{\mbox{\hyperlink{group__liblo_gaa4a314562b09e2fd00749a5d0b4d0955}{lo\_send\_from}}(t,\ serv,\ \mbox{\hyperlink{group__liblo_gafa8cfc08b763b0c039fb64a73c4c77da}{LO\_TT\_IMMEDIATE}},\ \textcolor{stringliteral}{"{}/foo/bar"{}},\ \textcolor{stringliteral}{"{}ff"{}},\ 0.1f,\ 23.0f);}

\end{DoxyCode}


See \doxylink{example__tcp__echo__server_8c_source}{example\+\_\+tcp\+\_\+echo\+\_\+server.\+c} for an example of how to use \doxylink{group__liblolowlevel_ga1f4e07e4f8b67edc98f4b300412a3dbb}{lo\+\_\+message\+\_\+get\+\_\+source()} as described.

\begin{DoxyReturn}{Returns}
on success, the number of bytes sent, or -\/1 on failure. 
\end{DoxyReturn}
\Hypertarget{group__liblo_ga42ec6437789c7516c5b7909d8504751a}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_send\_timestamped@{lo\_send\_timestamped}}
\index{lo\_send\_timestamped@{lo\_send\_timestamped}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_send\_timestamped()}{lo\_send\_timestamped()}}
{\footnotesize\ttfamily \label{group__liblo_ga42ec6437789c7516c5b7909d8504751a} 
int lo\+\_\+send\+\_\+timestamped (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{lo__types_8h_a463f77a169c38213c73c9622821dcd0d}{lo\+\_\+address}}}]{targ}{, }\item[{\mbox{\hyperlink{structlo__timetag}{lo\+\_\+timetag}}}]{ts}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{path}{, }\item[{const char \texorpdfstring{$\ast$}{*}}]{type}{, }\item[{}]{...}{}\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em targ} & The target OSC address \\
\hline
{\em ts} & The OSC timetag timestamp at which the message will be processed \\
\hline
{\em path} & The OSC path the message will be delivered to \\
\hline
{\em type} & The types of the data items in the message, types are defined in \doxylink{lo__osc__types_8h}{lo\+\_\+osc\+\_\+types.\+h} \\
\hline
{\em ...} & The data values to be transmitted. The types of the arguments passed here must agree with the types specified in the type parameter.\\
\hline
\end{DoxyParams}
example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{structlo__timetag}{lo\_timetag}}\ \mbox{\hyperlink{lo__cpp_8h_a645b0712d1326a429637a47b491d93c1}{now}};<br>}
\DoxyCodeLine{\mbox{\hyperlink{group__liblolowlevel_gad687e21ed611e68748e962502ae63d8e}{lo\_timetag\_now}}(\&now);<br>}
\DoxyCodeLine{\mbox{\hyperlink{group__liblo_ga42ec6437789c7516c5b7909d8504751a}{lo\_send\_timestamped}}(t,\ now,\ \textcolor{stringliteral}{"{}/foo/bar"{}},\ \textcolor{stringliteral}{"{}ff"{}},\ 0.1f,\ 23.0f);}

\end{DoxyCode}


\begin{DoxyReturn}{Returns}
on success, the number of bytes sent, or -\/1 on failure. 
\end{DoxyReturn}
\Hypertarget{group__liblo_gad9fa9a716b9df6b60357ea05e6c5f87b}\index{High-\/level OSC API@{High-\/level OSC API}!lo\_version@{lo\_version}}
\index{lo\_version@{lo\_version}!High-\/level OSC API@{High-\/level OSC API}}
\doxysubsubsection{\texorpdfstring{lo\_version()}{lo\_version()}}
{\footnotesize\ttfamily \label{group__liblo_gad9fa9a716b9df6b60357ea05e6c5f87b} 
void lo\+\_\+version (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{verstr}{, }\item[{int}]{verstr\+\_\+size}{, }\item[{int \texorpdfstring{$\ast$}{*}}]{major}{, }\item[{int \texorpdfstring{$\ast$}{*}}]{minor}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{extra}{, }\item[{int}]{extra\+\_\+size}{, }\item[{int \texorpdfstring{$\ast$}{*}}]{lt\+\_\+major}{, }\item[{int \texorpdfstring{$\ast$}{*}}]{lt\+\_\+minor}{, }\item[{int \texorpdfstring{$\ast$}{*}}]{lt\+\_\+bug}{}\end{DoxyParamCaption})}



Get information on the version of liblo current in use. 

All parameters are optional and can be given the value of 0 if that information is not desired. For example, to get just the version as a string, call lo\+\_\+version(str, size, 0, 0, 0, 0, 0, 0, 0);

The "{}lt"{} fields, called the ABI version, corresponds to libtool\textquotesingle{}s versioning system for binary interface compatibility, and is not related to the library version number. This information is usually encoded in the filename of the shared library.

Typically the string returned in \textquotesingle{}verstr\textquotesingle{} should correspond with \$major.\$minor\$extra, e.\+g., "{}0.\+28rc"{}. If no \textquotesingle{}extra\textquotesingle{} information is present, e.\+g., "{}0.\+28"{}, extra will given the null string.


\begin{DoxyParams}{Parameters}
{\em verstr} & A buffer to receive a string describing the library version. \\
\hline
{\em verstr\+\_\+size} & Size of the buffer pointed to by string. \\
\hline
{\em major} & Location to receive the library major version. \\
\hline
{\em minor} & Location to receive the library minor version. \\
\hline
{\em extra} & Location to receive the library version extra string. \\
\hline
{\em extra\+\_\+size} & Size of the buffer pointed to by extra. \\
\hline
{\em lt\+\_\+major} & Location to receive the ABI major version. \\
\hline
{\em lt\+\_\+minor} & Location to receive the ABI minor version. \\
\hline
{\em lt\+\_\+bug} & Location to receive the ABI \textquotesingle{}bugfix\textquotesingle{} version. \\
\hline
\end{DoxyParams}


Referenced by \mbox{\hyperlink{lo__cpp_8h_source_l01104}{lo\+::version()}}.

