]> git.sesse.net Git - vlc/commitdiff
Privatize msg_bank
authorRémi Denis-Courmont <rem@videolan.org>
Sun, 4 May 2008 18:09:09 +0000 (21:09 +0300)
committerRémi Denis-Courmont <rem@videolan.org>
Sun, 4 May 2008 18:09:09 +0000 (21:09 +0300)
include/vlc_common.h
include/vlc_main.h
include/vlc_messages.h
src/libvlc-common.c
src/libvlc.h
src/misc/messages.c

index 1fdb7e27ce3ca7f2a14627b6ccb6b2d05cb4eacf..7f61b3c70f5fbb1e9e1ed7b022389eae589c4c33 100644 (file)
@@ -130,8 +130,6 @@ typedef struct dict_t dict_t;
 typedef struct gc_object_t gc_object_t ;
 
 /* Messages */
-typedef struct msg_bank_t msg_bank_t;
-typedef struct msg_queue_t msg_queue_t;
 typedef struct msg_subscription_t msg_subscription_t;
 
 /* Playlist */
index 174c8f5f748ff305d037399865b42aff08cd5b75..a3066f86878492391f0e10db255c5ba0cd37b059 100644 (file)
@@ -57,11 +57,6 @@ struct libvlc_int_t
     input_item_array_t    input_items;       ///< Array of all created input items
     int                   i_last_input_id ;  ///< Last id of input item
 
-    /* Messages */
-    msg_bank_t             msg_bank;    ///< The message bank
-    int                    i_verbose;   ///< info messages
-    bool             b_color;     ///< color messages?
-
     /* Structure storing the action name / key associations */
     struct hotkey
     {
index 537b643a6d5f37f0aca52aad7cd35d73647c71b0..e8bb637e8379c22a39432c1c32da52ccedaf1272 100644 (file)
@@ -79,39 +79,6 @@ typedef struct
 
 #define MSG_QUEUE_NORMAL 0
 #define MSG_QUEUE_HTTPD_ACCESS 1
-#define NB_QUEUES 2
-
-struct msg_queue_t
-{
-    int                     i_id;
-
-    /** Message queue lock */
-    vlc_mutex_t             lock;
-    bool              b_overflow;
-
-    /* Message queue */
-    msg_item_t              msg[VLC_MSG_QSIZE];           /**< message queue */
-    int i_start;
-    int i_stop;
-
-    /* Subscribers */
-    int i_sub;
-    msg_subscription_t **pp_sub;
-
-    /* Logfile for WinCE */
-#ifdef UNDER_CE
-    FILE *logfile;
-#endif
-};
-
-/**
- * Store all data requiered by messages interfaces.
- */
-struct msg_bank_t
-{
-    vlc_mutex_t             lock;
-    msg_queue_t             queues[NB_QUEUES];
-};
 
 /**
  * Used by interface plugins which subscribe to the message bank.
index d2efb7639afdfb6f47dd43e4620308fe5c147323..0403d34d9f95f796b316106160c65617f5a1f463 100644 (file)
@@ -190,13 +190,13 @@ libvlc_int_t * libvlc_InternalCreate( void )
     /* Find verbosity from VLC_VERBOSE environment variable */
     psz_env = getenv( "VLC_VERBOSE" );
     if( psz_env != NULL )
-        p_libvlc->i_verbose = atoi( psz_env );
+        priv->i_verbose = atoi( psz_env );
     else
-        p_libvlc->i_verbose = 3;
+        priv->i_verbose = 3;
 #if defined( HAVE_ISATTY ) && !defined( WIN32 )
-    p_libvlc->b_color = isatty( 2 ); /* 2 is for stderr */
+    priv->b_color = isatty( 2 ); /* 2 is for stderr */
 #else
-    p_libvlc->b_color = false;
+    priv->b_color = false;
 #endif
 
     /* Announce who we are - Do it only for first instance ? */
@@ -313,7 +313,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     }
 
     /* Will be re-done properly later on */
-    p_libvlc->i_verbose = config_GetInt( p_libvlc, "verbose" );
+    priv->i_verbose = config_GetInt( p_libvlc, "verbose" );
 
     /* Check for daemon mode */
 #ifndef WIN32
