+ libvlc_int_t public_data;
+ vlc_cond_t exiting; ///< signaled when VLC wants to exit
+
+ /* Configuration */
+ vlc_mutex_t config_lock; ///< config file lock
+ char * psz_configfile; ///< location of config file
+
+ 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
+ counter_t **pp_timers; ///< Array of all timers
+ int i_timers; ///< Number of timers
+ bool b_stats; ///< Whether to collect stats
+
+ /* Singleton objects */
+ module_t *p_memcpy_module; ///< Fast memcpy plugin used
+ playlist_t *p_playlist; //< the playlist singleton
+ vlm_t *p_vlm; ///< the VLM singleton (or NULL)
+ interaction_t *p_interaction; ///< interface interaction object
+ intf_thread_t *p_interaction_intf; ///< XXX interface for interaction
+ 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)
+{
+ return (libvlc_priv_t *)libvlc;