* Collection of useful common types and macros definitions
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vlc_common.h,v 1.52 2003/01/28 17:11:38 sam Exp $
+ * $Id: vlc_common.h,v 1.68 2003/07/14 20:36:55 sigmunau Exp $
*
* Authors: Samuel Hocevar <sam@via.ecp.fr>
* Vincent Seguin <seguin@via.ecp.fr>
# endif
#endif
+#if defined( WIN32 )
+# include <malloc.h>
+#endif
+
#if defined( WIN32 ) || defined( UNDER_CE )
typedef int ssize_t;
#endif
typedef struct picture_heap_t picture_heap_t;
typedef struct subpicture_t subpicture_t;
typedef struct subpicture_sys_t subpicture_sys_t;
+typedef struct vout_synchro_t vout_synchro_t;
+typedef struct text_renderer_sys_t text_renderer_sys_t;
+typedef struct text_style_t text_style_t;
/* Stream output */
typedef struct sout_instance_t sout_instance_t;
typedef struct sout_fifo_t sout_fifo_t;
typedef struct sout_input_t sout_input_t;
+typedef struct sout_packetizer_input_t sout_packetizer_input_t;
typedef struct sout_buffer_t sout_buffer_t;
-typedef struct sout_packet_format_t sout_packet_format_t;
-
+typedef struct sout_access_out_t sout_access_out_t;
+typedef struct sout_mux_t sout_mux_t;
+typedef struct sout_stream_t sout_stream_t;
+typedef struct sout_cfg_t sout_cfg_t;
+typedef struct sout_format_t sout_format_t;
+typedef struct sap_session_t sap_session_t;
/* Decoders */
typedef struct decoder_fifo_t decoder_fifo_t;
/* VLC_COMMON_MEMBERS : members common to all basic vlc objects */
#define VLC_COMMON_MEMBERS \
+/** \name VLC_COMMON_MEMBERS \
+ * these members are common for all vlc objects \
+ */ \
+/**@{*/ \
int i_object_id; \
int i_object_type; \
char *psz_object_type; \
vlc_cond_t object_wait; \
\
/* Object properties */ \
- volatile vlc_bool_t b_error; /* set by the object */ \
- volatile vlc_bool_t b_die; /* set by the outside */ \
- volatile vlc_bool_t b_dead; /* set by the object */ \
- volatile vlc_bool_t b_attached; /* set by the object */ \
+ volatile vlc_bool_t b_error; /**< set by the object */ \
+ volatile vlc_bool_t b_die; /**< set by the outside */ \
+ volatile vlc_bool_t b_dead; /**< set by the object */ \
+ volatile vlc_bool_t b_attached; /**< set by the object */ \
\
/* Object variables */ \
vlc_mutex_t var_lock; \
variable_t * p_vars; \
\
/* Stuff related to the libvlc structure */ \
- libvlc_t * p_libvlc; /* root of all evil */ \
- vlc_t * p_vlc; /* (root of all evil) - 1 */ \
+ libvlc_t * p_libvlc; /**< root of all evil */ \
+ vlc_t * p_vlc; /**< (root of all evil) - 1 */ \
\
- volatile int i_refcount; /* usage count */ \
- vlc_object_t * p_parent; /* our parent */ \
- vlc_object_t ** pp_children; /* our children */ \
+ volatile int i_refcount; /**< usage count */ \
+ vlc_object_t * p_parent; /**< our parent */ \
+ vlc_object_t ** pp_children; /**< our children */ \
volatile int i_children; \
\
/* Private data */ \
void * p_private; \
\
- /* Just a reminder so that people don't cast garbage */ \
+ /** Just a reminder so that people don't cast garbage */ \
int be_sure_to_add_VLC_COMMON_MEMBERS_to_struct; \
+/**@}*/ \
/* VLC_OBJECT: attempt at doing a clever cast */
#define VLC_OBJECT( x ) \
{ \
(p_ar) = malloc( ((i_oldsize) + 1) * sizeof( *(p_ar) ) ); \
} \
- memmove( (p_ar) + (i_pos) + 1, \
- (p_ar) + (i_pos), \
- ((i_oldsize) - (i_pos)) * sizeof( *(p_ar) ) ); \
+ if( (i_oldsize) - (i_pos) ) \
+ { \
+ memmove( (p_ar) + (i_pos) + 1, \
+ (p_ar) + (i_pos), \
+ ((i_oldsize) - (i_pos)) * sizeof( *(p_ar) ) ); \
+ } \
(p_ar)[i_pos] = elem; \
(i_oldsize)++; \
} \
#define REMOVE_ELEM( p_ar, i_oldsize, i_pos ) \
do \
{ \
- memmove( (p_ar) + (i_pos), \
- (p_ar) + (i_pos) + 1, \
- ((i_oldsize) - (i_pos) - 1) * sizeof( *(p_ar) ) ); \
+ if( (i_oldsize) - (i_pos) - 1 ) \
+ { \
+ memmove( (p_ar) + (i_pos), \
+ (p_ar) + (i_pos) + 1, \
+ ((i_oldsize) - (i_pos) - 1) * sizeof( *(p_ar) ) ); \
+ } \
if( i_oldsize > 1 ) \
{ \
(p_ar) = realloc( p_ar, ((i_oldsize) - 1) * sizeof( *(p_ar) ) ); \
#ifndef HAVE_STRNDUP
# if defined(STRNDUP_IN_GNOME_H) && \
- (defined(MODULE_NAME_IS_gnome)||defined(MODULE_NAME_IS_gnome_main))
+ (defined(MODULE_NAME_IS_gnome)||defined(MODULE_NAME_IS_gnome_main)||\
+ defined(MODULE_NAME_IS_gnome2)||defined(MODULE_NAME_IS_gnome2_main))
/* Do nothing: gnome.h defines strndup for us */
# else
# define strndup vlc_strndup
#ifndef HAVE_STRCASECMP
# ifdef HAVE_STRICMP
# define strcasecmp stricmp
-# define vlc_strcasecmp NULL
+# if !defined(__PLUGIN__)
+# define vlc_strcasecmp NULL
+# endif
# elif !defined(__PLUGIN__)
# define strcasecmp vlc_strcasecmp
VLC_EXPORT( int, vlc_strcasecmp, ( const char *s1, const char *s2 ) );
#ifndef HAVE_STRNCASECMP
# ifdef HAVE_STRNICMP
# define strncasecmp strnicmp
-# define vlc_strncasecmp NULL
+# if !defined(__PLUGIN__)
+# define vlc_strncasecmp NULL
+# endif
# elif !defined(__PLUGIN__)
# define strncasecmp vlc_strncasecmp
VLC_EXPORT( int, vlc_strncasecmp, ( const char *s1, const char *s2, size_t n ) );
#endif /* defined(WIN32)||defined(UNDER_CE) */
/* 64 bits integer constant suffix */
-#if !defined(WIN32) && !defined(UNDER_CE)
+#if defined( __MINGW32__ ) || (!defined(WIN32) && !defined(UNDER_CE))
# define I64C(x) x##LL
#else
# define I64C(x) x##i64
# ifndef O_NONBLOCK
# define O_NONBLOCK 0
+# endif
+
+# ifndef alloca
+# define alloca _alloca
# endif
/* These two are not defined in mingw32 (bug?) */
VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) );
#if defined( ENABLE_NLS ) && \
- (defined(MODULE_NAME_IS_gnome)||defined(MODULE_NAME_IS_gnome_main))
+ (defined(MODULE_NAME_IS_gnome)||defined(MODULE_NAME_IS_gnome_main)||\
+ defined(MODULE_NAME_IS_gnome2)||defined(MODULE_NAME_IS_gnome2_main))
/* Declare nothing: gnome.h will do it for us */
-#elif defined( ENABLE_NLS ) && defined( HAVE_INCLUDED_GETTEXT )
+#elif defined( ENABLE_NLS )
+#if defined( HAVE_INCLUDED_GETTEXT )
# include "libintl.h"
-# undef _
-# define _(String) vlc_dgettext (PACKAGE, String)
-# define N_(String) ((char*)(String))
-#elif defined( ENABLE_NLS ) && defined( HAVE_GETTEXT )
+#else
# include <libintl.h>
+#endif
# undef _
-# define _(String) dgettext (PACKAGE, String)
+#if defined( __BORLANDC__ )
+#define _(String) vlc_dgettext (PACKAGE_TARNAME, String)
+#else
+# define _(String) vlc_dgettext (PACKAGE, String)
+#endif
# define N_(String) ((char*)(String))
#else
# define _(String) ((char*)(String))