Switch commoncpp2 to ucommon to solve dependency conflicts.

libccrtp was depending on commoncpp2, and have been replaced by a version
depending on ucommon as well.
diff --git a/jni/libucommon/sources/inc/ucommon/numbers.h b/jni/libucommon/sources/inc/ucommon/numbers.h
new file mode 100644
index 0000000..b210c8c
--- /dev/null
+++ b/jni/libucommon/sources/inc/ucommon/numbers.h
@@ -0,0 +1,240 @@
+// Copyright (C) 2006-2010 David Sugar, Tycho Softworks.
+//
+// This file is part of GNU uCommon C++.
+//
+// GNU uCommon C++ is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// GNU uCommon C++ is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with GNU uCommon C++.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Support classes for manipulation of numbers as strings.  This is
+ * used for things which parse numbers out of strings, such as in the
+ * date and time classes.  Other useful math related functions, templates,
+ * and macros may also be found here.
+ * @file ucommon/numbers.h
+ */
+
+#ifndef _UCOMMON_NUMBERS_H_
+#define _UCOMMON_NUMBERS_H_
+
+#ifndef _UCOMMON_CONFIG_H_
+#include <ucommon/platform.h>
+#endif
+
+NAMESPACE_UCOMMON
+
+/**
+ * A number manipulation class.  This is used to extract, convert,
+ * and manage simple numbers that are represented in C ascii strings
+ * in a very quick and optimal way.  This class modifies the string
+ * representation each time the value is changed.  No math expressions
+ * or explicit comparison operators are supported for the Numbers class
+ * because these are best done by casting to long first.
+ *
+ * @author David Sugar <dyfet@ostel.com>
+ * @short number manipulation.
+ */
+class __EXPORT Number
+{
+protected:
+    char *buffer;
+    unsigned size;
+
+public:
+    /**
+     * Create an instance of a number.
+     * @param buffer or NULL if created internally.
+     * @param size of field if not null terminated.
+     */
+    Number(char *buffer, unsigned size);
+
+    /**
+     * Set string based on a new value.
+     * @param value to set.
+     */
+    void set(long value);
+
+    /**
+     * Get string buffer representing the number.
+     * @return string buffer.
+     */
+    inline const char *c_str() const
+        {return buffer;};
+
+    /**
+     * Get value of string buffer as a long integer.
+     * @return long integer value of string buffer.
+     */
+    long get() const;
+
+    /**
+     * Get value of string buffer as expression of object.
+     * @return long integer value of string buffer.
+     */
+    inline long operator()()
+        {return get();};
+
+    /**
+     * Cast string as long integer and get value of buffer.
+     * @return long integer value of string buffer.
+     */
+    inline operator long()
+        {return get();};
+
+    /**
+     * Cast object as a string to retrieve buffer.
+     * @return string buffer of value.
+     */
+    inline operator char*()
+        {return buffer;};
+
+    /**
+     * Assign a value to the number.  This rewrites the string buffer.
+     * @param value to assign.
+     * @return new value of number object assigned.
+     */
+    long operator=(long value);
+
+    /**
+     * Assign another number to this number.
+     * @param number to assign to assign.
+     * @return new value of number object assigned.
+     */
+    long operator=(const Number& number);
+
+    /**
+     * Add a value to the number.  This rewrites the string buffer.
+     * @param value to add.
+     * @return new value of number object.
+     */
+    long operator+=(const long value);
+
+    /**
+     * Subtract a value from the number.  This rewrites the string buffer.
+     * @param value to subtract.
+     * @return new value of number object.
+     */
+    long operator-=(const long value);
+
+    /**
+     * Decrement the number object.  This rewrites the string buffer.
+     * @return new value of number object.
+     */
+    long operator--();
+
+    /**
+     * Increment the number object.  This rewrites the string buffer.
+     * @return new value of number object.
+     */
+    long operator++();
+
+    inline bool operator==(const long value) const
+        {return get() == value;}
+
+    inline bool operator!=(const long value) const
+        {return get() != value;}
+
+    inline bool operator<(const long value) const
+        {return get() < value;}
+
+    inline bool operator>(const long value) const
+        {return get() > value;}
+
+    inline bool operator<=(const long value) const
+        {return get() <= value;}
+
+    inline bool operator>=(const long value) const
+        {return get() >= value;}
+};
+
+/**
+ * A number manipulation class that maintains a zero lead filled string.
+ *
+ * @author David Sugar <dyfet@ostel.com>
+ * @short zero filled number manipulation.
+ */
+class __EXPORT ZNumber : public Number
+{
+public:
+    /**
+     * Create a number class for zero fill.
+     * @param pointer to field.
+     * @param size of field to fill.
+     */
+    ZNumber(char *pointer, unsigned size);
+
+    /**
+     * Set value of zero filled number.
+     * @param value to set.
+     */
+
+    void set(long value);
+
+    /**
+     * Assign number from value.
+     * @param value to assign.
+     * @return value assigned.
+     */
+    long operator=(long value);
+};
+
+/**
+ * A convenience type for number.
+ */
+typedef Number  number_t;
+
+/**
+ * A convenience type for znumber.
+ */
+typedef ZNumber znumber_t;
+
+/**
+ * Template for absolute value of a type.
+ * @param value to check
+ * @return absolute value
+ */
+template<typename T>
+inline const T abs(const T& value)
+{
+    if(value < (T)0)
+        return -value;
+    return value;
+}
+
+
+/**
+ * Template for min value of a type.
+ * @param v1 value to check
+ * @param v2 value to check
+ * @return v1 if < v2, else v2
+ */
+template<typename T>
+inline const T (min)(const T& v1, const T& v2)
+{
+    return ((v1 < v2) ? v1 : v2);
+}
+
+/**
+ * Template for max value of a type.
+ * @param v1 value to check
+ * @param v2 value to check
+ * @return v1 if > v2, else v2
+ */
+template<typename T>
+inline const T (max)(const T& v1, const T& v2)
+{
+    return ((v1 > v2) ? v1 : v2);
+}
+
+END_NAMESPACE
+
+#endif