@@ -656,8 +656,8 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     var_AddCallback( p_libvlc, "verbose", VerboseCallback, NULL );
     var_Change( p_libvlc, "verbose", VLC_VAR_TRIGGER_CALLBACKS, NULL, NULL );
 
-    if( p_libvlc->b_color )
-        p_libvlc->b_color = config_GetInt( p_libvlc, "color" ) > 0;
+    if( priv->b_color )
+        priv->b_color = config_GetInt( p_libvlc, "color" ) > 0;
 
     /*
      * Output messages that may still be in the queue
@@ -1973,7 +1973,7 @@ static int VerboseCallback( vlc_object_t *p_this, const char *psz_variable,
 
     if( new_val.i_int >= -1 )
     {
-        p_libvlc->i_verbose = __MIN( new_val.i_int, 2 );
+        libvlc_priv (p_libvlc)->i_verbose = __MIN( new_val.i_int, 2 );
     }
     return VLC_SUCCESS;
 }
index b9cdb34623779974963d8e7dcc9be4134ec202a9..f3ae94b8e05a60030a1a8fbc93431339bef33ee5 100644 (file)
@@ -72,6 +72,44 @@ extern vlc_threadvar_t msg_context_global_key;
 extern uint32_t cpu_flags;
 uint32_t CPUCapabilities( void );
 
+/*
+ * Message/logging stuff
+ */
+
+#define NB_QUEUES 2
+
+typedef struct msg_queue_t
+{
+    int                     i_id;
+
+    /** Message queue lock */
+    vlc_mutex_t             lock;
+    bool              b_overflow;
+
+    /* Message queue */
+    msg_item_t              msg[VLC_MSG_QSIZE];           /**< message queue */
+    int i_start;
+    int i_stop;
+
+    /* Subscribers */
+    int i_sub;
+    msg_subscription_t **pp_sub;
+
+    /* Logfile for WinCE */
+#ifdef UNDER_CE
+    FILE *logfile;
+#endif
+} msg_queue_t;
+
+/**
+ * Store all data requiered by messages interfaces.
+ */
+typedef struct msg_bank_t
+{
+    vlc_mutex_t             lock;
+    msg_queue_t             queues[NB_QUEUES];
+} msg_bank_t;
+
 /*
  * Unicode stuff
  */
