diff options
author | David Robillard <d@drobilla.net> | 2008-01-06 21:55:17 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-01-06 21:55:17 +0000 |
commit | 966dbecf3e8dd13bd8af6de129a0af5b8dc83b8f (patch) | |
tree | b6f015589464b7dad703595ea0555ba1233504d6 /raul/AtomLiblo.hpp | |
parent | 2747087c382445ad7c1b891993679fb299a73151 (diff) | |
download | raul-966dbecf3e8dd13bd8af6de129a0af5b8dc83b8f.tar.gz raul-966dbecf3e8dd13bd8af6de129a0af5b8dc83b8f.tar.bz2 raul-966dbecf3e8dd13bd8af6de129a0af5b8dc83b8f.zip |
Remove raul dependency on liblo and redlandmm.
git-svn-id: http://svn.drobilla.net/lad/raul@1025 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/AtomLiblo.hpp')
-rw-r--r-- | raul/AtomLiblo.hpp | 91 |
1 files changed, 46 insertions, 45 deletions
diff --git a/raul/AtomLiblo.hpp b/raul/AtomLiblo.hpp index e21e6c3..3491b3a 100644 --- a/raul/AtomLiblo.hpp +++ b/raul/AtomLiblo.hpp @@ -15,6 +15,11 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +/** @file Conversion from Raul Atom to Liblo OSC arguments and vice-versa. + * This header depends on liblo, only apps which directly depend on + * both raul and liblo should include it. + */ + #ifndef RAUL_ATOM_LIBLO_HPP #define RAUL_ATOM_LIBLO_HPP @@ -22,57 +27,53 @@ #include <raul/Atom.hpp> namespace Raul { +namespace AtomLiblo { - -/** Support for serializing an Atom to/from liblo messages. - * - * (Here to prevent a unnecessary liblo dependency for Atom). - * - * \ingroup raul - */ -class AtomLiblo { -public: - static void lo_message_add_atom(lo_message m, const Atom& atom) { - switch (atom.type()) { - case Atom::INT: - lo_message_add_int32(m, atom.get_int32()); - break; - case Atom::FLOAT: - lo_message_add_float(m, atom.get_float()); - break; - case Atom::STRING: - lo_message_add_string(m, atom.get_string()); - break; - case Atom::BLOB: - // FIXME: is this okay? what does liblo do? - lo_message_add_blob(m, const_cast<void*>(atom.get_blob())); - break; - case Atom::NIL: - default: - lo_message_add_nil(m); - break; - } +inline void +lo_message_add_atom(lo_message m, const Atom& atom) +{ + switch (atom.type()) { + case Atom::INT: + lo_message_add_int32(m, atom.get_int32()); + break; + case Atom::FLOAT: + lo_message_add_float(m, atom.get_float()); + break; + case Atom::STRING: + lo_message_add_string(m, atom.get_string()); + break; + case Atom::BLOB: + // FIXME: is this okay? what does liblo do? + lo_message_add_blob(m, const_cast<void*>(atom.get_blob())); + break; + case Atom::NIL: + default: + lo_message_add_nil(m); + break; } +} - static Atom lo_arg_to_atom(char type, lo_arg* arg) { - switch (type) { - case 'i': - return Atom(arg->i); - case 'f': - return Atom(arg->f); - case 's': - return Atom(&arg->s); - //case 'b' - // FIXME: How to get a blob from a lo_arg? - //return Atom(arg->b); - default: - return Atom(); - } - } -}; +inline Atom +lo_arg_to_atom(char type, lo_arg* arg) +{ + switch (type) { + case 'i': + return Atom(arg->i); + case 'f': + return Atom(arg->f); + case 's': + return Atom(&arg->s); + //case 'b' + // FIXME: How to get a blob from a lo_arg? + //return Atom(arg->b); + default: + return Atom(); + } +} +} // namespace AtomLiblo } // namespace Raul #endif // RAUL_ATOM_LIBLO_HPP |