#include <signal.h>
#include <libusb.h>
#include "utlist.h"
+#ifdef __ANDROID__
+#include <android/log.h>
+#endif
/** Converts an unaligned four-byte little-endian integer into an int32 */
#define DW_TO_INT(p) ((p)[0] | ((p)[1] << 8) | ((p)[2] << 16) | ((p)[3] << 24))
#ifdef UVC_DEBUGGING
#include <libgen.h>
-#define UVC_DEBUG(format, ...) fprintf(stderr, "[%s:%d/%s] " format "\n", basename(__FILE__), __LINE__, __FUNCTION__, ##__VA_ARGS__)
-#define UVC_ENTER() fprintf(stderr, "[%s:%d] begin %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
-#define UVC_EXIT(code) fprintf(stderr, "[%s:%d] end %s (%d)\n", basename(__FILE__), __LINE__, __FUNCTION__, code)
-#define UVC_EXIT_VOID() fprintf(stderr, "[%s:%d] end %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
+#ifdef __ANDROID__
+ #define UVC_DEBUG(...) __android_log_print(ANDROID_LOG_DEBUG,"UVC", __VA_ARGS__)
+ #define UVC_ENTER() __android_log_print(ANDROID_LOG_DEBUG, "UVC", "[%s:%d] begin %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
+ #define UVC_EXIT(code) __android_log_print(ANDROID_LOG_DEBUG, "UVC", "[%s:%d] end %s (%d)\n", basename(__FILE__), __LINE__, __FUNCTION__, code)
+ #define UVC_EXIT_VOID() __android_log_print(ANDROID_LOG_DEBUG, "UVC", "[%s:%d] end %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
+#else
+ #define UVC_DEBUG(format, ...) fprintf(stderr, "[%s:%d/%s] " format "\n", basename(__FILE__), __LINE__, __FUNCTION__, ##__VA_ARGS__)
+ #define UVC_ENTER() fprintf(stderr, "[%s:%d] begin %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
+ #define UVC_EXIT(code) fprintf(stderr, "[%s:%d] end %s (%d)\n", basename(__FILE__), __LINE__, __FUNCTION__, code)
+ #define UVC_EXIT_VOID() fprintf(stderr, "[%s:%d] end %s\n", basename(__FILE__), __LINE__, __FUNCTION__)
+#endif
+
#else
#define UVC_DEBUG(format, ...)
#define UVC_ENTER()