X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_media_player.h;h=452b2adcafd42e10f8843fa06f0a43e5662c2def;hb=714ef56a1682be404888668bd3c1c688cd0d2aeb;hp=86fbc03dacda4882e529db58c3981ea525463779;hpb=34f66f14f6cc7c228785be7b474579eace57bc97;p=vlc diff --git a/include/vlc/libvlc_media_player.h b/include/vlc/libvlc_media_player.h index 86fbc03dac..452b2adcaf 100644 --- a/include/vlc/libvlc_media_player.h +++ b/include/vlc/libvlc_media_player.h @@ -31,6 +31,10 @@ #ifndef VLC_LIBVLC_MEDIA_PLAYER_H #define VLC_LIBVLC_MEDIA_PLAYER_H 1 +# ifdef __cplusplus +extern "C" { +# endif + /***************************************************************************** * Media Player *****************************************************************************/ @@ -52,7 +56,7 @@ typedef struct libvlc_track_description_t int i_id; char *psz_name; struct libvlc_track_description_t *p_next; - + } libvlc_track_description_t; /** @@ -64,7 +68,7 @@ typedef struct libvlc_audio_output_t char *psz_name; char *psz_description; struct libvlc_audio_output_t *p_next; - + } libvlc_audio_output_t; /** @@ -80,7 +84,7 @@ typedef struct libvlc_rectangle_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, @@ -143,37 +147,33 @@ VLC_PUBLIC_API void libvlc_media_player_retain( libvlc_media_player_t * ); * \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 @@ -197,32 +197,25 @@ VLC_PUBLIC_API void libvlc_media_player_pause ( libvlc_media_player_t *, libvlc_ * \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 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 VLCOpenGLVoutEmbedding + * + * @protocol VLCOpenGLVideoViewEmbedding * - (void)addVoutSubview:(NSView *)view; * - (void)removeVoutSubview:(NSView *)view; - * - * - (void)enterFullscreen; - * - (void)leaveFullscreen; - * - * - (BOOL)stretchesVideo; - * - (void)setOnTop: (BOOL)ontop; /* Do we really want that in protocol? */ * @end - * + * * You can find a live example in VLCVideoView in VLCKit.framework. - * + * * \param p_mi the Media Player * \param drawable the NSView handler - * \param p_e an initialized exception pointer */ -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 NSView handler previously set with libvlc_media_player_set_nsobject(). @@ -231,7 +224,7 @@ VLC_PUBLIC_API void libvlc_media_player_set_nsobject ( libvlc_media_player_t *p_ * \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. * @@ -239,7 +232,7 @@ VLC_PUBLIC_API void * libvlc_media_player_get_nsobject ( libvlc_media_player_t * * \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(). @@ -264,9 +257,8 @@ VLC_PUBLIC_API uint32_t libvlc_media_player_get_agl ( libvlc_media_player_t *p_m * * \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 @@ -286,9 +278,8 @@ VLC_PUBLIC_API uint32_t libvlc_media_player_get_xwindow ( libvlc_media_player_t * * \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 @@ -462,9 +453,8 @@ VLC_PUBLIC_API void libvlc_media_player_set_rate( libvlc_media_player_t *, float * * \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 @@ -512,6 +502,15 @@ VLC_PUBLIC_API void libvlc_media_player_next_frame( libvlc_media_player_t *p_ libvlc_exception_t *p_e ); +/** + * Access to libvlc core internal structure. + * + * This enables nasty hack. Use of this method is discouraged. + * + * \param player the libvlc_media_player_t instance + * \return a libvlccore input_thread_t or NULL. The actual behaviour is not specified. + */ +VLC_PUBLIC_API struct input_thread_t *libvlc_media_player_get_input_thread( libvlc_media_player_t *player ); /** * Release (free) libvlc_track_description_t @@ -753,24 +752,6 @@ VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_media_player_t *, con */ 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. * @@ -835,51 +816,96 @@ VLC_PUBLIC_API void libvlc_video_set_deinterlace( libvlc_media_player_t *, 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 */ @@ -1121,4 +1147,8 @@ VLC_PUBLIC_API void libvlc_audio_set_channel( libvlc_instance_t *, /** @} media_player */ +# ifdef __cplusplus +} +# endif + #endif /* VLC_LIBVLC_MEDIA_PLAYER_H */