18 #ifndef RAUL_ATOM_LIBLO_HPP
19 #define RAUL_ATOM_LIBLO_HPP
25 #include "raul/log.hpp"
26 #include "raul/Atom.hpp"
40 switch (atom.
type()) {
42 lo_message_add_int32(m, atom.get_int32());
45 lo_message_add_float(m, atom.get_float());
48 lo_message_add_string(m, atom.get_string());
51 lo_message_add_symbol(m, atom.get_uri());
55 lo_message_add_true(m);
57 lo_message_add_false(m);
60 if (atom.data_size() > 0)
61 lo_message_add_blob(m, lo_blob_new(atom.data_size(), atom.get_blob()));
63 lo_message_add_nil(m);
67 lo_message_add_nil(m);
85 return Atom(Atom::URI, &arg->S);
87 return Atom((
bool)
true);
89 return Atom((
bool)
false);
91 warn <<
"Unable to convert OSC type '"
92 << type <<
"' to Atom" << std::endl;
101 #endif // RAUL_ATOM_LIBLO_HPP
A piece of data with some type.
Definition: Atom.hpp:43
void lo_message_add_atom(lo_message m, const Atom &atom)
Append a Raul Atom as a parameter to a liblo message.
Definition: AtomLiblo.hpp:38
Type type() const
Type of this atom.
Definition: Atom.hpp:165
Atom lo_arg_to_atom(char type, lo_arg *arg)
Convert a liblo argument to a Raul::Atom.
Definition: AtomLiblo.hpp:75