#ifndef LIBVLC_LIBVLC_H
# define LIBVLC_LIBVLC_H 1
+typedef struct variable_t variable_t;
+
extern const char vlc_usage[];
/* Hotkey stuff */
/* Hopefully, no need to export this. There is a new thread API instead. */
void vlc_thread_cancel (vlc_object_t *);
+void vlc_trace (const char *fn, const char *file, unsigned line);
+#define vlc_backtrace() vlc_trace(__func__, __FILE__, __LINE__)
+
+#if defined (LIBVLC_USE_PTHREAD) && !defined (NDEBUG)
+# define vlc_assert_locked( m ) \
+ assert (pthread_mutex_lock (m) == EDEADLK)
+#else
+# define vlc_assert_locked( m ) (void)m
+#endif
/*
* CPU capabilities
/**
* Private LibVLC data for each object.
*/
-struct vlc_object_internals_t
+typedef struct vlc_object_internals_t
{
/* Object variables */
variable_t * p_vars;
vlc_object_t *prev, *next;
vlc_object_t **pp_children;
int i_children;
-};
+} vlc_object_internals_t;
#define ZOOM_SECTION N_("Zoom")
#define ZOOM_QUARTER_KEY_TEXT N_("1:4 Quarter")
#define vlc_internals( obj ) (((vlc_object_internals_t*)(VLC_OBJECT(obj)))-1)
+typedef struct sap_handler_t sap_handler_t;
+
/**
* Private LibVLC instance data.
*/
vlc_mutex_t config_lock; ///< config file lock
char * psz_configfile; ///< location of config file
- /* There is no real reason to keep a list of items, but not to break
- * everything, let's keep it */
- 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?
+ vlc_dictionary_t msg_enabled_objects; ///< Enabled objects
+ bool msg_all_objects_enabled; ///< Should we print all objects?
/* Timer stats */
vlc_mutex_t timer_lock; ///< Lock to protect timers
vlm_t *p_vlm; ///< the VLM singleton (or NULL)
interaction_t *p_interaction; ///< interface interaction object
httpd_t *p_httpd; ///< HTTP daemon (src/network/httpd.c)
+#ifdef ENABLE_SOUT
+ sap_handler_t *p_sap; ///< SAP SDP advertiser
+#endif
+ vlc_mutex_t structure_lock;
} libvlc_priv_t;
static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc)