#ifndef VLC_LIBVLC_MEDIA_PLAYER_H
#define VLC_LIBVLC_MEDIA_PLAYER_H 1
+# ifdef __cplusplus
+extern "C" {
+# endif
+
/*****************************************************************************
* Media Player
*****************************************************************************/
int i_id;
char *psz_name;
struct libvlc_track_description_t *p_next;
-
+
} libvlc_track_description_t;
/**
char *psz_name;
char *psz_description;
struct libvlc_audio_output_t *p_next;
-
+
} libvlc_audio_output_t;
/**
* Marq int options definition
*/
typedef enum libvlc_video_marquee_int_option_t {
- libvlc_marquee_Enabled = 0,
+ libvlc_marquee_Enable = 0,
libvlc_marquee_Color,
libvlc_marquee_Opacity,
libvlc_marquee_Position,
* \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 * );
+VLC_PUBLIC_API void libvlc_media_player_set_media( libvlc_media_player_t *, libvlc_media_t * );
/**
* Get the media used by the media_player.
*
* \param p_mi the Media Player
- * \param p_e an initialized exception pointer
* \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 * );
+VLC_PUBLIC_API libvlc_media_t * libvlc_media_player_get_media( libvlc_media_player_t * );
/**
* Get the Event Manager from which the media player send event.
*
* \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 * );
+VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_player_event_manager ( libvlc_media_player_t * );
/**
* is_playing
*
* \param p_mi the Media Player
- * \param p_e an initialized exception pointer
* \return 1 if the media player is playing, 0 otherwise
*/
-VLC_PUBLIC_API int libvlc_media_player_is_playing ( libvlc_media_player_t *, libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_media_player_is_playing ( libvlc_media_player_t * );
/**
* Play
* \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 * );
+VLC_PUBLIC_API void libvlc_media_player_stop ( libvlc_media_player_t * );
/**
- * Set the agl handler where the media player should render its video output.
+ * Set the NSView handler where the media player should render its video output.
+ *
+ * The object minimal_macosx expects is of kind NSObject and should
+ * respect the protocol:
+ *
+ * @protocol VLCOpenGLVideoViewEmbedding <NSObject>
+ * - (void)addVoutSubview:(NSView *)view;
+ * - (void)removeVoutSubview:(NSView *)view;
+ * @end
+ *
+ * You can find a live example in VLCVideoView in VLCKit.framework.
*
* \param p_mi the Media Player
- * \param drawable the agl handler
- * \param p_e an initialized exception pointer
+ * \param drawable the NSView handler
*/
-VLC_PUBLIC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t *p_mi, void * drawable, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t *p_mi, void * drawable );
/**
- * Get the agl handler previously set with libvlc_media_player_set_agl().
+ * Get the NSView handler previously set with libvlc_media_player_set_nsobject().
*
* \param p_mi the Media Player
- * \return the agl handler or 0 if none where set
+ * \return the NSView handler or 0 if none where set
*/
VLC_PUBLIC_API void * libvlc_media_player_get_nsobject ( libvlc_media_player_t *p_mi );
-
+
/**
* Set the agl handler where the media player should render its video output.
*
* \param drawable the agl handler
* \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API void libvlc_media_player_set_agl ( libvlc_media_player_t *p_mi, uint32_t drawable, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_media_player_set_agl ( libvlc_media_player_t *p_mi, uint32_t drawable );
/**
* Get the agl handler previously set with libvlc_media_player_set_agl().
*
* \param p_mi the Media Player
* \param drawable the ID of the X window
- * \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t *p_mi, uint32_t drawable, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_media_player_set_xwindow ( libvlc_media_player_t *p_mi, uint32_t drawable );
/**
* Get the X Window System window identifier previously set with
*
* \param p_mi the Media Player
* \param drawable windows handle of the drawable
- * \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable, libvlc_exception_t *p_e );
+VLC_PUBLIC_API void libvlc_media_player_set_hwnd ( libvlc_media_player_t *p_mi, void *drawable );
/**
* Get the Windows API window handle (HWND) previously set with
*
* \param p_mi the Media Player
* \param p_e an initialized exception pointer
- * \return current movie state as libvlc_state_t
*/
-VLC_PUBLIC_API libvlc_state_t libvlc_media_player_get_state( libvlc_media_player_t *, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_state_t libvlc_media_player_get_state( libvlc_media_player_t *);
/**
* Get movie fps rate
*/
/**
- * Toggle fullscreen status on video output.
+ * Toggle fullscreen status on a non-embedded video output.
+ *
+ * @warning The same limitations applies to this function
+ * as to libvlc_set_fullscreen().
*
* \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.
+ * Enable or disable fullscreen on a non-embedded video output.
+ *
+ * @warning With most window managers, only a top-level windows can switch to
+ * full-screen mode. Hence, this function will not operate properly if
+ * libvlc_media_player_set_xid() or libvlc_media_player_set_hwnd() was
+ * used to embed the video in a non-LibVLC widget. If you want to to render an
+ * embedded LibVLC video full-screen, the parent embedding widget must expanded
+ * to full screen (LibVLC cannot take care of that).
+ * LibVLC will then automatically resize the video as appropriate.
*
* \param p_mediaplayer the media player
* \param b_fullscreen boolean for fullscreen status
*/
VLC_PUBLIC_API void libvlc_toggle_teletext( libvlc_media_player_t *, libvlc_exception_t * );
-/**
- * Get current teletext page requested.
- *
- * \param p_mediaplayer the media player
- * \param p_e an initialized exception pointer
- * \return the current teletext page requested.
- */
-VLC_PUBLIC_API int libvlc_video_get_teletext( libvlc_media_player_t *, libvlc_exception_t * );
-
-/**
- * Set new teletext page to retrieve.
- *
- * \param p_mediaplayer the media player
- * \param i_page teletex page number requested
- * \param p_e an initialized exception pointer
- */
-VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_player_t *, int, libvlc_exception_t * );
-
/**
* Get number of available video tracks.
*
libvlc_exception_t *);
/**
- * Get an option value (option which return an int)
+ * Get an integer option value
*
* \param p_mi libvlc media player
- * \param option marq option to get
+ * \param option marq option to get \see libvlc_video_marquee_int_option_t
* \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API int libvlc_video_get_marquee_option_as_int( libvlc_media_player_t *,
- libvlc_video_marquee_int_option_t,
- libvlc_exception_t * );
+VLC_PUBLIC_API int libvlc_video_get_marquee_int( libvlc_media_player_t *,
+ unsigned, libvlc_exception_t * );
/**
- * Get an option value (option which return a string)
+ * Get a string option value
*
* \param p_mi libvlc media player
- * \param option marq option to get
+ * \param option marq option to get \see libvlc_video_marquee_string_option_t
* \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API char *libvlc_video_get_marquee_option_as_string( libvlc_media_player_t *,
- libvlc_video_marquee_string_option_t,
- libvlc_exception_t * );
+VLC_PUBLIC_API char *libvlc_video_get_marquee_string( libvlc_media_player_t *,
+ unsigned, libvlc_exception_t * );
/**
- * Enable, disable or set a marq option (only int)
+ * Enable, disable or set an integer marq option
+ *
+ * Setting libvlc_marquee_Enable has the side effect of enabling (arg !0)
+ * or disabling (arg 0) the marq filter.
*
* \param p_mi libvlc media player
- * \param option marq option to set
+ * \param option marq option to set \see libvlc_video_marquee_int_option_t
* \param i_val marq option value
* \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API void libvlc_video_set_marquee_option_as_int( libvlc_media_player_t *,
- libvlc_video_marquee_int_option_t,
- int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_marquee_int( libvlc_media_player_t *,
+ unsigned, int, libvlc_exception_t * );
/**
- * Set a marq option (only string)
+ * Set a marq string option
*
* \param p_mi libvlc media player
- * \param option marq option to set
+ * \param option marq option to set \see libvlc_video_marquee_string_option_t
* \param psz_text marq option value
* \param p_e an initialized exception pointer
*/
-VLC_PUBLIC_API void libvlc_video_set_marquee_option_as_string( libvlc_media_player_t *,
- libvlc_video_marquee_string_option_t,
- const char *,
- libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_marquee_string( libvlc_media_player_t *,
+ unsigned, const char *, libvlc_exception_t * );
+
+enum libvlc_video_logo_option_t {
+ libvlc_logo_enable,
+ libvlc_logo_file, /**< string argument, "file,d,t;file,d,t;..." */
+ libvlc_logo_x,
+ libvlc_logo_y,
+ libvlc_logo_delay,
+ libvlc_logo_repeat,
+ libvlc_logo_opacity,
+ libvlc_logo_position,
+};
+
+/**
+ * Get integer logo option.
+ *
+ * \param p_mi libvlc media player instance
+ * \param option logo option to get, values of libvlc_video_logo_option_t
+ * \param p_e an pointer to an initialized exception object
+ */
+VLC_PUBLIC_API int libvlc_video_get_logo_int( libvlc_media_player_t *p_mi,
+ unsigned option, libvlc_exception_t *p_e );
+
+/**
+ * Set logo option as integer. Options that take a different type value
+ * cause an invalid argument exception.
+ * Passing libvlc_logo_enable as option value has the side effect of
+ * starting (arg !0) or stopping (arg 0) the logo filter.
+ *
+ * \param p_mi libvlc media player instance
+ * \param option logo option to set, values of libvlc_video_logo_option_t
+ * \param value logo option value
+ * \param p_e an pointer to an initialized exception object
+ */
+VLC_PUBLIC_API void libvlc_video_set_logo_int( libvlc_media_player_t *p_mi,
+ unsigned option, int value, libvlc_exception_t *p_e );
+
+/**
+ * Set logo option as string. Options that take a different type value
+ * cause an invalid argument exception.
+ *
+ * \param p_mi libvlc media player instance
+ * \param option logo option to set, values of libvlc_video_logo_option_t
+ * \param psz_value logo option value
+ * \param p_e an pointer to an initialized exception object
+ */
+VLC_PUBLIC_API void libvlc_video_set_logo_string( libvlc_media_player_t *p_mi,
+ unsigned option, const char *psz_value, libvlc_exception_t *p_e );
/** @} video */
/** @} media_player */
+# ifdef __cplusplus
+}
+# endif
+
#endif /* VLC_LIBVLC_MEDIA_PLAYER_H */