X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_common.h;h=3781f0fb7c8a5c730be10e9e6dd82323e1df7fbe;hb=e9097e4f6da79a7f780ef17488b35b37d3973be7;hp=ff844e7150ab88f03c17c419544ba8a34486c95f;hpb=0101fe518bd2d8378ccb8497b21fb70d8903a067;p=vlc diff --git a/include/vlc_common.h b/include/vlc_common.h index ff844e7150..3781f0fb7c 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -2,7 +2,7 @@ * common.h: common definitions * Collection of useful common types and macros definitions ***************************************************************************** - * Copyright (C) 1998, 1999, 2000 VideoLAN + * Copyright (C) 1998-2004 VideoLAN * $Id$ * * Authors: Samuel Hocevar @@ -38,6 +38,15 @@ #include "config.h" +#if defined(PACKAGE) +# undef PACKAGE_NAME +# define PACKAGE_NAME PACKAGE +#endif +#if defined(VERSION) +# undef PACKAGE_VERSION +# define PACKAGE_VERSION VERSION +#endif + #if defined( __BORLANDC__ ) # undef HAVE_VARIADIC_MACROS # undef HAVE_STDINT_H @@ -183,17 +192,30 @@ typedef uint32_t vlc_fourcc_t; typedef struct libvlc_t libvlc_t; typedef struct vlc_t vlc_t; typedef struct variable_t variable_t; +typedef struct date_t date_t; /* Messages */ typedef struct msg_bank_t msg_bank_t; typedef struct msg_subscription_t msg_subscription_t; /* Playlist */ + +/* FIXME */ +/** + * Playlist commands + */ +typedef enum { + PLAYLIST_PLAY, /**< Starts playing. No arg. */ + PLAYLIST_PAUSE, /**< Toggles playlist pause. No arg. */ + PLAYLIST_STOP, /**< Stops playing. No arg. */ + PLAYLIST_SKIP, /**< Skip X items and play. */ + PLAYLIST_GOTO, /**< Goto Xth item. */ +} playlist_command_t; + + typedef struct playlist_t playlist_t; typedef struct playlist_item_t playlist_item_t; typedef struct playlist_group_t playlist_group_t; -typedef struct item_info_t item_info_t; -typedef struct item_info_category_t item_info_category_t; typedef struct playlist_export_t playlist_export_t; /* Modules */ @@ -201,6 +223,7 @@ typedef struct module_bank_t module_bank_t; typedef struct module_t module_t; typedef struct module_config_t module_config_t; typedef struct module_symbols_t module_symbols_t; +typedef struct module_cache_t module_cache_t; /* Interface */ typedef struct intf_thread_t intf_thread_t; @@ -212,11 +235,10 @@ typedef struct intf_channel_t intf_channel_t; /* Input */ typedef struct input_thread_t input_thread_t; typedef struct input_thread_sys_t input_thread_sys_t; +typedef struct input_item_t input_item_t; typedef struct input_area_t input_area_t; typedef struct input_buffers_t input_buffers_t; typedef struct input_socket_t input_socket_t; -typedef struct input_info_t input_info_t; -typedef struct input_info_category_t input_info_category_t; typedef struct access_sys_t access_sys_t; typedef struct demux_sys_t demux_sys_t; typedef struct es_descriptor_t es_descriptor_t; @@ -225,6 +247,8 @@ typedef struct pgrm_descriptor_t pgrm_descriptor_t; typedef struct pgrm_sys_t pgrm_sys_t; typedef struct stream_descriptor_t stream_descriptor_t; typedef struct seekpoint_t seekpoint_t; +typedef struct info_t info_t; +typedef struct info_category_t info_category_t; /* Format */ typedef struct audio_format_t audio_format_t; @@ -240,6 +264,7 @@ typedef struct es_out_t es_out_t; typedef struct es_out_id_t es_out_id_t; typedef struct es_out_sys_t es_out_sys_t; typedef struct demux_t demux_t; +typedef struct access_t access_t; /* Audio */ typedef struct aout_instance_t aout_instance_t; @@ -261,20 +286,35 @@ typedef struct picture_sys_t picture_sys_t; typedef struct picture_heap_t picture_heap_t; typedef struct subpicture_t subpicture_t; typedef struct subpicture_sys_t subpicture_sys_t; +typedef struct subpicture_region_t subpicture_region_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_instance_sys_t sout_instance_sys_t; + typedef struct sout_input_t sout_input_t; typedef struct sout_packetizer_input_t sout_packetizer_input_t; + typedef struct sout_access_out_t sout_access_out_t; +typedef struct sout_access_out_sys_t sout_access_out_sys_t; + typedef struct sout_mux_t sout_mux_t; +typedef struct sout_mux_sys_t sout_mux_sys_t; + typedef struct sout_stream_t sout_stream_t; +typedef struct sout_stream_sys_t sout_stream_sys_t; + typedef struct sout_cfg_t sout_cfg_t; -/*typedef struct sap_session_t sap_session_t; -typedef struct slp_session_t slp_session_t;*/ +typedef struct sap_session_t sap_session_t; +typedef struct sap_address_t sap_address_t; +typedef struct session_descriptor_t session_descriptor_t; +typedef struct announce_method_t announce_method_t; +typedef struct announce_handler_t announce_handler_t; +typedef struct sap_handler_t sap_handler_t; +//typedef struct slp_session_t slp_session_t; /* Decoders */ typedef struct decoder_t decoder_t; @@ -284,10 +324,13 @@ typedef struct decoder_sys_t decoder_sys_t; typedef struct encoder_t encoder_t; typedef struct encoder_sys_t encoder_sys_t; +/* Filters */ +typedef struct filter_t filter_t; +typedef struct filter_sys_t filter_sys_t; + /* Misc */ typedef struct data_packet_t data_packet_t; typedef struct data_buffer_t data_buffer_t; -typedef struct stream_position_t stream_position_t; typedef struct stream_ctrl_t stream_ctrl_t; typedef struct pes_packet_t pes_packet_t; typedef struct network_socket_t network_socket_t; @@ -311,6 +354,15 @@ typedef int (*httpd_file_callback_t)( httpd_file_sys_t*, httpd_file_t *, uint8_t typedef struct httpd_redirect_t httpd_redirect_t; typedef struct httpd_stream_t httpd_stream_t; +/* vod server */ +typedef struct vod_t vod_t; +typedef struct vod_sys_t vod_sys_t; +typedef struct vod_media_t vod_media_t; + +/* opengl */ +typedef struct opengl_t opengl_t; +typedef struct opengl_sys_t opengl_sys_t; + /* divers */ typedef struct vlc_meta_t vlc_meta_t; @@ -376,6 +428,7 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *, /* variable's 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 */ \ + vlc_bool_t b_force; /**< set by the outside (eg. module_Need()) */ \ \ /* Object variables */ \ vlc_mutex_t var_lock; \ @@ -427,6 +480,12 @@ typedef int ( * vlc_callback_t ) ( vlc_object_t *, /* variable's object */ # define __MIN(a, b) ( ((a) < (b)) ? (a) : (b) ) #endif +static int64_t GCD( int64_t a, int64_t b ) +{ + if( b ) return GCD( b, a % b ); + else return a; +} + /* Dynamic array handling: realloc array, move data, increment position */ #define INSERT_ELEM( p_ar, i_oldsize, i_pos, elem ) \ do \ @@ -569,7 +628,6 @@ static inline uint64_t GetQWLE( void const * _p ) #define GetQWBE( p ) U64_AT( p ) /* Helper writer functions */ - #define SetWLE( p, v ) _SetWLE( (uint8_t*)p, v) static inline void _SetWLE( uint8_t *p, uint16_t i_dw ) { @@ -591,6 +649,27 @@ static inline void _SetQWLE( uint8_t *p, uint64_t i_qw ) SetDWLE( p, i_qw&0xffffffff ); SetDWLE( p+4, ( i_qw >> 32)&0xffffffff ); } +#define SetWBE( p, v ) _SetWBE( (uint8_t*)p, v) +static inline void _SetWBE( uint8_t *p, uint16_t i_dw ) +{ + p[0] = ( i_dw >> 8 )&0xff; + p[1] = ( i_dw )&0xff; +} + +#define SetDWBE( p, v ) _SetDWBE( (uint8_t*)p, v) +static inline void _SetDWBE( uint8_t *p, uint32_t i_dw ) +{ + p[0] = ( i_dw >> 24 )&0xff; + p[1] = ( i_dw >> 16 )&0xff; + p[2] = ( i_dw >> 8 )&0xff; + p[3] = ( i_dw )&0xff; +} +#define SetQWBE( p, v ) _SetQWBE( (uint8_t*)p, v) +static inline void _SetQWBE( uint8_t *p, uint64_t i_qw ) +{ + SetDWBE( p+4, i_qw&0xffffffff ); + SetDWBE( p, ( i_qw >> 32)&0xffffffff ); +} #if WORDS_BIGENDIAN # define hton16(i) ( i ) @@ -707,33 +786,47 @@ static inline void _SetQWLE( uint8_t *p, uint64_t i_qw ) #endif #ifndef HAVE_STRCASECMP -# ifdef HAVE_STRICMP +# ifndef HAVE_STRICMP +# define strcasecmp vlc_strcasecmp + VLC_EXPORT( int, vlc_strcasecmp, ( const char *s1, const char *s2 ) ); +# else # define strcasecmp stricmp # 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 ) ); # endif #elif !defined(__PLUGIN__) # define vlc_strcasecmp NULL #endif #ifndef HAVE_STRNCASECMP -# ifdef HAVE_STRNICMP +# ifndef HAVE_STRNICMP +# define strncasecmp vlc_strncasecmp + VLC_EXPORT( int, vlc_strncasecmp, ( const char *s1, const char *s2, size_t n ) ); +# else # define strncasecmp strnicmp # 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 #elif !defined(__PLUGIN__) # define vlc_strncasecmp NULL #endif +#ifndef HAVE_STRCASESTR +# ifndef HAVE_STRISTR +# define strcasestr vlc_strcasestr + VLC_EXPORT( char *, vlc_strcasestr, ( const char *s1, const char *s2 ) ); +# else +# define strcasestr stristr +# if !defined(__PLUGIN__) +# define vlc_strcasestr NULL +# endif +# endif +#elif !defined(__PLUGIN__) +# define vlc_strcasestr NULL +#endif + /* Format type specifiers for 64 bits numbers */ #if !defined(WIN32) && !defined(UNDER_CE) # define I64Fd "%lld" @@ -826,10 +919,18 @@ typedef __int64 off_t; # define vlc_lseek NULL #endif +VLC_EXPORT( vlc_bool_t, vlc_reduce, ( int *, int *, int64_t, int64_t, int64_t ) ); + /* vlc_wraptext (defined in src/extras/libc.c) */ #define wraptext vlc_wraptext VLC_EXPORT( char *, vlc_wraptext, ( const char *, int, vlc_bool_t ) ); +/* iconv wrappers (defined in src/extras/libc.c) */ +typedef void *vlc_iconv_t; +VLC_EXPORT( vlc_iconv_t, vlc_iconv_open, ( const char *, const char * ) ); +VLC_EXPORT( size_t, vlc_iconv, ( vlc_iconv_t, char **, size_t *, char **, size_t * ) ); +VLC_EXPORT( int, vlc_iconv_close, ( vlc_iconv_t ) ); + /***************************************************************************** * CPU capabilities *****************************************************************************/ @@ -856,17 +957,13 @@ VLC_EXPORT( char *, vlc_dgettext, ( const char *package, const char *msgid ) ); defined(MODULE_NAME_IS_pda)) /* Declare nothing: gnome.h will do it for us */ #elif defined( ENABLE_NLS ) -#if defined( HAVE_INCLUDED_GETTEXT ) -# include "libintl.h" -#else -# include -#endif +# if defined( HAVE_INCLUDED_GETTEXT ) +# include "libintl.h" +# else +# include +# endif # undef _ -#if defined( __BORLANDC__ ) -#define _(String) vlc_dgettext (PACKAGE_TARNAME, String) -#else -# define _(String) vlc_dgettext (PACKAGE, String) -#endif +# define _(String) vlc_dgettext (PACKAGE_NAME, String) # define N_(String) ((char*)(String)) #else # define _(String) ((char*)(String))