mirror of
https://github.com/DrBeef/Quake2Quest.git
synced 2024-12-11 21:20:57 +00:00
70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
#ifndef __ANDROID_DEBUG_H__
|
|
#define __ANDROID_DEBUG_H__
|
|
|
|
// Redirect printf() to Android log
|
|
// Put this file into CFLAGS: "-include ../android_debug.h"
|
|
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#include <android/log.h>
|
|
|
|
#ifdef __cplusplus
|
|
// Include everything beforehand, so we wont' get compiler errors because of our #define
|
|
#include <string>
|
|
#include <ios>
|
|
#include <streambuf>
|
|
#include <sstream>
|
|
#include <fstream>
|
|
#include <iostream>
|
|
|
|
namespace std
|
|
{
|
|
class android_cout: public ostringstream
|
|
{
|
|
public:
|
|
android_cout() {}
|
|
template <class T>
|
|
android_cout &operator<<(const T &v)
|
|
{
|
|
*((ostringstream*)this) << v;
|
|
if( this->str().find('\n') != ::std::string::npos )
|
|
{
|
|
__android_log_print(ANDROID_LOG_INFO, "LIBGL", "%s", this->str().c_str());
|
|
this->str().clear();
|
|
}
|
|
return *this;
|
|
}
|
|
~android_cout()
|
|
{
|
|
__android_log_print(ANDROID_LOG_INFO, "LIBGL", "%s", this->str().c_str());
|
|
this->str().clear();
|
|
}
|
|
};
|
|
static const char * android_endl = "\n";
|
|
}
|
|
#define cout android_cout()
|
|
#define cerr android_cout()
|
|
#define endl android_endl
|
|
|
|
#endif
|
|
|
|
#define printf(...) __android_log_print(ANDROID_LOG_INFO, "LIBGL", __VA_ARGS__)
|
|
/*
|
|
// Override fprintf(stderr, ...) constructs
|
|
static inline int __sdl_logged_fprintf(FILE *stream, const char *format, ...)
|
|
{
|
|
int ret = 0;
|
|
va_list args;
|
|
va_start(args, format);
|
|
if( stream == stderr || stream == stdout )
|
|
ret = __android_log_vprint(ANDROID_LOG_INFO, "LIBGL", format, args);
|
|
else
|
|
ret = vfprintf(stream, format, args);
|
|
va_end(args);
|
|
return ret;
|
|
}
|
|
|
|
#define fprintf(...) __sdl_logged_fprintf(__VA_ARGS__)
|
|
*/
|
|
#endif
|
|
|