@@ -172,6 +210,12 @@ typedef struct libvlc_priv_t
 {
     vlc_mutex_t        config_lock; ///< config file lock
 
+    /* Messages */
+    msg_bank_t         msg_bank;    ///< The message bank
+    int                i_verbose;   ///< info messages
+    bool               b_color;     ///< color messages?
+
+    /* Timer stats */
     vlc_mutex_t        timer_lock;  ///< Lock to protect timers
     counter_t        **pp_timers;   ///< Array of all timers
     int                i_timers;    ///< Number of timers
index a6c0b705cbaeb288a14d152da33b0722df7da547..fde2d124c2f00fdeb43f4d47a3c32d01d4b683a5 100644 (file)
@@ -66,9 +66,9 @@
 #   define vlc_va_copy(dest,src) (dest)=(src)
 #endif
 
-#define QUEUE(i) p_this->p_libvlc->msg_bank.queues[i]
-#define LOCK_BANK vlc_mutex_lock( &p_this->p_libvlc->msg_bank.lock );
-#define UNLOCK_BANK vlc_mutex_unlock( &p_this->p_libvlc->msg_bank.lock );
+#define QUEUE(i) priv->msg_bank.queues[i]
+#define LOCK_BANK vlc_mutex_lock( &priv->msg_bank.lock );
+#define UNLOCK_BANK vlc_mutex_unlock( &priv->msg_bank.lock );
 
 /*****************************************************************************
  * Local prototypes
@@ -84,10 +84,10 @@ static void PrintMsg ( vlc_object_t *, msg_item_t * );
  */
 void __msg_Create( vlc_object_t *p_this )
 {
-    int i;
-    vlc_mutex_init( &(p_this->p_libvlc->msg_bank.lock) );
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
+    vlc_mutex_init( &priv->msg_bank.lock );
 
-    for( i = 0; i < 2; i++ )
+    for( int i = 0; i < 2; i++ )
     {
          vlc_mutex_init( &QUEUE(i).lock );
          QUEUE(i).b_overflow = false;
@@ -112,8 +112,9 @@ void __msg_Create( vlc_object_t *p_this )
  */
 void __msg_Flush( vlc_object_t *p_this )
 {
-    int i;
-    for( i = 0 ; i < NB_QUEUES ; i++ )
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
+
+    for( int i = 0 ; i < NB_QUEUES ; i++ )
     {
         vlc_mutex_lock( &QUEUE(i).lock );
         FlushMsg( &QUEUE(i) );
@@ -130,8 +131,9 @@ void __msg_Flush( vlc_object_t *p_this )
  */
 void __msg_Destroy( vlc_object_t *p_this )
 {
-    int i;
-    for( i = NB_QUEUES -1 ; i >= 0;  i-- )
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
+
+    for( int i = NB_QUEUES -1 ; i >= 0;  i-- )
     {
         if( QUEUE(i).i_sub )
             msg_Err( p_this, "stale interface subscribers" );
@@ -145,7 +147,7 @@ void __msg_Destroy( vlc_object_t *p_this )
         /* Destroy lock */
         vlc_mutex_destroy( &QUEUE(i).lock );
     }
-    vlc_mutex_destroy( &(p_this->p_libvlc->msg_bank.lock) );
+    vlc_mutex_destroy( &priv->msg_bank.lock);
 }
 
 /**
@@ -153,8 +155,12 @@ void __msg_Destroy( vlc_object_t *p_this )
  */
 msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this, int i )
 {
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
     msg_subscription_t *p_sub = malloc( sizeof( msg_subscription_t ) );
 
+    if (p_sub == NULL)
+        return NULL;
+
     assert( i < NB_QUEUES );
 
     LOCK_BANK;
@@ -178,13 +184,13 @@ msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this, int i )
  */
 void __msg_Unsubscribe( vlc_object_t *p_this, msg_subscription_t *p_sub )
 {
-    int i,j;
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
 
     LOCK_BANK;
-    for( i = 0 ; i< NB_QUEUES ; i++ )
+    for( int i = 0 ; i< NB_QUEUES ; i++ )
     {
         vlc_mutex_lock( &QUEUE(i).lock );
-        for( j = 0 ; j< QUEUE(i).i_sub ; j++ )
+        for( int j = 0 ; j< QUEUE(i).i_sub ; j++ )
         {
             if( QUEUE(i).pp_sub[j] == p_sub )
             {
@@ -262,6 +268,7 @@ static void QueueMsg( vlc_object_t *p_this, int i_queue, int i_type,
                       const char *psz_module,
                       const char *psz_format, va_list _args )
 {
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
     int         i_header_size;             /* Size of the additionnal header */
     vlc_object_t *p_obj;
     char *       psz_str = NULL;                 /* formatted message string */
@@ -556,21 +563,22 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item )
     static const char * ppsz_type[4] = { "", " error", " warning", " debug" };
     static const char *ppsz_color[4] = { WHITE, RED, YELLOW, GRAY };
     const char *psz_object;
+    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
     int i_type = p_item->i_type;
 
     switch( i_type )
     {
         case VLC_MSG_ERR:
-            if( p_this->p_libvlc->i_verbose < 0 ) return;
+            if( priv->i_verbose < 0 ) return;
             break;
         case VLC_MSG_INFO:
-            if( p_this->p_libvlc->i_verbose < 0 ) return;
+            if( priv->i_verbose < 0 ) return;
             break;
         case VLC_MSG_WARN:
-            if( p_this->p_libvlc->i_verbose < 1 ) return;
+            if( priv->i_verbose < 1 ) return;
             break;
         case VLC_MSG_DBG:
-            if( p_this->p_libvlc->i_verbose < 2 ) return;
+            if( priv->i_verbose < 2 ) return;
             break;
     }
 
@@ -590,7 +598,7 @@ static void PrintMsg ( vlc_object_t * p_this, msg_item_t * p_item )
 
 #else
     /* Send the message to stderr */
-    if( p_this->p_libvlc->b_color )
+    if( priv->b_color )
     {
         if( p_item->psz_header )
         {