* Message/logging stuff
*/
-typedef struct msg_queue_t
+/**
+ * Store all data required by messages interfaces.
+ */
+typedef struct msg_bank_t
{
/** 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;
+ vlc_mutex_t lock;
+ vlc_cond_t wait;
/* Subscribers */
int i_sub;
#ifdef UNDER_CE
FILE *logfile;
#endif
-} msg_queue_t;
-
-/**
- * Store all data required by messages interfaces.
- */
-typedef struct msg_bank_t
-{
- vlc_mutex_t lock;
- msg_queue_t queue;
} msg_bank_t;
void msg_Create (libvlc_int_t *);
-void msg_Flush (libvlc_int_t *);
void msg_Destroy (libvlc_int_t *);
/** Internal message stack context */
#define vlc_custom_create(o, s, t, n) \
__vlc_custom_create(VLC_OBJECT(o), s, t, n)
-
-/**
- * The module bank
+/*
+ * To be cleaned-up module stuff:
*/
-extern module_bank_t *p_module_bank;
-
extern char *psz_vlcpath;
+/* Return a NULL terminated array with the names of the modules that have a
+ * certain capability.
+ * Free after uses both the string and the table. */
+VLC_EXPORT(char **, module_GetModulesNamesForCapability,
+ ( const char * psz_capability, char ***psz_longname ) );
+
#ifdef LIBVLC_USE_PTHREAD
# include <semaphore.h> /* TODO: get rid of vlc_thread_ready and this */
#endif
/* Object variables */
variable_t * p_vars;
vlc_mutex_t var_lock;
+ vlc_cond_t var_wait;
int i_vars;
/* Thread properties, if any */