]> git.sesse.net Git - vlc/blobdiff - include/vlc_messages.h
Use object address for logging - fixes uniqueness problems
[vlc] / include / vlc_messages.h
index e9b7678744f80f4325fa456c7ef06ef8e69b0793..4162aa169ccade0fead3c9a137105334cbd93c70 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#if !defined( __LIBVLC__ )
-  #error You are not libvlc or one of its plugins. You cannot include this file
-#endif
+#ifndef VLC_MESSAGES_H_
+#define VLC_MESSAGES_H_
 
-#ifndef _VLC_MESSAGES_H_
-#define _VLC_MESSAGES_H_
+/**
+ * \file
+ * This file defines structures and functions to handle messages and statistics gathering
+ */
 
 #include <stdarg.h>
 
@@ -47,7 +48,7 @@
 typedef struct
 {
     int     i_type;                             /**< message type, see below */
-    int     i_object_id;
+    uintptr_t   i_object_id;
     const char *psz_object_type;
     char *  psz_module;
     char *  psz_msg;                            /**< the message itself */
@@ -81,13 +82,13 @@ struct msg_subscription_t
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
-VLC_EXPORT( void, __msg_Generic, ( vlc_object_t *, int, const char *, const char *, ... ) ATTRIBUTE_FORMAT( 4, 5 ) );
+VLC_EXPORT( void, __msg_Generic, ( vlc_object_t *, int, const char *, const char *, ... ) LIBVLC_FORMAT( 4, 5 ) );
 VLC_EXPORT( void, __msg_GenericVa, ( vlc_object_t *, int, const char *, const char *, va_list args ) );
 #define msg_GenericVa(a, b, c, d, e) __msg_GenericVa(VLC_OBJECT(a), b, c, d, e)
-VLC_EXPORT( void, __msg_Info,    ( vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3 ) );
-VLC_EXPORT( void, __msg_Err,     ( vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3 ) );
-VLC_EXPORT( void, __msg_Warn,    ( vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3 ) );
-VLC_EXPORT( void, __msg_Dbg,    ( vlc_object_t *, const char *, ... ) ATTRIBUTE_FORMAT( 2, 3 ) );
+VLC_EXPORT( void, __msg_Info,    ( vlc_object_t *, const char *, ... ) LIBVLC_FORMAT( 2, 3 ) );
+VLC_EXPORT( void, __msg_Err,     ( vlc_object_t *, const char *, ... ) LIBVLC_FORMAT( 2, 3 ) );
+VLC_EXPORT( void, __msg_Warn,    ( vlc_object_t *, const char *, ... ) LIBVLC_FORMAT( 2, 3 ) );
+VLC_EXPORT( void, __msg_Dbg,    ( vlc_object_t *, const char *, ... ) LIBVLC_FORMAT( 2, 3 ) );
 
 #define msg_Info( p_this, ... ) \
       __msg_Generic( VLC_OBJECT(p_this), VLC_MSG_INFO, \
@@ -107,6 +108,12 @@ VLC_EXPORT( void, __msg_Dbg,    ( vlc_object_t *, const char *, ... ) ATTRIBUTE_
 VLC_EXPORT( msg_subscription_t*, __msg_Subscribe, ( vlc_object_t * ) );
 VLC_EXPORT( void, __msg_Unsubscribe, ( vlc_object_t *, msg_subscription_t * ) );
 
+/* Enable or disable a certain object debug messages */
+#define msg_EnableObjectPrinting(a,b) __msg_EnableObjectPrinting(VLC_OBJECT(a),b)
+#define msg_DisableObjectPrinting(a,b) __msg_DisableObjectPrinting(VLC_OBJECT(a),b)
+VLC_EXPORT( void, __msg_EnableObjectPrinting, ( vlc_object_t *, char * psz_object ) );
+VLC_EXPORT( void, __msg_DisableObjectPrinting, ( vlc_object_t *, char * psz_object ) );
+
 /**
  * @}
  */
@@ -306,17 +313,10 @@ VLC_EXPORT( void, __stats_ComputeGlobalStats, (vlc_object_t*,global_stats_t*));
 /*********
  * Timing
  ********/
-#ifndef NDEBUG
 #define stats_TimerStart(a,b,c) __stats_TimerStart( VLC_OBJECT(a), b,c )
 #define stats_TimerStop(a,b) __stats_TimerStop( VLC_OBJECT(a), b )
 #define stats_TimerDump(a,b) __stats_TimerDump( VLC_OBJECT(a), b )
 #define stats_TimersDumpAll(a) __stats_TimersDumpAll( VLC_OBJECT(a) )
-#else
-#define stats_TimerStart(a,b,c) (void)0
-#define stats_TimerStop(a,b) (void)0
-#define stats_TimerDump(a,b) (void)0
-#define stats_TimersDumpAll(a) (void)0
-#endif
 VLC_EXPORT( void,__stats_TimerStart, (vlc_object_t*, const char *, unsigned int ) );
 VLC_EXPORT( void,__stats_TimerStop, (vlc_object_t*, unsigned int) );
 VLC_EXPORT( void,__stats_TimerDump, (vlc_object_t*, unsigned int) );