X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_osd.h;h=06168b4b8f4986601c4239d2e73b81232ccba6e7;hb=c60652e38ac6afd74bd8225e9dae5406f13aaa4f;hp=036a8525e5176eb5c5b9aa183ea826534e377406;hpb=d6a118bda13ff93686bddf6a8e5be7ee79378439;p=vlc diff --git a/include/vlc_osd.h b/include/vlc_osd.h index 036a8525e5..06168b4b8f 100644 --- a/include/vlc_osd.h +++ b/include/vlc_osd.h @@ -30,7 +30,9 @@ #ifndef VLC_OSD_H #define VLC_OSD_H 1 -#include "vlc_vout.h" +#include +#include +#include # ifdef __cplusplus extern "C" { @@ -41,92 +43,6 @@ extern "C" { * This file defines SPU subpicture and OSD functions and object types. */ -/********************************************************************** - * Base SPU structures - **********************************************************************/ -/** - * \defgroup spu Subpicture Unit - * This module describes the programming interface for the subpicture unit. - * It includes functions allowing to create/destroy an spu, create/destroy - * subpictures and render them. - * @{ - */ - -#include - -typedef struct spu_private_t spu_private_t; - -/* Default subpicture channel ID */ -#define DEFAULT_CHAN 1 - -/** - * Subpicture unit descriptor - */ -struct spu_t -{ - VLC_COMMON_MEMBERS - - int (*pf_control)( spu_t *, int, va_list ); - - spu_private_t *p; -}; - -enum spu_query_e -{ - SPU_CHANNEL_REGISTER, /* arg1= int * res= */ - SPU_CHANNEL_CLEAR /* arg1= int res= */ -}; - -static inline int spu_vaControl( spu_t *p_spu, int i_query, va_list args ) -{ - if( p_spu->pf_control ) - return p_spu->pf_control( p_spu, i_query, args ); - else - return VLC_EGENERIC; -} - -static inline int spu_Control( spu_t *p_spu, int i_query, ... ) -{ - va_list args; - int i_result; - - va_start( args, i_query ); - i_result = spu_vaControl( p_spu, i_query, args ); - va_end( args ); - return i_result; -} - -VLC_EXPORT( spu_t *, spu_Create, ( vlc_object_t * ) ); -#define spu_Create(a) spu_Create(VLC_OBJECT(a)) -VLC_EXPORT( int, spu_Init, ( spu_t * ) ); -VLC_EXPORT( void, spu_Destroy, ( spu_t * ) ); -void spu_Attach( spu_t *, vlc_object_t *, bool ); - -/** - * This function sends a subpicture to the spu_t core. - * - * You cannot use the provided subpicture anymore. The spu_t core - * will destroy it at its convenience. - */ -VLC_EXPORT( void, spu_DisplaySubpicture, ( spu_t *, subpicture_t * ) ); - -/** - * This function asks the spu_t core a list of subpictures to display. - * - * The returned list can only be used by spu_RenderSubpictures. - */ -VLC_EXPORT( subpicture_t *, spu_SortSubpictures, ( spu_t *, mtime_t render_subtitle_date, bool b_subtitle_only ) ); - -/** - * This function renders a list of subpicture_t on the provided picture. - * - * \param p_fmt_dst is the format of the destination picture. - * \param p_fmt_src is the format of the original(source) video. - */ -VLC_EXPORT( void, spu_RenderSubpictures, ( spu_t *, picture_t *, const video_format_t *p_fmt_dst, subpicture_t *p_list, const video_format_t *p_fmt_src, mtime_t render_subtitle_date ) ); - -/** @}*/ - /********************************************************************** * OSD Menu **********************************************************************/ @@ -204,17 +120,6 @@ VLC_EXPORT( void, spu_RenderSubpictures, ( spu_t *, picture_t *, const video_fo * */ -/** - * OSD menu position and picture type defines - */ -#define OSD_HOR_SLIDER 1 -#define OSD_VERT_SLIDER 2 - -#define OSD_PLAY_ICON 1 -#define OSD_PAUSE_ICON 2 -#define OSD_SPEAKER_ICON 3 -#define OSD_MUTE_ICON 4 - /** * OSD menu button states * @@ -290,7 +195,7 @@ struct osd_button_t * * The images that make up an OSD menu can be created in such away that * they contain all buttons in the same picture, with the selected one - * highlighted or being a concatenation of all the seperate images. The + * highlighted or being a concatenation of all the separate images. The * first case is the default. * * To change the default style the keyword 'style' should be set to 'concat'. @@ -360,7 +265,7 @@ struct osd_menu_t * functions. It creates the osd_menu object and holds a pointer to it * during its lifetime. */ -VLC_EXPORT( osd_menu_t *, osd_MenuCreate, ( vlc_object_t *, const char * ) ); +VLC_EXPORT( osd_menu_t *, osd_MenuCreate, ( vlc_object_t *, const char * ) LIBVLC_USED ); /** * Delete the osd_menu_t object @@ -378,7 +283,7 @@ VLC_EXPORT( void, osd_MenuDelete, ( vlc_object_t *, osd_menu_t * ) ); * Find OSD Menu button at position x,y */ VLC_EXPORT( osd_button_t *, osd_ButtonFind, ( vlc_object_t *p_this, - int, int, int, int, int, int ) ); + int, int, int, int, int, int ) LIBVLC_USED ); #define osd_ButtonFind(object,x,y,h,w,sh,sw) osd_ButtonFind(object,x,y,h,w,sh,sw) @@ -473,6 +378,7 @@ VLC_EXPORT( void, osd_Volume, ( vlc_object_t * ) ); * Retrieve a non modifyable pointer to the OSD Menu state * */ +LIBVLC_USED static inline const osd_menu_state_t *osd_GetMenuState( osd_menu_t *p_osd ) { return( p_osd->p_state ); @@ -483,6 +389,7 @@ static inline const osd_menu_state_t *osd_GetMenuState( osd_menu_t *p_osd ) * * Returns 0 when no key has been pressed or the value of the key pressed. */ +LIBVLC_USED static inline bool osd_GetKeyPressed( osd_menu_t *p_osd ) { return( p_osd->p_state->b_update ); @@ -541,55 +448,8 @@ VLC_EXPORT( int, osd_ShowTextRelative, ( spu_t *, int, const char *, const text_ VLC_EXPORT( int, osd_ShowTextAbsolute, ( spu_t *, int, const char *, const text_style_t *, int, int, int, mtime_t, mtime_t ) ); VLC_EXPORT( void, osd_Message, ( spu_t *, int, char *, ... ) LIBVLC_FORMAT( 3, 4 ) ); -/** - * Default feedback images - * - * Functions that provide the default OSD feedback images on hotkey - * commands. These feedback images are also part of the osd_button_t - * object. The types are declared in the include file include/vlc_osd.h - * @see vlc_osd.h - */ -VLC_EXPORT( int, osd_Slider, ( vlc_object_t *, spu_t *, int, int, int, int, int, int, short ) ); -VLC_EXPORT( int, osd_Icon, ( vlc_object_t *, spu_t *, int, int, int, int, int, short ) ); - /** @} */ -/********************************************************************** - * Vout text and widget overlays - **********************************************************************/ -VLC_EXPORT( int, vout_OSDEpg, ( vout_thread_t *, input_item_t * ) ); - -/** - * Write an informative message at the default location, - * for the default duration and only if the OSD option is enabled. - * \param p_caller The object that called the function. - * \param i_channel Subpicture channel - * \param psz_format printf style formatting - **/ -VLC_EXPORT( void, vout_OSDMessage, ( vlc_object_t *, int, const char *, ... ) LIBVLC_FORMAT( 3, 4 ) ); - -#define vout_OSDMessage( obj, chan, ...) \ - vout_OSDMessage( VLC_OBJECT(obj), chan, __VA_ARGS__ ) - -/** - * Display a slider on the video output. - * \param p_this The object that called the function. - * \param i_channel Subpicture channel - * \param i_postion Current position in the slider - * \param i_type Types are: OSD_HOR_SLIDER and OSD_VERT_SLIDER. - * @see vlc_osd.h - */ -VLC_EXPORT( void, vout_OSDSlider, ( vlc_object_t *, int, int , short ) ); - -/** - * Display an Icon on the video output. - * \param p_this The object that called the function. - * \param i_channel Subpicture channel - * \param i_type Types are: OSD_PLAY_ICON, OSD_PAUSE_ICON, OSD_SPEAKER_ICON, OSD_MUTE_ICON - * @see vlc_osd.h - */ -VLC_EXPORT( void, vout_OSDIcon, ( vlc_object_t *, int, short ) ); - # ifdef __cplusplus } # endif