*/
-#ifndef _LIBVLC_H
-#define _LIBVLC_H 1
-
-#include <vlc/vlc.h>
+#ifndef VLC_LIBVLC_H
+#define VLC_LIBVLC_H 1
+
+#if defined (WIN32) && defined (DLL_EXPORT)
+# define VLC_PUBLIC_API __declspec(dllexport)
+#else
+# define VLC_PUBLIC_API
+#endif
+
+#ifdef __LIBVLC__
+/* Avoid unuseful warnings from libvlc with our deprecated APIs */
+# define VLC_DEPRECATED_API VLC_PUBLIC_API
+#elif defined(__GNUC__) && \
+ (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
+# define VLC_DEPRECATED_API VLC_PUBLIC_API __attribute__((deprecated))
+#else
+# define VLC_DEPRECATED_API VLC_PUBLIC_API
+#endif
# ifdef __cplusplus
extern "C" {
*/
VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t * );
+/**
+ * Try to start a user interface for the libvlc instance, and wait until the
+ * user exits.
+ *
+ * \param p_instance the instance
+ * \param name interface name, or NULL for default
+ * \param p_exception an initialized exception pointer
+ */
+VLC_PUBLIC_API
+void libvlc_add_intf( libvlc_instance_t *p_instance, const char *name,
+ libvlc_exception_t *p_exception );
+
+/**
+ * Waits until an interface causes the instance to exit.
+ * You should start at least one interface first, using libvlc_add_intf().
+ *
+ * \param p_instance the instance
+ */
+VLC_PUBLIC_API
+void libvlc_wait( libvlc_instance_t *p_instance );
+
/**
* Retrieve libvlc version.
*
*
* \return a string containing the libvlc version
*/
-VLC_PUBLIC_API const char * libvlc_get_version();
+VLC_PUBLIC_API const char * libvlc_get_version(void);
/**
* Retrieve libvlc compiler version.
*
* \return a string containing the libvlc compiler version
*/
-VLC_PUBLIC_API const char * libvlc_get_compiler();
+VLC_PUBLIC_API const char * libvlc_get_compiler(void);
/**
* Retrieve libvlc changeset.
*
* \return a string containing the libvlc changeset
*/
-VLC_PUBLIC_API const char * libvlc_get_changeset();
+VLC_PUBLIC_API const char * libvlc_get_changeset(void);
/** @}*/
/*****************************************************************************
- * Media descriptor
+ * media
*****************************************************************************/
/** \defgroup libvlc_media libvlc_media
* \ingroup libvlc
- * LibVLC Media Descriptor
+ * LibVLC Media
* @{
*/
/**
- * Create a media descriptor with the given MRL.
+ * Create a media with the given MRL.
*
* \param p_instance the instance
* \param psz_mrl the MRL to read
* \param p_e an initialized exception pointer
- * \return the newly created media descriptor
+ * \return the newly created media
*/
VLC_PUBLIC_API libvlc_media_t * libvlc_media_new(
libvlc_instance_t *p_instance,
libvlc_exception_t *p_e );
/**
- * Create a media descriptor as an empty node with the passed name.
+ * Create a media as an empty node with the passed name.
*
* \param p_instance the instance
* \param psz_name the name of the node
* \param p_e an initialized exception pointer
- * \return the new empty media descriptor
+ * \return the new empty media
*/
VLC_PUBLIC_API libvlc_media_t * libvlc_media_new_as_node(
libvlc_instance_t *p_instance,
libvlc_exception_t *p_e );
/**
- * Add an option to the media descriptor.
+ * Add an option to the media.
*
* This option will be used to determine how the media_player will
* read the media. This allows to use VLC's advanced
* The options are detailed in vlc --long-help, for instance "--sout-all"
*
* \param p_instance the instance
- * \param psz_mrl the MRL to read
+ * \param ppsz_options the options (as a string)
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_add_option(
VLC_PUBLIC_API libvlc_media_t * libvlc_media_duplicate( libvlc_media_t * );
/**
- * Read the meta of the media descriptor.
+ * Read the meta of the media.
*
- * \param p_meta_desc the media descriptor to read
- * \param p_meta_desc the meta to read
+ * \param p_meta_desc the media to read
+ * \param e_meta_desc the meta to read
* \param p_e an initialized exception pointer
- * \return the media descriptor's meta
+ * \return the media's meta
*/
VLC_PUBLIC_API char * libvlc_media_get_meta(
libvlc_media_t *p_meta_desc,
/** @}*/
/*****************************************************************************
- * Media Instance
+ * Media Player
*****************************************************************************/
/** \defgroup libvlc_media_player libvlc_media_player
* \ingroup libvlc
- * LibVLC Media Instance, object that let you play a media descriptor
+ * LibVLC Media Player, object that let you play a media
* in a libvlc_drawable_t
* @{
*/
-/**
- * Create an empty Media Instance object
+/**
+ * Create an empty Media Player object
*
- * \param p_libvlc_instance the libvlc instance in which the Media Instance
+ * \param p_libvlc_instance the libvlc instance in which the Media Player
* should be created.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API libvlc_media_player_t * libvlc_media_player_new( libvlc_instance_t *, libvlc_exception_t * );
/**
- * Create a Media Instance object from a Media Descriptor
+ * Create a Media Player object from a Media
*
- * \param p_md the media descriptor. Afterwards the p_md can be safely
+ * \param p_md the media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
/**
* Release a media_player after use
*
- * \param p_mi the Media Instance to free
+ * \param p_mi the Media Player to free
*/
VLC_PUBLIC_API void libvlc_media_player_release( libvlc_media_player_t * );
VLC_PUBLIC_API void libvlc_media_player_retain( libvlc_media_player_t * );
-/** Set the media descriptor that will be used by the media_player. If any,
+/** Set the media that will be used by the media_player. If any,
* previous md will be released.
*
- * \param p_mi the Media Instance
- * \param p_md the Media Descriptor. Afterwards the p_md can be safely
+ * \param p_mi the Media Player
+ * \param p_md the Media. Afterwards the p_md can be safely
* destroyed.
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_player_set_media( libvlc_media_player_t *, libvlc_media_t *, libvlc_exception_t * );
/**
- * Get the media descriptor used by the media_player.
+ * Get the media used by the media_player.
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
- * \return the media descriptor associated with p_mi, or NULL if no
- * media descriptor is associated
+ * \return the media associated with p_mi, or NULL if no
+ * media is associated
*/
VLC_PUBLIC_API libvlc_media_t * libvlc_media_player_get_media( libvlc_media_player_t *, libvlc_exception_t * );
/**
- * Get the Event Manager from which the media instance send event.
+ * Get the Event Manager from which the media player send event.
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
* \return the event manager associated with p_mi
*/
VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_player_event_manager ( libvlc_media_player_t *, libvlc_exception_t * );
/**
- * Play
+ * Play
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_player_play ( libvlc_media_player_t *, libvlc_exception_t * );
/**
- * Pause
+ * Pause
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_player_pause ( libvlc_media_player_t *, libvlc_exception_t * );
/**
- * Stop
+ * Stop
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_player_stop ( libvlc_media_player_t *, libvlc_exception_t * );
/**
- * Set the drawable where the media instance should render its video output
+ * Set the drawable where the media player should render its video output
*
- * \param p_mi the Media Instance
- * \param drawable the libvlc_drawable_t where the media instance
+ * \param p_mi the Media Player
+ * \param drawable the libvlc_drawable_t where the media player
* should render its video
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_media_player_set_drawable ( libvlc_media_player_t *, libvlc_drawable_t, libvlc_exception_t * );
/**
- * Get the drawable where the media instance should render its video output
+ * Get the drawable where the media player should render its video output
*
- * \param p_mi the Media Instance
+ * \param p_mi the Media Player
* \param p_e an initialized exception pointer
- * \return the libvlc_drawable_t where the media instance
+ * \return the libvlc_drawable_t where the media player
* should render its video
*/
VLC_PUBLIC_API libvlc_drawable_t
VLC_PUBLIC_API float libvlc_media_player_get_fps( libvlc_media_player_t *, libvlc_exception_t *);
/**
- * Does this media instance have a video output?
+ * Does this media player have a video output?
*
- * \param p_md the media instance
+ * \param p_md the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API int libvlc_media_player_has_vout( libvlc_media_player_t *, libvlc_exception_t *);
/**
- * Is this media instance seekable?
+ * Is this media player seekable?
*
* \param p_input the input
* \param p_e an initialized exception pointer
VLC_PUBLIC_API int libvlc_media_player_is_seekable( libvlc_media_player_t *p_mi, libvlc_exception_t *p_e );
/**
- * Can this media instance be paused?
+ * Can this media player be paused?
*
* \param p_input the input
* \param p_e an initialized exception pointer
/**
* Toggle fullscreen status on video output.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_media_player_t *, libvlc_exception_t * );
/**
* Enable or disable fullscreen on a video output.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param b_fullscreen boolean for fullscreen status
* \param p_e an initialized exception pointer
*/
/**
* Get current fullscreen status.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the fullscreen status (boolean)
*/
/**
* Get current video height.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video height
*/
/**
* Get current video width.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video width
*/
/**
* Get current video aspect ratio.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video aspect ratio
*/
/**
* Set new video aspect ratio.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param psz_aspect new video aspect-ratio
* \param p_e an initialized exception pointer
*/
/**
* Get current video subtitle.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the video subtitle selected
*/
/**
* Set new video subtitle.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param i_spu new video subtitle to select
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_media_player_t *, int , libvlc_exception_t * );
+/**
+ * Set new video subtitle file.
+ *
+ * \param p_mediaplayer the media player
+ * \param psz_subtitle new video subtitle file
+ * \param p_e an initialized exception pointer
+ * \return the success status (boolean)
+ */
+VLC_PUBLIC_API int libvlc_video_set_subtitle_file( libvlc_media_player_t *, char *, libvlc_exception_t * );
+
/**
* Get current crop filter geometry.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the crop filter geometry
*/
/**
* Set new crop filter geometry.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param psz_geometry new crop filter geometry
* \param p_e an initialized exception pointer
*/
/**
* Toggle teletext transparent status on video output.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
*/
VLC_PUBLIC_API void libvlc_toggle_teletext( libvlc_media_player_t *, libvlc_exception_t * );
/**
* Get current teletext page requested.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param p_e an initialized exception pointer
* \return the current teletext page requested.
*/
/**
* Set new teletext page to retrieve.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param i_page teletex page number requested
* \param p_e an initialized exception pointer
*/
* If i_width AND i_height is 0, original size is used.
* If i_width XOR i_height is 0, original aspect-ratio is preserved.
*
- * \param p_input the input
+ * \param p_mediaplayer the media player
* \param psz_filepath the path where to save the screenshot to
* \param i_width the snapshot's width
* \param i_height the snapshot's height
*/
VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_player_t *, char *,unsigned int, unsigned int, libvlc_exception_t * );
-VLC_PUBLIC_API int libvlc_video_destroy( libvlc_media_player_t *, libvlc_exception_t *);
-
/**
* Resize the current video output window.
*
*/
VLC_PUBLIC_API void libvlc_video_redraw_rectangle( libvlc_media_player_t *, const libvlc_rectangle_t *, libvlc_exception_t * );
-/**
- * Set the default video output's parent.
- *
- * This setting will be used as default for all video outputs.
- *
- * \param p_instance libvlc instance
- * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
- * \param p_e an initialized exception pointer
- */
-VLC_PUBLIC_API void libvlc_video_set_parent( libvlc_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
-
-/**
- * Set the default video output parent.
- *
- * This setting will be used as default for all video outputs.
- *
- * \param p_instance libvlc instance
- * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
- * \param p_e an initialized exception pointer
- */
-VLC_PUBLIC_API libvlc_drawable_t libvlc_video_get_parent( libvlc_instance_t *, libvlc_exception_t * );
-
/**
* Set the default video output size.
*
/**
* Get number of available audio tracks.
*
- * \param p_mi media instance
+ * \param p_mi media player
* \param p_e an initialized exception
* \return the number of available audio tracks (int)
*/
/**
* Get current audio track.
*
- * \param p_input input instance
+ * \param p_mi media player
* \param p_e an initialized exception pointer
* \return the audio track (int)
*/
/**
* Set current audio track.
*
- * \param p_input input instance
+ * \param p_mi media player
* \param i_track the track (int)
* \param p_e an initialized exception pointer
*/
/**
* Get current audio channel.
*
- * \param p_instance input instance
+ * \param p_instance vlc instance
* \param p_e an initialized exception pointer
* \return the audio channel (int)
*/
/**
* Set current audio channel.
*
- * \param p_instance input instance
+ * \param p_instance vlc instance
* \param i_channel the audio channel (int)
* \param p_e an initialized exception pointer
*/