]> git.sesse.net Git - vlc/blobdiff - include/vlc_common.h
Hide thread ID out of VLC_COMMON_MEMBERS
[vlc] / include / vlc_common.h
index 97073587994444424081edb9e1718b06f518cd5e..502bd08b85d986776730b962e5f1dce60aeb9fc4 100644 (file)
@@ -429,6 +429,7 @@ typedef struct vlm_message_t vlm_message_t;
 
 /* divers */
 typedef struct vlc_meta_t    vlc_meta_t;
+typedef struct meta_export_t meta_export_t;
 
 /* Stats */
 typedef struct counter_t     counter_t;
@@ -473,41 +474,39 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 #if defined (WIN32) && defined (DLL_EXPORT)
 #  ifdef __cplusplus
 #    define VLC_PUBLIC_API __declspec(dllexport) 
+#    define VLC_PRIVATE_API __declspec(dllexport) 
 #    define   VLC_EXPORT( type, name, args ) extern "C" __declspec(dllexport) type name args
 #    define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #  else
 #    define VLC_PUBLIC_API extern __declspec(dllexport) 
+#    define VLC_PRIVATE_API extern __declspec(dllexport) 
 #    define   VLC_EXPORT( type, name, args ) __declspec(dllexport) type name args
 #    define VLC_INTERNAL( type, name, args ) type name args
 #  endif
 #else
-#  if !defined (__PLUGIN__) || defined (HAVE_SHARED_LIBVLC)
-#    ifdef __cplusplus
-#      if HAVE_ATTRIBUTE_VISIBILITY
-#         define VLC_PUBLIC_API __attribute__((visibility("default")))
-#         define   VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
-#         define VLC_INTERNAL( type, name, args ) extern "C" __attribute__((visibility("hidden"))) type name args
-#      else
-#         define VLC_PUBLIC_API
-#         define   VLC_EXPORT( type, name, args ) extern "C" type name args
-#         define VLC_INTERNAL( type, name, args ) extern "C" type name args
-#      endif
+#  ifdef __cplusplus
+#    if HAVE_ATTRIBUTE_VISIBILITY
+#      define VLC_PUBLIC_API __attribute__((visibility("default")))
+#      define VLC_PRIVATE_API __attribute__((visibility("default")))
+#      define   VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
+#      define VLC_INTERNAL( type, name, args ) extern "C" __attribute__((visibility("hidden"))) type name args
 #    else
-#      if HAVE_ATTRIBUTE_VISIBILITY
-#         define VLC_PUBLIC_API extern __attribute__((visibility("default")))
-#         define   VLC_EXPORT( type, name, args ) __attribute__((visibility("default"))) type name args
-#         define VLC_INTERNAL( type, name, args ) __attribute__((visibility("hidden"))) type name args
-#      else
-#         define VLC_PUBLIC_API extern 
-#         define   VLC_EXPORT( type, name, args ) type name args
-#         define VLC_INTERNAL( type, name, args ) type name args
-#      endif
+#      define VLC_PUBLIC_API
+#      define   VLC_EXPORT( type, name, args ) extern "C" type name args
+#      define VLC_INTERNAL( type, name, args ) extern "C" type name args
 #    endif
 #  else
-#    define VLC_PUBLIC_API 
-#    define   VLC_EXPORT( type, name, args ) struct _u_n_u_s_e_d_
-#    define VLC_INTERNAL( type, name, args ) struct _u_n_u_s_e_d_
-     extern module_symbols_t* p_symbols;
+#    if HAVE_ATTRIBUTE_VISIBILITY
+#      define VLC_PUBLIC_API extern __attribute__((visibility("default")))
+#      define VLC_PRIVATE_API extern __attribute__((visibility("default")))
+#      define   VLC_EXPORT( type, name, args ) __attribute__((visibility("default"))) type name args
+#      define VLC_INTERNAL( type, name, args ) __attribute__((visibility("hidden"))) type name args
+#    else
+#      define VLC_PUBLIC_API extern 
+#      define VLC_PRIVATE_API extern
+#      define   VLC_EXPORT( type, name, args ) type name args
+#      define VLC_INTERNAL( type, name, args ) type name args
+#    endif
 #  endif
 #endif
 
@@ -526,6 +525,8 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
 
 #include "vlc_threads.h"
 
+typedef struct vlc_object_internals_t vlc_object_internals_t;
+
 /*****************************************************************************
  * Common structure members
  *****************************************************************************/
@@ -536,6 +537,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
  * these members are common for all vlc objects                             \
  */                                                                         \
 /**@{*/                                                                     \
+    vlc_object_internals_t *p_internals;                                    \
     int   i_object_id;                                                      \
     int   i_object_type;                                                    \
     const char *psz_object_type;                                            \
@@ -545,10 +547,6 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
     char *psz_header;                                                       \
     int  i_flags;                                                           \
                                                                             \
-    /* Thread properties, if any */                                         \
-    vlc_bool_t   b_thread;                                                  \
-    vlc_thread_t thread_id;                                                 \
-                                                                            \
     /* Object access lock */                                                \
     vlc_mutex_t  object_lock;                                               \
     vlc_cond_t   object_wait;                                               \
@@ -560,13 +558,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *,      /* variable's object */
     volatile vlc_bool_t b_attached;               /**< set by the object */ \
     vlc_bool_t b_force;      /**< set by the outside (eg. module_Need()) */ \
                                                                             \
-    /* Object variables */                                                  \
-    vlc_mutex_t     var_lock;                                               \
-    int             i_vars;                                                 \
-    variable_t *    p_vars;                                                 \
-                                                                            \
     /* Stuff related to the libvlc structure */                             \
-    vlc_object_t *p_libvlc_global;                 /**< root of all evil */ \
     libvlc_int_t *p_libvlc;                  /**< (root of all evil) - 1 */ \
                                                                             \
     volatile int    i_refcount;                         /**< usage count */ \
@@ -1009,7 +1001,6 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
     VLC_INTERNAL( void, vlc_seekdir, ( void *, long ) );
     VLC_INTERNAL( long, vlc_telldir, ( void * ) );
 #else
-    struct dirent;  /* forward declaration for vlc_symbols.h */
 #   if !defined(__PLUGIN__)
 #       define vlc_opendir  NULL
 #       define vlc_readdir  NULL
@@ -1174,7 +1165,7 @@ VLC_EXPORT( unsigned, vlc_CPU, ( void ) );
 /*****************************************************************************
  * I18n stuff
  *****************************************************************************/
-#if defined (WIN32) || !defined (HAVE_SHARED_LIBVLC)
+#ifdef WIN32
 VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) );
 #endif
 
@@ -1190,7 +1181,7 @@ VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) );
 #       include <libintl.h>
 #   endif
 #   undef _
-#   if defined (WIN32) || !defined (HAVE_SHARED_LIBVLC)
+#   ifdef WIN32
 #       define _(String) vlc_dgettext (PACKAGE_NAME, String)
 #   else
 #       define _(String) dgettext(PACKAGE_NAME, String)
@@ -1215,12 +1206,6 @@ VLC_EXPORT( const char *, VLC_Changeset, ( void ) );
 /*****************************************************************************
  * Additional vlc stuff
  *****************************************************************************/
-#ifndef HAVE_SHARED_LIBVLC
-#   ifdef HAVE_DIRENT_H
-#   include <dirent.h>  /* for DIR typedef in vlc_symbols.h */
-#   endif
-#   include "vlc_symbols.h"
-#endif
 #include "vlc_os_specific.h"
 #include "vlc_messages.h"
 #include "vlc_variables.h"