15 #include "androidLogStream.h" 16 #include "configVariableString.h" 20 #include <android/log.h> 27 AndroidLogStream::AndroidLogStreamBuf::
28 AndroidLogStreamBuf(
int priority) :
32 (
"android-log-tag",
"Panda3D",
33 PRC_DESC(
"This defines the tag that Panda3D will use when writing to the " 34 "Android log. The default is \"Panda3D\"."));
37 _tag = android_log_tag.get_value();
53 AndroidLogStream::AndroidLogStreamBuf::
54 ~AndroidLogStreamBuf() {
65 int AndroidLogStream::AndroidLogStreamBuf::
67 streamsize n = pptr() - pbase();
70 for (
char *p = pbase(); p < pptr(); ++p) {
84 int AndroidLogStream::AndroidLogStreamBuf::
86 streamsize n = pptr() - pbase();
88 if (n != 0 && sync() != 0) {
105 void AndroidLogStream::AndroidLogStreamBuf::
109 __android_log_write(_priority, _tag.c_str(), _data.c_str());
122 AndroidLogStream(
int priority) :
123 ostream(new AndroidLogStreamBuf(priority)) {
132 ~AndroidLogStream() {
142 ostream &AndroidLogStream::
143 out(NotifySeverity severity) {
144 static AndroidLogStream* streams[NS_fatal + 1] = {NULL};
146 if (streams[severity] == NULL) {
147 int priority = ANDROID_LOG_UNKNOWN;
148 if (severity != NS_unspecified) {
149 priority = ((int)severity) + 1;
151 streams[severity] =
new AndroidLogStream(priority);
154 return *streams[severity];
This is a convenience class to specialize ConfigVariable as a string type.