summaryrefslogtreecommitdiffstats
path: root/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h')
-rw-r--r--debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h b/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h
new file mode 100644
index 00000000..e7a6e001
--- /dev/null
+++ b/debian/mp4v2/mp4v2-2.0.0~dfsg0/src/log.h
@@ -0,0 +1,93 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// The contents of this file are subject to the Mozilla Public License
+// Version 1.1 (the "License"); you may not use this file except in
+// compliance with the License. You may obtain a copy of the License at
+// http://www.mozilla.org/MPL/
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+// License for the specific language governing rights and limitations
+// under the License.
+//
+// The Original Code is MP4v2.
+//
+// The Initial Developer of the Original Code is David Byron.
+// Portions created by David Byron are Copyright (C) 2009, 2010, 2011.
+// All Rights Reserved.
+//
+// Contributors:
+// David Byron, dbyron@dbyron.com
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef MP4V2_IMPL_LOG_H
+#define MP4V2_IMPL_LOG_H
+
+namespace mp4v2 { namespace impl {
+
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Handle logging either to standard out or to a callback
+ * function
+ */
+class MP4V2_EXPORT Log {
+private:
+ MP4LogLevel _verbosity;
+ static MP4LogCallback _cb_func;
+
+public:
+ const MP4LogLevel& verbosity;
+
+public:
+ Log( MP4LogLevel = MP4_LOG_NONE );
+ virtual ~Log();
+
+ static void setLogCallback ( MP4LogCallback );
+
+ void setVerbosity ( MP4LogLevel );
+
+ void errorf ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void warningf ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void infof ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void verbose1f ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void verbose2f ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void verbose3f ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+ void verbose4f ( const char* format, ... ) MP4V2_WFORMAT_PRINTF(2,3);
+
+ void dump ( uint8_t indent,
+ MP4LogLevel verbosity_,
+ const char* format, ... ) MP4V2_WFORMAT_PRINTF(4,5);
+ void vdump ( uint8_t indent,
+ MP4LogLevel verbosity_,
+ const char* format, va_list ap );
+ void printf ( MP4LogLevel verbosity_,
+ const char* format, ... ) MP4V2_WFORMAT_PRINTF(3,4);
+ void vprintf ( MP4LogLevel verbosity_,
+ const char* format, va_list ap );
+
+ void hexDump ( uint8_t indent,
+ MP4LogLevel verbosity_,
+ const uint8_t* pBytes,
+ uint32_t numBytes,
+ const char* format, ... ) MP4V2_WFORMAT_PRINTF(6,7);
+
+ void errorf ( const Exception& x );
+
+private:
+ Log ( const Log &src );
+ Log &operator= ( const Log &src );
+};
+
+/**
+ * A global (at least to mp4v2) log object for code that
+ * needs to log something but doesn't otherwise have access
+ * to one
+ */
+extern Log log;
+///////////////////////////////////////////////////////////////////////////////
+
+}} // namespace mp4v2::impl
+
+#endif // MP4V2_IMPL_LOG_H