X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Fvlc.h;h=1eaa8e89ed16016a451e88382da592236b763bd6;hb=2fa6989d9c4578258de43fe11fecba5e170f7883;hp=411791a41b8f075f83365ba89de387fcd4e1de16;hpb=053a3a7c8707f7d1b0db3be02936b76f075b39c9;p=vlc diff --git a/include/vlc/vlc.h b/include/vlc/vlc.h index 411791a41b..1eaa8e89ed 100644 --- a/include/vlc/vlc.h +++ b/include/vlc/vlc.h @@ -1,7 +1,7 @@ /***************************************************************************** - * vlc.h: global header for vlc + * vlc.h: global header for libvlc (old-style) ***************************************************************************** - * Copyright (C) 1998-2004 VideoLAN + * Copyright (C) 1998-2004 the VideoLAN team * $Id$ * * Authors: Vincent Seguin @@ -21,12 +21,13 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /** - * \defgroup libvlc Libvlc + * \defgroup libvlc_old Libvlc Old * This is libvlc, the base library of the VLC program. + * This is the legacy API. Please consider using the new libvlc API * * @{ */ @@ -46,6 +47,33 @@ typedef int vlc_bool_t; typedef struct vlc_list_t vlc_list_t; typedef struct vlc_object_t vlc_object_t; +#if (defined( WIN32 ) || defined( UNDER_CE )) && !defined( __MINGW32__ ) +typedef signed __int64 vlc_int64_t; +# else +typedef signed long long vlc_int64_t; +#endif + +/** + * \defgroup var_type Variable types + * These are the different types a vlc variable can have. + * @{ + */ +#define VLC_VAR_VOID 0x0010 +#define VLC_VAR_BOOL 0x0020 +#define VLC_VAR_INTEGER 0x0030 +#define VLC_VAR_HOTKEY 0x0031 +#define VLC_VAR_STRING 0x0040 +#define VLC_VAR_MODULE 0x0041 +#define VLC_VAR_FILE 0x0042 +#define VLC_VAR_DIRECTORY 0x0043 +#define VLC_VAR_VARIABLE 0x0044 +#define VLC_VAR_FLOAT 0x0050 +#define VLC_VAR_TIME 0x0060 +#define VLC_VAR_ADDRESS 0x0070 +#define VLC_VAR_MUTEX 0x0080 +#define VLC_VAR_LIST 0x0090 +/**@}*/ + /** * VLC value structure */ @@ -58,12 +86,7 @@ typedef union void * p_address; vlc_object_t * p_object; vlc_list_t * p_list; - -#if defined( WIN32 ) && !defined( __MINGW32__ ) - signed __int64 i_time; -# else - signed long long i_time; -#endif + vlc_int64_t i_time; struct { char *psz_name; int i_object_id; } var; @@ -99,7 +122,10 @@ struct vlc_list_t #define VLC_ENOVAR -30 /* Variable not found */ #define VLC_EBADVAR -31 /* Bad variable value */ +#define VLC_ENOITEM -40 /**< Item not found */ + #define VLC_EEXIT -255 /* Program exited */ +#define VLC_EEXITSUCCESS -999 /* Program exited successfully */ #define VLC_EGENERIC -666 /* Generic error */ /***************************************************************************** @@ -114,30 +140,81 @@ struct vlc_list_t /* Used by VLC_AddTarget() */ #define PLAYLIST_INSERT 0x0001 -#define PLAYLIST_REPLACE 0x0002 -#define PLAYLIST_APPEND 0x0004 -#define PLAYLIST_GO 0x0008 -#define PLAYLIST_CHECK_INSERT 0x0010 +#define PLAYLIST_APPEND 0x0002 +#define PLAYLIST_GO 0x0004 +#define PLAYLIST_PREPARSE 0x0008 +#define PLAYLIST_SPREPARSE 0x0010 +#define PLAYLIST_NO_REBUILD 0x0020 #define PLAYLIST_END -666 /***************************************************************************** * Required internal headers *****************************************************************************/ -#if defined( __VLC__ ) +#if defined( __LIBVLC__ ) # include "vlc_common.h" #endif /***************************************************************************** - * Exported libvlc API + * Shared library Export macros *****************************************************************************/ +#ifndef VLC_PUBLIC_API +# define VLC_PUBLIC_API extern +#endif +/***************************************************************************** + * Exported libvlc API + *****************************************************************************/ +#if !defined( __LIBVLC__ ) +/* Otherwise they are declared and exported in vlc_common.h */ /** * Retrieve libvlc version * * \return a string containing the libvlc version */ -char const * VLC_Version ( void ); +VLC_PUBLIC_API char const * VLC_Version ( void ); + +/** + * Retrieve libvlc compile time + * + * \return a string containing the libvlc compile time + */ +VLC_PUBLIC_API char const * VLC_CompileTime ( void ); + +/** + * Retrieve the username of the libvlc builder + * + * \return a string containing the username of the libvlc builder + */ +VLC_PUBLIC_API char const * VLC_CompileBy ( void ); + +/** + * Retrieve the host of the libvlc builder + * + * \return a string containing the host of the libvlc builder + */ +VLC_PUBLIC_API char const * VLC_CompileHost ( void ); + +/** + * Retrieve the domain name of the host of the libvlc builder + * + * \return a string containing the domain name of the host of the libvlc builder + */ +VLC_PUBLIC_API char const * VLC_CompileDomain ( void ); + +/** + * Retrieve libvlc compiler version + * + * \return a string containing the libvlc compiler version + */ +VLC_PUBLIC_API char const * VLC_Compiler ( void ); + +/** + * Retrieve libvlc changeset + * + * \return a string containing the libvlc subversion changeset + */ +VLC_PUBLIC_API char const * VLC_Changeset ( void ); /** * Return an error string @@ -145,7 +222,9 @@ char const * VLC_Version ( void ); * \param i_err an error code * \return an error string */ -char const * VLC_Error ( int i_err ); +VLC_PUBLIC_API char const * VLC_Error ( int i_err ); + +#endif /* __LIBVLC__ */ /** * Initialize libvlc @@ -155,7 +234,7 @@ char const * VLC_Error ( int i_err ); * * \return vlc object id or an error code */ -int VLC_Create( void ); +VLC_PUBLIC_API int VLC_Create( void ); /** * Initialize a vlc_t structure @@ -171,7 +250,7 @@ int VLC_Create( void ); * \param ppsz_argv an array of arguments * \return VLC_SUCCESS on success */ -int VLC_Init( int, int, char *[] ); +VLC_PUBLIC_API int VLC_Init( int, int, char *[] ); /** * Add an interface @@ -187,7 +266,7 @@ int VLC_Init( int, int, char *[] ); * \param b_play start playing when the interface is done loading * \return VLC_SUCCESS on success */ -int VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t ); +VLC_PUBLIC_API int VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t ); /** * Ask vlc to die @@ -198,7 +277,7 @@ int VLC_AddIntf( int, char const *, vlc_bool_t, vlc_bool_t ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_Die( int ); +VLC_PUBLIC_API int VLC_Die( int ); /** * Clean up all the intf, playlist, vout and aout @@ -211,19 +290,19 @@ int VLC_Die( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_CleanUp( int ); +VLC_PUBLIC_API int VLC_CleanUp( int ); /** * Destroy all threads and the VLC object * * This function requests the running threads to finish, waits for their * termination, and destroys their structure. - * Then it will de-init all VLC object initializations. + * Then it will de-init all VLC object initializations. * * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_Destroy( int ); +VLC_PUBLIC_API int VLC_Destroy( int ); /** * Set a VLC variable @@ -237,7 +316,7 @@ int VLC_Destroy( int ); * \param value a vlc_value_t structure * \return VLC_SUCCESS on success */ -int VLC_VariableSet( int, char const *, vlc_value_t ); +VLC_PUBLIC_API int VLC_VariableSet( int, char const *, vlc_value_t ); /** * Get a VLC variable @@ -252,7 +331,20 @@ int VLC_VariableSet( int, char const *, vlc_value_t ); * \param p_value a pointer to a vlc_value_t structure * \return VLC_SUCCESS on success */ -int VLC_VariableGet( int, char const *, vlc_value_t * ); +VLC_PUBLIC_API int VLC_VariableGet( int, char const *, vlc_value_t * ); + +/** + * Get a VLC variable type + * + * This function gets the type of a variable of VLC + * It stores it in the p_type argument + * + * \param i_object a vlc object id + * \param psz_var a vlc variable name + * \param pi_type a pointer to an integer + * \return VLC_SUCCESS on success + */ +VLC_PUBLIC_API int VLC_VariableType( int, char const *, int * ); /** * Add a target to the current playlist @@ -268,7 +360,7 @@ int VLC_VariableGet( int, char const *, vlc_value_t * ); * \param i_pos the position at which to add the new target (PLAYLIST_END for end) * \return VLC_SUCCESS on success */ -int VLC_AddTarget( int, char const *, const char **, int, int, int ); +VLC_PUBLIC_API int VLC_AddTarget( int, char const *, const char **, int, int, int ); /** * Start the playlist and play the currently selected playlist item @@ -280,7 +372,7 @@ int VLC_AddTarget( int, char const *, const char **, int, int, int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_Play( int ); +VLC_PUBLIC_API int VLC_Play( int ); /** * Pause the currently playing item. Resume it if already paused @@ -291,7 +383,7 @@ int VLC_Play( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_Pause( int ); +VLC_PUBLIC_API int VLC_Pause( int ); /** * Stop the playlist @@ -304,7 +396,7 @@ int VLC_Pause( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_Stop( int ); +VLC_PUBLIC_API int VLC_Stop( int ); /** * Tell if VLC is playing @@ -315,7 +407,7 @@ int VLC_Stop( int ); * \param i_object a vlc object id * \return VLC_TRUE or VLC_FALSE */ -vlc_bool_t VLC_IsPlaying( int ); +VLC_PUBLIC_API vlc_bool_t VLC_IsPlaying( int ); /** * Get the current position in a input @@ -327,7 +419,7 @@ vlc_bool_t VLC_IsPlaying( int ); * \param i_object a vlc object id * \return a float in the range of 0.0 - 1.0 */ -float VLC_PositionGet( int ); +VLC_PUBLIC_API float VLC_PositionGet( int ); /** * Set the current position in a input @@ -340,7 +432,7 @@ float VLC_PositionGet( int ); * \param i_position a float in the range of 0.0 - 1.0 * \return a float in the range of 0.0 - 1.0 */ -float VLC_PositionSet( int, float ); +VLC_PUBLIC_API float VLC_PositionSet( int, float ); /** * Get the current position in a input @@ -351,7 +443,7 @@ float VLC_PositionSet( int, float ); * \param i_object a vlc object id * \return the offset from 0:00 in seconds */ -int VLC_TimeGet( int ); +VLC_PUBLIC_API int VLC_TimeGet( int ); /** * Seek to a position in the current input @@ -366,7 +458,7 @@ int VLC_TimeGet( int ); * \param b_relative seek relative from current position * \return VLC_SUCCESS on success */ -int VLC_TimeSet( int, int, vlc_bool_t ); +VLC_PUBLIC_API int VLC_TimeSet( int, int, vlc_bool_t ); /** * Get the total length of a input @@ -377,7 +469,7 @@ int VLC_TimeSet( int, int, vlc_bool_t ); * \param i_object a vlc object id * \return the length in seconds */ -int VLC_LengthGet( int ); +VLC_PUBLIC_API int VLC_LengthGet( int ); /** * Play the input faster than realtime @@ -388,7 +480,7 @@ int VLC_LengthGet( int ); * \param i_object a vlc object id * \return the current speedrate */ -float VLC_SpeedFaster( int ); +VLC_PUBLIC_API float VLC_SpeedFaster( int ); /** * Play the input slower than realtime @@ -399,7 +491,7 @@ float VLC_SpeedFaster( int ); * \param i_object a vlc object id * \return the current speedrate */ -float VLC_SpeedSlower( int ); +VLC_PUBLIC_API float VLC_SpeedSlower( int ); /** * Return the current playlist item @@ -407,7 +499,7 @@ float VLC_SpeedSlower( int ); * \param i_object a vlc object id * \return the index of the playlistitem that is currently selected for play */ -int VLC_PlaylistIndex( int ); +VLC_PUBLIC_API int VLC_PlaylistIndex( int ); /** * Total amount of items in the playlist @@ -415,7 +507,7 @@ int VLC_PlaylistIndex( int ); * \param i_object a vlc object id * \return amount of playlist items */ -int VLC_PlaylistNumberOfItems( int ); +VLC_PUBLIC_API int VLC_PlaylistNumberOfItems( int ); /** * Next playlist item @@ -425,7 +517,7 @@ int VLC_PlaylistNumberOfItems( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_PlaylistNext( int ); +VLC_PUBLIC_API int VLC_PlaylistNext( int ); /** * Previous playlist item @@ -435,7 +527,7 @@ int VLC_PlaylistNext( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_PlaylistPrev( int ); +VLC_PUBLIC_API int VLC_PlaylistPrev( int ); /** * Clear the contents of the playlist @@ -447,7 +539,7 @@ int VLC_PlaylistPrev( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_PlaylistClear( int ); +VLC_PUBLIC_API int VLC_PlaylistClear( int ); /** * Change the volume @@ -456,7 +548,7 @@ int VLC_PlaylistClear( int ); * \param i_volume something in a range from 0-200 * \return the new volume (range 0-200 %) */ -int VLC_VolumeSet( int, int ); +VLC_PUBLIC_API int VLC_VolumeSet( int, int ); /** * Get the current volume @@ -466,7 +558,7 @@ int VLC_VolumeSet( int, int ); * \param i_object a vlc object id * \return the current volume (range 0-200 %) */ -int VLC_VolumeGet( int ); +VLC_PUBLIC_API int VLC_VolumeGet( int ); /** * Mute/Unmute the volume @@ -474,7 +566,7 @@ int VLC_VolumeGet( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_VolumeMute( int ); +VLC_PUBLIC_API int VLC_VolumeMute( int ); /** * Toggle Fullscreen mode @@ -484,11 +576,17 @@ int VLC_VolumeMute( int ); * \param i_object a vlc object id * \return VLC_SUCCESS on success */ -int VLC_FullScreen( int ); +VLC_PUBLIC_API int VLC_FullScreen( int ); # ifdef __cplusplus } # endif +#define LICENSE_MSG \ + _("This program comes with NO WARRANTY, to the extent permitted by " \ + "law.\nYou may redistribute it under the terms of the GNU General " \ + "Public License;\nsee the file named COPYING for details.\n" \ + "Written by the VideoLAN team; see the AUTHORS file.\n") + #endif /* */